- From: poot <cvsmail@w3.org>
- Date: Thu, 28 May 2009 18:25:33 +0900 (JST)
- To: public-html-diffs@w3.org
Only directly created nested workers inherit the lifetime requirements; ports on their own don't do it. (whatwg r3144) Diffs for this change per section: http://people.w3.org/mike/diffs/html5/workers/Overview.1.124.html#the-worker-s-ports http://people.w3.org/mike/diffs/html5/workers/Overview.1.124.html#dom-workerglobalscope-closing http://people.w3.org/mike/diffs/html5/workers/Overview.1.124.html#the-worker-s-documents http://people.w3.org/mike/diffs/html5/workers/Overview.1.124.html#dom-worker http://people.w3.org/mike/diffs/html5/workers/Overview.1.124.html#dom-sharedworker http://people.w3.org/mike/diffs/html5/workers/Overview.1.124.html#add-a-document-to-the-worker-s-documents http://people.w3.org/mike/diffs/html5/workers/Overview.1.124.html#the-worker-s-lifetime http://people.w3.org/mike/diffs/html5/workers/Overview.1.124.html#the-worker-s-workers http://people.w3.org/mike/diffs/html5/workers/Overview.1.124.html#protected-worker http://people.w3.org/mike/diffs/html5/workers/Overview.1.124.html#dom-workerglobalscope-close http://people.w3.org/mike/diffs/html5/workers/Overview.1.124.html#active-needed-worker http://people.w3.org/mike/diffs/html5/workers/Overview.diff.html http://dev.w3.org/cvsweb/html5/workers/Overview.html?r1=1.123&r2=1.124&f=h http://html5.org/tools/web-apps-tracker?from=3143&to=3144 =================================================================== RCS file: /sources/public/html5/workers/Overview.html,v retrieving revision 1.123 retrieving revision 1.124 diff -u -d -r1.123 -r1.124 --- Overview.html 28 May 2009 07:01:53 -0000 1.123 +++ Overview.html 28 May 2009 09:25:12 -0000 1.124 @@ -259,7 +259,7 @@ <li><a href="#base-urls-and-origins-of-workers"><span class="secno">4.2 </span>Base URLs and origins of workers</a></li> <li><a href="#decoding-scripts"><span class="secno">4.3 </span>Decoding scripts</a></li> <li><a href="#the-event-loop"><span class="secno">4.4 </span>The event loop</a></li> - <li><a href="#the-worker-s-ports"><span class="secno">4.5 </span>The worker's ports</a></li> + <li><a href="#the-worker-s-lifetime"><span class="secno">4.5 </span>The worker's lifetime</a></li> <li><a href="#processing-model"><span class="secno">4.6 </span>Processing model</a></li> <li><a href="#runtime-script-errors"><span class="secno">4.7 </span>Runtime script errors</a></li> <li><a href="#creating-workers"><span class="secno">4.8 </span>Creating workers</a> @@ -1024,7 +1024,7 @@ <a href="#dom-workerglobalscope-closing" title="dom-WorkerGlobalScope-closing">closing</a> flag to true. (This prevents any further tasks from being queued.)</li> - <li><p>Disentangle all the ports in the list of <a href="#the-worker-s-ports-0">the worker's + <li><p>Disentangle all the ports in the list of <a href="#the-worker-s-ports">the worker's ports</a>.</li> </ol><p>The following are the <span>event handler attributes</span> (and their corresponding <span title="event handler event type">event handler event types</span>) @@ -1163,9 +1163,9 @@ already on the queue are unaffected unless otherwise specified). Effectively, once the <a href="#dom-workerglobalscope-closing" title="dom-WorkerGlobalScope-closing">closing</a> flag is true, timers stop firing, notifications for all pending asynchronous - operations are dropped, etc.<h3 id="the-worker-s-ports"><span class="secno">4.5 </span>The worker's ports</h3><p>Workers communicate with other workers and with <span title="browsing context">browsing contexts</span> through <span title="channel messaging">message channels</span> and their + operations are dropped, etc.<h3 id="the-worker-s-lifetime"><span class="secno">4.5 </span>The worker's lifetime</h3><p>Workers communicate with other workers and with <span title="browsing context">browsing contexts</span> through <span title="channel messaging">message channels</span> and their <code>MessagePort</code> objects.<p>Each <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> <var title="">worker global - scope</var> has a list of <dfn id="the-worker-s-ports-0">the worker's ports</dfn>, which + scope</var> has a list of <dfn id="the-worker-s-ports">the worker's ports</dfn>, which consists of all the <code>MessagePort</code> objects that are entangled with another port and that have one (but only one) port owned by <var title="">worker global scope</var>. This list includes @@ -1174,14 +1174,15 @@ because in practice it makes no difference either way as far as I can tell, and it would be hard to strictly implement since these ports might not yet be across the thread boundary)--> the implicit - <code>MessagePort</code> in the case of <a href="#dedicatedworkerglobalscope" title="DedicatedWorkerGlobalScope">dedicated workers</a>.<p>Each <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> also has a list of <dfn id="the-worker-s-documents">the - worker's <code>Document</code>s</dfn>. Initially this list is empty; - it is populated when the worker is created.<p>Whenever a <code>Document</code> <var title="">d</var> is <dfn id="add-a-document-to-the-worker-s-documents" title="add a document to the worker's documents">added to the + <code>MessagePort</code> in the case of <a href="#dedicatedworkerglobalscope" title="DedicatedWorkerGlobalScope">dedicated workers</a>.<p>Each <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> also has a list of <dfn id="the-worker-s-workers">the + worker's workers</dfn>. Initially this list is empty; it is + populated when the worker creates or obtains further workers.<p>Finally, each <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> also has a list of + <dfn id="the-worker-s-documents">the worker's <code>Document</code>s</dfn>. Initially this list + is empty; it is populated when the worker is created.<p>Whenever a <code>Document</code> <var title="">d</var> is <dfn id="add-a-document-to-the-worker-s-documents" title="add a document to the worker's documents">added to the worker's <code>Document</code>s</dfn>, the user agent must, for each - port in the list of <a href="#the-worker-s-ports-0">the worker's ports</a> that is - entangled with a second port <var title="">p</var> whose owner is a - <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> object whose list of <a href="#the-worker-s-documents">the - worker's <code>Document</code>s</a> does not contain <var title="">d</var>, <a href="#add-a-document-to-the-worker-s-documents" title="add a document to the worker's + worker in the list of <a href="#the-worker-s-workers">the worker's workers</a> whose list + of <a href="#the-worker-s-documents">the worker's <code>Document</code>s</a> does not contain + <var title="">d</var>, <a href="#add-a-document-to-the-worker-s-documents" title="add a document to the worker's documents">add <var title="">d</var> to <var title="">q</var>'s <code>WorkerGlobalScope</code> owner's list of <span>the worker's <code>Document</code>s</span></a>.</p><!-- suggestions welcome @@ -1202,7 +1203,7 @@ empty.<p>A worker is said to be a <dfn id="protected-worker">protected worker</dfn> if it is a <a href="#permissible-worker">permissible worker</a> and either it has outstanding timers, database transactions, or network connections, or its list - of <a href="#the-worker-s-ports-0">the worker's ports</a> is not empty, or its + of <a href="#the-worker-s-ports">the worker's ports</a> is not empty, or its <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> is actually a <code><a href="#sharedworkerglobalscope">SharedWorkerGlobalScope</a></code> object (i.e. the worker is a shared worker).<p>A worker is said to be an <dfn id="active-needed-worker">active needed worker</dfn> if any @@ -1586,6 +1587,18 @@ <li> + <p>If the <span title="script's global scope">global scope</span> + of the <span title="concept-script">script</span> that invoked the + constructor is a <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> object (i.e. we + are creating a nested worker), add <var title="">worker global + scope</var> to the list of <a href="#the-worker-s-workers">the worker's workers</a> of the + <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> object that is the <span title="script's global scope">global scope</span> of the <span title="concept-script">script</span> that invoked the + constructor.</p> + + </li> + + <li> + <p><a href="#run-a-worker">Run a worker</a> for the resulting <span>absolute URL</span>, with the <span>script browsing context</span> of the script that invoked the method as the <var title="">owner browsing @@ -1683,6 +1696,19 @@ </li> + <li> + + <p>If the <span title="script's global scope">global + scope</span> of the <span title="concept-script">script</span> + that invoked the constructor is a + <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> object, add <var title="">worker global scope</var> to the list of <a href="#the-worker-s-workers">the + worker's workers</a> of the <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> + object that is the <span title="script's global scope">global + scope</span> of the <span title="concept-script">script</span> + that invoked the constructor.</p> + + </li> + <li><p>Abort all these steps.</li> </ol></li> @@ -1726,6 +1752,18 @@ <li> + <p>If the <span title="script's global scope">global scope</span> + of the <span title="concept-script">script</span> that invoked the + constructor is a <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> object, add <var title="">worker global scope</var> to the list of <a href="#the-worker-s-workers">the + worker's workers</a> of the <code><a href="#workerglobalscope">WorkerGlobalScope</a></code> + object that is the <span title="script's global scope">global + scope</span> of the <span title="concept-script">script</span> + that invoked the constructor.</p> + + </li> + + <li> + <p><a href="#run-a-worker">Run a worker</a> for the resulting <span>absolute URL</span>, with the <span>script browsing context</span> of the script that invoked the method as the <var title="">owner browsing
Received on Thursday, 28 May 2009 09:26:07 UTC