Confirmed users
446
edits
(fill out more) |
(final edits) |
||
| Line 10: | Line 10: | ||
'' When do you anticipate the feature landing'' | '' When do you anticipate the feature landing'' | ||
This can land as soon as sicking reviews, someone else super-reviews, and the patch gets approval. How long that is is up to the reviewers. | |||
' | My patch is at nearly 80% tests going by the number of lines added; I've added tests for everything I can think of and everything anyone else has suggested, and I know of nothing further that must be done. We significantly outstrip WebKit in terms of implementation correctness, going by how they perform on our tests. I looked at how we performed on their testcases, but the functionality tested in our tests fully subsumes the functionality tested in their tests. | ||
= Overview = | = Overview = | ||
| Line 47: | Line 45: | ||
== Schedule == | == Schedule == | ||
The patch is functionally complete; once reviews have been completed it is ready to land | The patch is functionally complete; once reviews have been completed it is ready to land immediately. | ||
== UI Design Documentation == | == UI Design Documentation == | ||
| Line 59: | Line 57: | ||
* What security issues do you address in your project? | * What security issues do you address in your project? | ||
This feature addresses the relative insecurity of current mechanisms for communicating across domains, which rely upon extant holes in the same-origin model, in ways they were not designed to support. | This feature addresses the relative insecurity of current mechanisms for communicating across domains, which rely upon extant holes in the same-origin model, in ways they were not designed to support. Current mechanisms are fragile and rely upon large holes in the same-origin restriction; the size of the hole this opens is small and well-defined. | ||
* Is system or subsystem security compromised in any way if your project's configuration files / prefs are corrupt or missing? | * Is system or subsystem security compromised in any way if your project's configuration files / prefs are corrupt or missing? | ||
The single preference in <code>all.js</code> | The absence of the single preference in <code>all.js</code> safely prevents access to <code>postMessage</code> entirely. | ||
* Include a thorough description of the security assumptions, capabilities and any potential risks (possible attack points) being introduced by your project. | * Include a thorough description of the security assumptions, capabilities and any potential risks (possible attack points) being introduced by your project. | ||
| Line 86: | Line 84: | ||
This API is purely client-side. | This API is purely client-side. | ||
* Explain the significant | * Explain the significant names, syntax, and semantics. | ||
See the overview section. | See the overview section. | ||
| Line 92: | Line 90: | ||
* Are the externally visible interfaces documented clearly enough for a non-Mozilla developer to use them successfully? | * Are the externally visible interfaces documented clearly enough for a non-Mozilla developer to use them successfully? | ||
Yes, and the HTML5 specification describes the API fairly clearly (only at the edges and in interactions with as-yet-unspecified functionality | Yes, and the HTML5 specification describes the API fairly clearly (only at the edges and in interactions with as-yet-unspecified functionality is it less than adequate, but our tests define very specific behaviors in these cases). | ||
* Does it change any existing interfaces? | * Does it change any existing interfaces? | ||
The unfrozen interface <code>nsIDOMWindowInternal</code> grows a method. | The unfrozen interface <code>nsIDOMWindowInternal</code> grows a method, and the <code>nsIDOMMessageEvent</code> interface is added. | ||
== Web Compatibility == | == Web Compatibility == | ||
* Does the feature | * Does the feature have any impact on Web compatibility? | ||
WebKit nightlies implement <code>postMessage</code>, and Opera has an implementation available upon <code>Document</code>. It is at their request that this is being considered at such a late stage in the release cycle. | WebKit nightlies implement <code>postMessage</code>, and Opera has an implementation available upon <code>Document</code>. It is at their request that this is being considered at such a late stage in the release cycle. | ||
| Line 108: | Line 106: | ||
* How will the project contribute (positively or negatively) to "perceived performance"? | * How will the project contribute (positively or negatively) to "perceived performance"? | ||
<code>postMessage</code> is a performance win for cross-domain communication. Existing methods for communication are not synchronous and may involve polling, resulting in increased time and resource consumption. | <code>postMessage</code> is a performance win for cross-domain communication. Existing methods for communication are not synchronous and may involve polling or unnecessary and gratuitous event listeners, resulting in increased time and resource consumption. | ||
* What are the performance goals of the project? How were they evaluated? What is the test or reference platform and baseline results? | * What are the performance goals of the project? How were they evaluated? What is the test or reference platform and baseline results? | ||
The primary concerns during implementation were correctness and security; given the relative un-complexity of the implementation, it seems likely that performance will be primarily gated by XPConnect speed. | The primary concerns during implementation were correctness and security; given the relative un-complexity of the implementation, it seems likely that performance will be primarily gated by XPConnect and event dispatch speed. | ||
* Will it require large files/databases (for example, browsing history)? | * Will it require large files/databases (for example, browsing history)? | ||
| Line 145: | Line 143: | ||
* Does is have a hardware requirement (or increase minimum requirements)? | * Does is have a hardware requirement (or increase minimum requirements)? | ||
* Does it require changes to the installer? | * Does it require changes to the installer? | ||
* Does it impact updates? | * Does it impact updates? | ||
No. | No. | ||
* | * List the expected behavior of this feature/function when Firefox is upgraded to a newer minor release, downgraded by installation of an earlier revision, or re-installed (same version) | ||
<code>postMessage</code> functionality would disappear in a downgrade, but otherwise no change. | |||
== configuration == | == configuration == | ||