- From: poot <cvsmail@w3.org>
- Date: Thu, 28 May 2009 16:03:24 +0900 (JST)
- To: public-html-diffs@w3.org
Big changes to Workers and SharedWorkers to make their lifetime model easier. Move 'close' events to v2. Also, fix some omissions and xref problems that I ran across. (whatwg r3143) Diffs for this change per section: http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#clone-a-port http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#status-of-this-document http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#refused-to-allow-the-document-to-be-unloaded http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#ports-and-garbage-collection http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#messageport http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#a-vocabulary-and-associated-apis-for-html-and-xhtml http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#concept-error-handled http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#discard-a-document http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#a-browsing-context-is-discarded http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#editor-s-draft-date-1-january-1970 http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#handler-messageport-onmessage http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#dom-messageport-postmessage http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#report-the-error http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#messageportarray http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#runtime-script-errors http://people.w3.org/mike/diffs/html5/spec/Overview.1.2301.html#controlling-the-input-stream http://people.w3.org/mike/diffs/html5/spec/Overview.diff.html http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.2300&r2=1.2301&f=h http://html5.org/tools/web-apps-tracker?from=3142&to=3143 =================================================================== RCS file: /sources/public/html5/spec/Overview.html,v retrieving revision 1.2300 retrieving revision 1.2301 diff -u -d -r1.2300 -r1.2301 --- Overview.html 27 May 2009 18:51:13 -0000 1.2300 +++ Overview.html 28 May 2009 07:01:45 -0000 1.2301 @@ -152,7 +152,7 @@ <h2 class="no-num no-toc" id="a-vocabulary-and-associated-apis-for-html-and-xhtml">A vocabulary and associated APIs for HTML and XHTML</h2> <!--ZZZ:--> <!--<h2 class="no-num no-toc">W3C Working Draft 23 April 2009</h2>--> - <h2 class="no-num no-toc" id="editor-s-draft-date-1-january-1970">Editor's Draft 27 May 2009</h2> + <h2 class="no-num no-toc" id="editor-s-draft-date-1-january-1970">Editor's Draft 28 May 2009</h2> <!--:ZZZ--> <dl><!-- ZZZ: update the month/day (twice), (un)comment out <dt>This Version:</dt> @@ -245,7 +245,7 @@ track. <!--ZZZ:--> <!--This specification is the 23 April 2009 Working Draft.--> - This specification is the 27 May 2009 Editor's Draft. + This specification is the 28 May 2009 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) --><p>This specification is also being produced by the <a href="http://www.whatwg.org/">WHATWG</a>. The two specifications are identical from the table of contents onwards.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- context and rationale (required) --><p>This specification is intended to replace (be a new version of) @@ -8442,6 +8442,20 @@ document to be unloaded</a>, then these steps must be aborted.</li> + <!-- XXX should some task sources be emptied here? e.g. what about + timeouts that fired after this algorithm started but before the + list of timeouts was cleared in the previous step? or database + transaction callbacks that were queued after the task that started + this algorithm? + + This is what the 'discard a document' algorithm does: + + "any <span title="concept-task">tasks</span> associated with the + <code>Document</code> in any <span>task source</span> must be + removed without being run" + + --> + <li><p>If the document has an <span>active parser</span><!--XXX xref-->, then stop that parser, and throw away any pending content in the input stream. <span class="XXX">what about if it @@ -41648,6 +41662,10 @@ reference">has a strong reference of its own</a> to its <code>Document</code> object.</p> + <p class="note">Whenever a <code>Document</code> object is <a href="#discard-a-document" title="discard a Document">discarded</a>, it is also removed from + the list of <span>the worker's <code>Document</code>s</span> of each + worker whose list contains that <code>Document</code>.</p> + <p>When <dfn id="a-browsing-context-is-discarded">a <em><span>browsing context</span></em> is discarded</dfn>, the strong reference from the user agent itself to the <a href="#browsing-context">browsing context</a> must be severed, and all the @@ -43201,14 +43219,14 @@ associated with a <code>Document</code>, the user agent must <a href="#report-the-error">report the error</a> using the <code title="handler-window-onerror"><a href="#handler-window-onerror">onerror</a></code> <a href="#event-handler-attributes-0" title="event handler attributes">event handler attribute</a> of the - <a href="#script-s-global-object">script's global object</a>. If the error is still <i title="">not handled</i> after this, then the error should be - reported to the user.</p> + <a href="#script-s-global-object">script's global object</a>. If the error is still <i title="concept-error-nothandled"><a href="#concept-error-nothandled">not handled</a></i> after this, then + the error should be reported to the user.</p> <hr><p>When the user agent is required to <dfn id="report-the-error" title="report the error">report an error</dfn> <var title="">error</var> using the <a href="#event-handler-attributes-0" title="event handler attributes">event handler attribute</a> <var title="">onerror</var>, it must run these - steps, after which the error is either <i title="">handled</i> or <i title="">not handled</i>:</p> + steps, after which the error is either <dfn id="concept-error-handled" title="concept-error-handled"><i>handled</i></dfn> or <dfn id="concept-error-nothandled" title="concept-error-nothandled"><i>not handled</i></dfn>:</p> <dl class="switch"><dt>If the value of <var title="">onerror</var> is a <code><a href="#function">Function</a></code></dt> @@ -43222,8 +43240,8 @@ the resource in which the error occurred, and the third must give the line number in that resource on which the error occurred.</p> - <p>If the function returns false, then the error is <i title="">handled</i>. Otherwise, the error is <i title="">not - handled</i>.</p> + <p>If the function returns false, then the error is <i title="concept-error-handled"><a href="#concept-error-handled">handled</a></i>. Otherwise, the error is + <i title="concept-error-nothandled"><a href="#concept-error-nothandled">not handled</a></i>.</p> <p>Any exceptions thrown or errors caused by this function must be reported to the user immediately after the error that the function @@ -43236,7 +43254,7 @@ <dd> - <p>The error is <i title="">not handled</i>.</p> + <p>The error is <i title="concept-error-nothandled"><a href="#concept-error-nothandled">not handled</a></i>.</p> </dd> @@ -47183,6 +47201,10 @@ the <code>Document</code>'s <code><a href="#window">Window</a></code> object, roll them back (without invoking any of the callbacks) and set <var title="">salvageable</var> to false.</p> + <li><p>Empty the <code>Document</code>'s <code><a href="#window">Window</a></code>'s + <a href="#list-of-active-timeouts">list of active timeouts</a> and its <a href="#list-of-active-intervals">list of active + intervals</a>.</li> + <li><p>If <var title="">salvageable</var> and <var title="">recycle</var> are both false, <a href="#discard-a-document" title="discard a document">discard the <code>Document</code></a>.</li> @@ -51979,23 +52001,23 @@ 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> { - readonly attribute boolean <a href="#dom-messageport-active" title="dom-MessagePort-active">active</a>; - void <a href="#dom-messageport-postmessage" title="dom-MessagePort-postMessage">postMessage</a>(in any message, [Optional] in <a href="#messageportarray">MessagePortArray</a> ports);<!-- +<!-- 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, [Optional] in <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-close" title="dom-MessagePort-close">close</a>(); // event handler attributes attribute <a href="#function">Function</a> <a href="#handler-messageport-onmessage" title="handler-MessagePort-onmessage">onmessage</a>; -};</pre><dl class="domintro"><dt><var title="">port</var> . <code title="dom-MessagePort-active"><a href="#dom-messageport-active">active</a></code></dt> +};</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> +--><dt><var title="">port</var> . <code title="dom-MessagePort-poseMessage">postMessage</code>(<var title="">message</var> [, <var title="">ports</var>] )</dt> <dd> @@ -52090,11 +52112,13 @@ <li><p>Return <var title="">new port</var>. It is the clone.</li> - </ol><hr><p>The <dfn id="dom-messageport-active" title="dom-MessagePort-active"><code>active</code></dfn> + </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> + <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> @@ -52258,9 +52282,11 @@ <h5 id="ports-and-garbage-collection"><span class="secno">8.3.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.</p> + <p>User agents must either 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 or as if each + <code><a href="#messageport">MessagePort</a></code> object's owner has a strong reference to + the <code><a href="#messageport">MessagePort</a></code> object.</p> <div class="note"> @@ -52269,7 +52295,7 @@ receive a message, the channel will be maintained.</p> <p>Of course, if this was to occur on both sides of the channel, - then both ports would be garbage collected, since they would not be + then both ports could be garbage collected, since they would not be reachable from live code, despite having a strong reference to each other.</p> @@ -52282,7 +52308,7 @@ <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 of DOM + <!-- 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 --> <!-- XXX what about ports in the ports attribute of a MessageEvent
Received on Thursday, 28 May 2009 07:03:59 UTC