- From: poot <cvsmail@w3.org>
- Date: Wed, 13 Apr 2011 18:19:32 -0400
- To: public-html-diffs@w3.org
postmsg; hixie: pipeline update (whatwg r6003) http://dev.w3.org/cvsweb/html5/postmsg/Overview.html?r1=1.78&r2=1.79&f=h http://html5.org/tools/web-apps-tracker?from=6002&to=6003 =================================================================== RCS file: /sources/public/html5/postmsg/Overview.html,v retrieving revision 1.78 retrieving revision 1.79 diff -u -d -r1.78 -r1.79 --- Overview.html 12 Apr 2011 00:10:27 -0000 1.78 +++ Overview.html 13 Apr 2011 22:09:52 -0000 1.79 @@ -1,7 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><!-- when publishing, change bits marked ZZZ - ZZZ: Set PUB to 1 for TR/ drafts, 0 for dev drafts; PUB-Y lines are used if it's 1 and PUB-N lines if it's 0. - ZZZ: Set YEAR, SHORTDAY (month/day), and LONGDAY accordingly. They are used by the INSERT FOO bits below. - --><html lang="en-US-x-Hixie"><title>HTML5 Web Messaging</title><style type="text/css"> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html lang="en-US-x-Hixie"><title>HTML5 Web Messaging</title><style type="text/css"> pre { margin-left: 2em; white-space: pre-wrap; } h2 { margin: 3em 0 1em 0; } h3 { margin: 2.5em 0 1em 0; } @@ -229,13 +226,12 @@ <p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"></a></p> <h1>HTML5 Web Messaging</h1> - <!--<h2 class="no-num no-toc">(subtitle)</h2>--> - <h2 class="no-num no-toc" id="editor-s-draft-12-april-2011">Editor's Draft 12 April 2011</h2> + + <h2 class="no-num no-toc" id="editor-s-draft-13-april-2011">Editor's Draft 13 April 2011</h2> <dl><dt>Latest Published Version:</dt> <dd><a href="http://www.w3.org/TR/webmessaging/">http://www.w3.org/TR/webmessaging/</a></dd> <dt>Latest Editor's Draft:</dt> <dd><a class="latest-link" href="http://dev.w3.org/html5/postmsg/">http://dev.w3.org/html5/postmsg/</a></dd> -<!-- ZZZ: add the new version after it has shipped --> <dt>Previous Versions:</dt> <dd><a href="http://www.w3.org/TR/2010/WD-webmessaging-20101118/">http://www.w3.org/TR/2010/WD-webmessaging-20101118/</a></dd> <!-- :ZZZ --> @@ -260,12 +256,12 @@ </div><hr class="top"><h2 class="no-num no-toc" id="abstract">Abstract</h2><p>This specification defines two mechanisms for communicating - between browsing contexts in HTML documents.<h2 class="no-num no-toc" id="status-of-this-document">Status of This document</h2><!-- intro boilerplate (required) --><p><em>This section describes the status of this document at the + between browsing contexts in HTML documents.<h2 class="no-num no-toc" id="status-of-this-document">Status of This document</h2><p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the most recently formally published revision of this technical report can be found in the <a href="http://www.w3.org/TR/">W3C technical reports index</a> - at http://www.w3.org/TR/.</em></p><!-- where to send feedback (required) --><p>If you wish to make comments regarding this document in a manner + at http://www.w3.org/TR/.</em></p><p>If you wish to make comments regarding this document in a manner that is tracked by the W3C, please submit them via using <a href="http://www.w3.org/Bugs/Public/enter_bug.cgi?product=HTML%20WG">our public bug database</a>. If you do not have an account then you can enter feedback using this form:<form action="http://www.whatwg.org/specs/web-apps/current-work/file-spam.cgi" method="post"> @@ -303,14 +299,14 @@ <a href="http://lists.w3.org/Archives/Public/public-webapps/">archives</a>), or <a href="mailto:whatwg@whatwg.org">whatwg@whatwg.org</a> (<a href="http://lists.whatwg.org/listinfo.cgi/whatwg-whatwg.org">subscribe</a>, <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/">archives</a>). - All feedback is welcome.</p><!-- stability (required) --><p>Implementors should be aware that this specification is not + All feedback is welcome.</p><p>Implementors should be aware that this specification is not stable. <strong>Implementors who are not taking part in the discussions are likely to find the specification changing out from under them in incompatible ways.</strong> Vendors interested in implementing this specification before it eventually reaches the Candidate Recommendation stage should join the aforementioned mailing lists and take part in the discussions.<div id="multipage-common"> - </div><!-- version history or list of changes (required) --><p>The latest + </div><p>The latest stable version of the editor's draft of this specification is always available on <a href="http://dev.w3.org/html5/postmsg/">the W3C CVS server</a> and in the <a href="http://svn.whatwg.org/webapps/">WHATWG @@ -329,8 +325,8 @@ </dl><p>The W3C <a href="http://www.w3.org/2008/webapps/">Web Applications Working Group</a> is the W3C working group responsible for this specification's progress along the W3C Recommendation track. - This specification is the 12 April 2011 Editor's Draft. - </p><!-- required patent boilerplate --><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 + This specification is the 13 April 2011 Editor's Draft. + </p><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent Policy</a>. W3C maintains a <a href="http://www.w3.org/2004/01/pp-impl/42538/status" rel="disclosure">public list of any patent disclosures</a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a @@ -338,7 +334,6 @@ individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the W3C Patent Policy</a>.<h2 class="no-num no-toc" id="contents">Table of Contents</h2> -<!--begin-toc--> <ol class="toc"> <li><a href="#conformance-requirements"><span class="secno">1 </span>Conformance requirements</a> <ol> @@ -362,10 +357,9 @@ <li><a href="#ports-and-garbage-collection"><span class="secno">5.3.1 </span>Ports and garbage collection</a></ol></ol></li> <li><a class="no-num" href="#references">References</a></li> <li><a class="no-num" href="#acknowledgements">Acknowledgements</a></ol> -<!--end-toc--><hr><h2 id="conformance-requirements"><span class="secno">1 </span>Conformance requirements</h2><p>All diagrams, examples, and notes in this specification are +<hr><h2 id="conformance-requirements"><span class="secno">1 </span>Conformance requirements</h2><p>All diagrams, examples, and notes in this specification are non-normative, as are all sections explicitly marked non-normative. - Everything else in this specification is normative.<p>The key words "MUST", "MUST NOT", "REQUIRED", <!--"SHALL", "SHALL - NOT",--> "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and + Everything else in this specification is normative.<p>The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in the normative parts of this document are to be interpreted as described in RFC2119. For readability, these words do not appear in all uppercase letters in this specification. <a href="#refsRFC2119">[RFC2119]</a><p>Requirements phrased in the imperative as part of algorithms @@ -712,10 +706,7 @@ the script that invoked the method, the <code title="dom-MessageEvent-source"><a href="#dom-messageevent-source">source</a></code> attribute must be set to the <span>script's global object</span>'s <code>WindowProxy</code> object, and the <code title="dom-MessageEvent-ports"><a href="#dom-messageevent-ports">ports</a></code> attribute must be set - to the <var title="">new ports</var> array.</p> <!-- invariant: - the global object is always a Window if the script can see this - method --> - + to the <var title="">new ports</var> array.</p> </li> <li> @@ -804,24 +795,13 @@ received by the other port, and vice versa.<pre class="idl">typedef sequence<MessagePort> <dfn id="messageportarray">MessagePortArray</dfn>; interface <dfn id="messageport">MessagePort</dfn> { -<!-- v2-onclose readonly attribute boolean <span title="dom-MessagePort-active">active</span>; ---> void <a href="#dom-messageport-postmessage" title="dom-MessagePort-postMessage">postMessage</a>(in any message, in optional <a href="#messageportarray">MessagePortArray</a> ports);<!-- - <span>MessagePort</span> <span title="dom-MessagePort-startConversation">startConversation</span>(in any message);--> - void <a href="#dom-messageport-start" title="dom-MessagePort-start">start</a>(); + void <a href="#dom-messageport-postmessage" title="dom-MessagePort-postMessage">postMessage</a>(in any message, in optional <a href="#messageportarray">MessagePortArray</a> ports); void <a href="#dom-messageport-start" title="dom-MessagePort-start">start</a>(); void <a href="#dom-messageport-close" title="dom-MessagePort-close">close</a>(); // event handlers attribute <span>Function</span> <a href="#handler-messageport-onmessage" title="handler-MessagePort-onmessage">onmessage</a>; }; -<a href="#messageport">MessagePort</a> implements <span>EventTarget</span>;</pre><dl class="domintro"><!-- v2-onclose - <dt><var title="">port</var> . <code title="dom-MessagePort-active">active</code></dt> - - <dd> - - <p>Returns true if the port is still active; otherwise, returns false.</p> - - </dd> ---><dt><var title="">port</var> . <code title="dom-MessagePort-poseMessage">postMessage</code>(<var title="">message</var> [, <var title="">ports</var>] )</dt> +<a href="#messageport">MessagePort</a> implements <span>EventTarget</span>;</pre><dl class="domintro"><dt><var title="">port</var> . <code title="dom-MessagePort-poseMessage">postMessage</code>(<var title="">message</var> [, <var title="">ports</var>] )</dt> <dd> @@ -918,13 +898,7 @@ <li><p>Return <var title="">new port</var>. It is the clone.</li> - </ol><hr><!-- v2-onclose - <p>The <dfn title="dom-MessagePort-active"><code>active</code></dfn> - attribute must return true if the port is entangled, and false - otherwise.</p> - - <hr> ---><p>The <dfn id="dom-messageport-postmessage" title="dom-MessagePort-postMessage"><code>postMessage()</code></dfn> + </ol><hr><p>The <dfn id="dom-messageport-postmessage" title="dom-MessagePort-postMessage"><code>postMessage()</code></dfn> method, when called on a port <var title="">source port</var>, must cause the user agent to run the following steps:</p> @@ -941,11 +915,7 @@ <li><p>If there is no <var title="">target port</var> (i.e. if <var title="">source port</var> is not entangled), then abort these steps.</li> - <!-- we don't raise an exception if there is no target port because - this can happen at a moment's notice. we don't return false because - if the port is _about_ to be closed, the message might not be - listened for anyway. --> - + <li><p>Create an event that uses the <code><a href="#messageevent">MessageEvent</a></code> interface, with the name <code title="event-message"><a href="#event-message">message</a></code>, which does not bubble, is not cancelable, and has no default action.</li> @@ -987,67 +957,7 @@ <li><p>Add the event to the <a href="#port-message-queue">port message queue</a> of <var title="">target port</var>.</li> - </ol><!-- - <hr> - - <p>The <dfn - title="dom-MessagePort-startConversation"><code>startConversation(<var - title="">message</var>)</code></dfn> method is a convenience method - that simplifies create a new <code>MessageChannel</code> and - invoking <code - title="dom-MessagePort-postMessage">postMessage()</code> with one of - the new ports. When invoked on a port <var title="">source - port</var>, it must run the following steps:</p> - - <ol> - - <li><p>Let <var title="">message</var> be the method's first - argument.</p></li> - - <li><p><span>Create a new <code>MessagePort</code> object</span> - owned by the <span>script's global object</span>, and let <var - title="">port1</var> be that object.</p></li> - - <li><p>If the <var title="">source port</var> is not entangled with - another port, then return <var title="">port1</var> and abort these - steps.</p></li> - <!- - we don't raise an exception because this can happen moment's - notice. we don't return null because then we'd end up with - null derefs. better to just let the likely next postMessage call - fall on the floor. - -> - - <li><p>Let <var title="">target port</var> be the port with which - <var title="">source port</var> is entangled.</p></li> - - <li><p><span>Create a new <code>MessagePort</code> object</span> - owned by the owner of the <var title="">target port</var>, and let - <var title="">port2</var> be that object.</p></li> - - <li><p><span>Entangle</span> the <var title="">port1</var> and <var - title="">port2</var> objects.</p></li> - - <li><p>Create an event that uses the <code>MessageEvent</code> - interface, with the name <code - title="event-message">message</code>, which does not bubble, is not - cancelable, and has no default action.</p></li> - - <li><p>Let the <code title="dom-MessageEvent-data">data</code> - attribute of the event have the value of <var - title="">message</var>, the method's first argument.</p></li> - - <li><p>Let the <code - title="dom-MessageEvent-ports">ports</code> attribute - of the event be an array containing only <var - title="">port2</var>.</p></li> - - <li><p>Return <var title="">port1</var> from the method, but - continue with these steps.</p></li> - - <li><p>Add the event to the <span>port message queue</span> of <var - title="">target port</var>.</p></li> - - </ol> ---><hr><p>The <dfn id="dom-messageport-start" title="dom-MessagePort-start"><code>start()</code></dfn> + </ol><hr><p>The <dfn id="dom-messageport-start" title="dom-MessagePort-start"><code>start()</code></dfn> method must enable its port's <a href="#port-message-queue">port message queue</a>, if it is not already enabled.</p> @@ -1058,7 +968,7 @@ <p class="note">If the <code>Document</code> of the port's event listeners' <span title="script's global object">global object</span> is not <span>fully active</span>, then the messages are lost.</p> - <!-- because of the jump-to-entry-point algorithm first step --> + <hr><p>The <dfn id="dom-messageport-close" title="dom-MessagePort-close"><code>close()</code></dfn> method, when called on a port <var title="">local port</var> that is @@ -1106,36 +1016,22 @@ <code><a href="#messageport">MessagePort</a></code> object's <a href="#port-message-queue">port message queue</a> is open and there exists a <code title="event-message"><a href="#event-message">message</a></code> event in that queue.</p> - <!-- we might not need to explicitly say the first part if DOM - Events is fixed to say that events on a task queue prevent GC --> - - <!-- ports in the ports attribute of a MessageEvent that isn't - dispatched yet are safe because the MessageEvent is safe --> - + + </div><p class="note">Authors are strongly encouraged to explicitly close <code><a href="#messageport">MessagePort</a></code> objects to disentangle them, so that their resources can be recollected. Creating many <code><a href="#messageport">MessagePort</a></code> objects and discarding them without closing them can lead to high - memory usage.<h2 class="no-num" id="references">References</h2><!--REFS--><p>All references are normative unless marked "Non-normative".</p><!-- Dates are only included for standards older than the Web, because the newer ones keep changing. --><dl><dt id="refsDOMCORE">[DOMCORE]</dt> + memory usage.<h2 class="no-num" id="references">References</h2><p>All references are normative unless marked "Non-normative".</p><dl><dt id="refsDOMCORE">[DOMCORE]</dt> <dd><cite><a href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html">Web DOM Core</a></cite>, A. van Kesteren. W3C.</dd> <dt id="refsDOMEVENTS">[DOMEVENTS]</dt> - <!-- - <dd><cite><a - href="http://www.w3.org/TR/DOM-Level-3-Events/">Document Object - Model (DOM) Level 3 Events Specification</a></cite>, - B. Höhrmann, P. Le Hegaret, T. Pixley. W3C.</dd> - --> - <dd><cite><a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html">Document + <dd><cite><a href="http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html">Document Object Model (DOM) Level 3 Events Specification</a></cite>, D. Schepers. W3C.</dd> <dt id="refsEVENTSOURCE">[EVENTSOURCE]</dt> - <!-- - <dd><cite><a href="http://www.w3.org/TR/eventsource/">Server-Sent - Events</a></cite>, I. Hickson. W3C.</dd> - --> - <dd><cite><a href="http://dev.w3.org/html5/eventsource/">Server-Sent + <dd><cite><a href="http://dev.w3.org/html5/eventsource/">Server-Sent Events</a></cite>, I. Hickson. W3C.</dd> <dt id="refsHTML">[HTML]</dt> @@ -1147,19 +1043,11 @@ RFCs to Indicate Requirement Levels</a></cite>, S. Bradner. IETF.</dd> <dt id="refsWEBIDL">[WEBIDL]</dt> - <!-- - <dd><cite><a href="http://www.w3.org/TR/WebIDL/">Web - IDL</a></cite>, C. McCormack. W3C.</dd> - --> - <dd><cite><a href="http://dev.w3.org/2006/webapi/WebIDL/">Web + <dd><cite><a href="http://dev.w3.org/2006/webapi/WebIDL/">Web IDL</a></cite>, C. McCormack. W3C.</dd> <dt id="refsWEBSOCKET">[WEBSOCKET]</dt> - <!-- - <dd><cite><a href="http://www.w3.org/TR/websockets/">The WebSocket - API</a></cite>, I. Hickson. W3C.</dd> - --> - <dd><cite><a href="http://dev.w3.org/html5/websockets/">The WebSocket + <dd><cite><a href="http://dev.w3.org/html5/websockets/">The WebSocket API</a></cite>, I. Hickson. W3C.</dd> </dl><h2 class="no-num" id="acknowledgements">Acknowledgements</h2><p>For a full list of acknowledgements, please see the HTML
Received on Wednesday, 13 April 2011 22:19:35 UTC