- From: poot <cvsmail@w3.org>
- Date: Tue, 16 Dec 2008 10:04:38 +0900 (JST)
- To: public-html-diffs@w3.org
Simplify the way messages in ports are handled when the destination's document is not available. (whatwg r2531) close() http://people.w3.org/mike/diffs/html5/spec/Overview.1.1702.html#dom-messageport-close 7.5.3.1 Ports and garbage collection http://people.w3.org/mike/diffs/html5/spec/Overview.1.1702.html#ports-and-garbage-collection onclose http://people.w3.org/mike/diffs/html5/spec/Overview.1.1702.html#handler-messageport-onclose onmessage http://people.w3.org/mike/diffs/html5/spec/Overview.1.1702.html#handler-messageport-onmessage postMessage() http://people.w3.org/mike/diffs/html5/spec/Overview.1.1702.html#dom-messageport-postmessage start() http://people.w3.org/mike/diffs/html5/spec/Overview.1.1702.html#dom-messageport-start http://people.w3.org/mike/diffs/html5/spec/Overview.diff.html http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.1701&r2=1.1702&f=h http://html5.org/tools/web-apps-tracker?from=2530&to=2531 =================================================================== RCS file: /sources/public/html5/spec/Overview.html,v retrieving revision 1.1701 retrieving revision 1.1702 diff -u -d -r1.1701 -r1.1702 --- Overview.html 16 Dec 2008 00:55:38 -0000 1.1701 +++ Overview.html 16 Dec 2008 01:01:42 -0000 1.1702 @@ -808,8 +808,7 @@ <li><a href=#message-channels><span class=secno>7.5.2 </span>Message channels</a></li> <li><a href=#message-ports><span class=secno>7.5.3 </span>Message ports</a> <ol> - <li><a href=#message-port-discarding><span class=secno>7.5.3.1 </span>Ports and browsing contexts</a></li> - <li><a href=#ports-and-garbage-collection><span class=secno>7.5.3.2 </span>Ports and garbage collection</a></ol></ol></ol></li> + <li><a href=#ports-and-garbage-collection><span class=secno>7.5.3.1 </span>Ports and garbage collection</a></ol></ol></ol></li> <li><a href=#syntax><span class=secno>8 </span>The HTML syntax</a> <ol> <li><a href=#writing-html-documents><span class=secno>8.1 </span>Writing HTML documents</a> @@ -35892,27 +35891,13 @@ </ol> --><hr><p>The <dfn id=dom-messageport-start title=dom-MessagePort-start><code>start()</code></dfn> method must open its port's <a href=#port-message-queue>port message queue</a>, if it - is not already open.<p>When a port's <a href=#port-message-queue>port message queue</a> is open, contains - an event, and its owner is <a href=#port-owner-available title="port owner - available">available</a>, the user agent must <a href=#queue-a-task>queue a - task</a> in the <a href=#event-loop>event loop</a> to dispatch the first - event in the queue on the <code><a href=#messageport>MessagePort</a></code> object, and - remove the event from the queue. The <a href=#task-source>task source</a> for - this <a href=#concept-task title=concept-task>task</a> is the <a href=#posted-message-task-source>posted - message task source</a>.<p>A <code><a href=#messageport>MessagePort</a></code>'s owner is <dfn id=port-owner-available title="port owner - available">available</dfn> if the <code><a href=#messageport>MessagePort</a></code> is owned - by an object other than a <code><a href=#window>Window</a></code> object, or if it is - owned by a <code><a href=#window>Window</a></code> object and the <code>Document</code> - that was the <a href=#active-document>active document</a> in that <a href=#browsing-context>browsing - context</a> when the <code><a href=#messageport>MessagePort</a></code> was created is - <a href=#fully-active>fully active</a>. If that <code>Document</code> is - discarded before the port's owner becomes available, then the events - are lost.</p><!-- XXX when we have sorted out the global object mess, if that - makes this easier to fix, then fix it better. (e.g. maybe just say - that callback tasks aren't processed if they involve firing a - callback that wouldn't fire because the code is swapped out? not - sure how you'd handle prioritisation, i guess you'd just pretend - those events weren't there for the time being) --><hr><p>The <dfn id=dom-messageport-close title=dom-MessagePort-close><code>close()</code></dfn> + is not already open.<p>When a port's <a href=#port-message-queue>port message queue</a> is open and + contains an event, the user agent must <a href=#queue-a-task>queue a task</a> in + the <a href=#event-loop>event loop</a> to dispatch the first event in the queue + on the <code><a href=#messageport>MessagePort</a></code> object, and remove the event from + the queue. The <a href=#task-source>task source</a> for this <a href=#concept-task title=concept-task>task</a> is the <a href=#posted-message-task-source>posted message task + source</a>.<p class=note>If the <a href=#script-group>script group</a> of the port's event + handlers is <i>frozen</i>, then the messages are lost.</p><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 entangled with another port, must cause the user agents to run the following steps:<ol><li><p>Unentangle the two ports.</li> @@ -35947,29 +35932,10 @@ <dt><dfn id=handler-messageport-onclose title=handler-MessagePort-onclose><code>onclose</code></dfn></dt> - <dd><p>Must be invoked whenever an <code title=event-close>close</code> event is targeted at or bubbles + <dd><p>Must be invoked whenever a <code title=event-close>close</code> event is targeted at or bubbles through the <code><a href=#messageport>MessagePort</a></code> object.</dd> - </dl><h5 id=message-port-discarding><span class=secno>7.5.3.1 </span>Ports and browsing contexts</h5><p>When a <code>Document</code> is <a href=#discard-a-document title="discard a - document">discarded</a>, if there are any - <code><a href=#messageport>MessagePort</a></code> objects that:<ul class=brief><li>are entangled, and</li> - <li>are owned by the <a href=#browsing-context>browsing context</a> that contained that <code>Document</code>, and</li> - <li>were created while that <code>Document</code> was the <a href=#active-document>active document</a> of that <a href=#browsing-context>browsing context</a>, and</li> - <li>are entangled with a port that is either not owned by that <a href=#browsing-context>browsing context</a>, or were not created while that <code>Document</code> was the <a href=#active-document>active document</a> of that <a href=#browsing-context>browsing context</a>,</li> - </ul><p>...then the user agent must run the following steps for each such - port:<ol><li><p>Let <var title="">surviving port</var> be the port with - which the <code><a href=#messageport>MessagePort</a></code> object in question is - entangled.</li> - - <li><p>Unentangle the two ports.</li> - - <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple - event</a> called <code title=event-close>close</code> at - <var title="">surviving port</var>. The <a href=#task-source>task source</a> - for this <a href=#concept-task title=concept-task>task</a> is the <a href=#posted-message-task-source>posted - message task source</a>.</li> - - </ol><h5 id=ports-and-garbage-collection><span class=secno>7.5.3.2 </span>Ports and garbage collection</h5><p>User agents must act as if <code><a href=#messageport>MessagePort</a></code> objects have + </dl><h5 id=ports-and-garbage-collection><span class=secno>7.5.3.1 </span>Ports and garbage collection</h5><p>User agents must act as if <code><a href=#messageport>MessagePort</a></code> objects have a strong reference to their entangled <code><a href=#messageport>MessagePort</a></code> object.<div class=note>
Received on Tuesday, 16 December 2008 01:05:20 UTC