- From: poot <cvsmail@w3.org>
- Date: Thu, 17 Jul 2008 10:28:48 +0900 (JST)
- To: public-html-diffs@w3.org
window.close() for a worker (whatwg r10) (changed by: Ian Hickson) Diffs for this change per section: kill a worker http://people.w3.org/mike/diffs/html5/workers/Overview.1.8.html#kill-a 3.1 The WindowWorkerCreators interface http://people.w3.org/mike/diffs/html5/workers/Overview.1.8.html#the-windowworkercreators 3. Creating workers http://people.w3.org/mike/diffs/html5/workers/Overview.1.8.html#creating 2.3 Processing model http://people.w3.org/mike/diffs/html5/workers/Overview.1.8.html#processing run a worker http://people.w3.org/mike/diffs/html5/workers/Overview.1.8.html#run-a Editor's Draft 17 July 2008 http://people.w3.org/mike/diffs/html5/workers/Overview.1.8.html#editors queue of events http://people.w3.org/mike/diffs/html5/workers/Overview.1.8.html#queue An accompaniment specification for HTML5 http://people.w3.org/mike/diffs/html5/workers/Overview.1.8.html#an-accompaniment close() http://people.w3.org/mike/diffs/html5/workers/Overview.1.8.html#close WindowWorker http://people.w3.org/mike/diffs/html5/workers/Overview.1.8.html#windowworker Current content per affected section: http://dev.w3.org/html5/workers/Overview.html#kill-a http://dev.w3.org/html5/workers/Overview.html#the-windowworkercreators http://dev.w3.org/html5/workers/Overview.html#creating http://dev.w3.org/html5/workers/Overview.html#processing http://dev.w3.org/html5/workers/Overview.html#run-a http://dev.w3.org/html5/workers/Overview.html#editors http://dev.w3.org/html5/workers/Overview.html#queue http://dev.w3.org/html5/workers/Overview.html#an-accompaniment http://dev.w3.org/html5/workers/Overview.html#close http://dev.w3.org/html5/workers/Overview.html#windowworker Previously published WD content per affected section: http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#kill-a http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#the-windowworkercreators http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#creating http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#processing http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#run-a http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#editors http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#queue http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#an-accompaniment http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#close http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#windowworker Cumulative diff: http://people.w3.org/mike/diffs/html5/workers/Overview.diff.html http://dev.w3.org/cvsweb/html5/workers/Overview.html?r1=1.7&r2=1.8&f=h http://html5.org/tools/web-apps-tracker?from=9&to=10 =================================================================== RCS file: /sources/public/html5/workers/Overview.html,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Overview.html 16 Jul 2008 08:06:41 -0000 1.7 +++ Overview.html 17 Jul 2008 01:27:55 -0000 1.8 @@ -19,7 +19,7 @@ specification for HTML5</h2> <h2 class="no-num no-toc" id=editors><!-- "W3C Working Draft" --> Editor's - Draft <!--ZZZ-->16 July 2008</h2> + Draft <!--ZZZ-->17 July 2008</h2> <dl><!-- ZZZ: update the month/day <dt>This Version:</dt> @@ -144,7 +144,7 @@ <p>The W3C <a href="http://www.w3.org/html/wg/">HTML Working Group</a> is the W3C working group responsible for this specification's progress along - the W3C Recommendation track. <!--ZZZ:--> This specification is the 16 + the W3C Recommendation track. <!--ZZZ:--> This specification is the 17 July 2008 <!--ZZZ "Working Draft"-->Editor's Draft. <!--:ZZZ--></p> <!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --> <!-- relationship to other work (required) --> @@ -378,6 +378,7 @@ class=idl>[NoInterfaceObject] interface <dfn id=windowworker>WindowWorker</dfn> { readonly attribute boolean <a href="#name" title=dom-windowworker-name>name</a>; readonly attribute boolean <a href="#closing" title=dom-windowworker-closing>closing</a>; + void <a href="#close" title=dom-windowworker-close>close</a>(); };</pre> <p>Objects that implement the <code><a @@ -405,6 +406,19 @@ <p>An event in the queue can be a DOM event or a timeout callback. + <p>All asynchronous callbacks and events that would be called or dispatched + in the worker must be added to the worker's queue, with the "<a + href="#run-a">run a worker</a>" processing model below taking care of + actually calling the callbacks or dispatching the events. + + <p>Once the <code><a href="#windowworker">WindowWorker</a></code>'s <code + title=dom-windowworker-closing><a href="#closing">closing</a></code> + attribute is set to true, the queue must discard anything else that would + be added to it. Effectively, once the <code + title=dom-windowworker-closing><a href="#closing">closing</a></code> + attribute is true, timers stop firing, notifications for all pending + asynchronous operations are dropped, etc. + <h3 id=processing><span class=secno>2.3 </span>Processing model</h3> <p>When a user agent is to <dfn id=run-a>run a worker</dfn> named <var @@ -477,10 +491,9 @@ <li> <p>Dispatch the oldest event or callback in the <a href="#queue">queue of - events</a>. Events must be targetted at the <code><a - href="#windowworker">WindowWorker</a></code> object. The handling of - this event or the execution of this callback might get prematurely - aborted by the "<a href="#kill-a">kill a worker</a>" algorithm below.</p> + events</a>. The handling of this event or the execution of this callback + might get prematurely aborted by the "<a href="#kill-a">kill a + worker</a>" algorithm below.</p> <li> <p>If there are any more events in the <a href="#queue">queue of @@ -492,7 +505,7 @@ <li> <p class=big-issue>timers, intervals, XMLHttpRequests, database transactions, etc, must be killed; ports must be deactivated and - unentangled</p> + unentangled (do not send unload)</p> </ol> <hr> @@ -503,19 +516,25 @@ <ol> <li> - <p>Set the worker's <code><a href="#windowworker">WindowWorker</a></code> - object's <code title=dom-windowworker-closing><a - href="#closing">closing</a></code> attribute to true. - - <li> <p>Create an <code>Event</code> object with the event name <code title=event-unload>unload</code>, which does not bubble and is not cancelable, and add it to the worker's <code><a href="#windowworker">WindowWorker</a></code> object's <a - href="#queue">queue of events</a>. + href="#queue">queue of events</a>, targetted at the <code><a + href="#windowworker">WindowWorker</a></code> object itself. <li> - <p>Wait a user-agent-defined amount of time. + <p>Set the worker's <code><a href="#windowworker">WindowWorker</a></code> + object's <code title=dom-windowworker-closing><a + href="#closing">closing</a></code> attribute to true. + + <li> + <p>Wait a user-agent-defined amount of time. If the "<a href="#run-a">run + a worker</a>" processing model defined above immediately starts running + event listeners registered for <code title=event-unload>unload</code> + event, this time should not be zero — the idea is that the <code + title=event-unload>unload</code> event can be used to clean up when + shutting down unexpectedly. <li> <p>If there are any events in the <a href="#queue">queue of events</a> @@ -536,6 +555,53 @@ title=event-unload>unload</code> event). </ol> + <hr> + + <p>When a script invokes the <dfn id=close + title=dom-windowworker-close><code>close()</code></dfn> method on a + <code><a href="#windowworker">WindowWorker</a></code> object, the user + agent must run the following steps: + + <ol> + <li> + <p>Create an <code>Event</code> object with the event name <code + title=event-unload>unload</code>, which does not bubble and is not + cancelable, and add it to the <code><a + href="#windowworker">WindowWorker</a></code> object's <a + href="#queue">queue of events</a>, targetted at the <code><a + href="#windowworker">WindowWorker</a></code> object itself. + + <li> + <p>Set the worker's <code><a href="#windowworker">WindowWorker</a></code> + object's <code title=dom-windowworker-closing><a + href="#closing">closing</a></code> attribute to true. + + <li> + <p>For each <code>MessagePort</code> object that is entangled with + another port and that has one (but only one) port whose <code + title=dom-messageport-ownerWindow>ownerWindow</code> is the <code><a + href="#windowworker">WindowWorker</a></code> object on which the method + was invoked, run the following substeps:</p> + + <ol> + <li> + <p>Unentangle the two ports. + + <li> + <p>Set both ports' <code title=dom-messageport-active>active</code> + attribute to false. + + <li> + <p>At the next available opportunity, after any scripts have finished + executing<!-- XXX queue -->, <span>fire a simple event</span> called + <code title=event-unload>unload</code> at the other port (the one + whose <code title=dom-messageport-ownerWindow>ownerWindow</code> is + not the <code><a href="#windowworker">WindowWorker</a></code> object + on which the <code title=dom-windowworker-close><a + href="#close">close()</a></code> method was called). + </ol> + </ol> + <h2 id=creating><span class=secno>3. </span>Creating workers</h2> <h3 id=the-windowworkercreators><span class=secno>3.1 </span>The <code><a
Received on Thursday, 17 July 2008 01:29:25 UTC