- From: Ian Hickson via cvs-syncmail <cvsmail@w3.org>
- Date: Wed, 02 Dec 2009 09:40:19 +0000
- To: public-html-commits@w3.org
Update of /sources/public/html5/spec In directory hutz:/tmp/cvs-serv22405 Modified Files: Overview.html Log Message: Make sure to say to queue a task for a variety of situations that otherwise would have synchronous or undefined behaviour. Release the storage mutex in a few places that were missed before. (whatwg r4395) Index: Overview.html =================================================================== RCS file: /sources/public/html5/spec/Overview.html,v retrieving revision 1.3515 retrieving revision 1.3516 diff -u -d -r1.3515 -r1.3516 --- Overview.html 2 Dec 2009 02:12:34 -0000 1.3515 +++ Overview.html 2 Dec 2009 09:40:15 -0000 1.3516 @@ -8585,6 +8585,8 @@ </li> + <li><p>Release the <a href="#storage-mutex">storage mutex</a>.</li> + <li><p><a href="#prompt-to-unload-a-document" title="prompt to unload a document">Prompt to unload</a> the <code>Document</code> object. If the user <a href="#refused-to-allow-the-document-to-be-unloaded">refused to allow the document to be unloaded</a>, then @@ -17599,11 +17601,14 @@ name</a> must be set to the empty string.</p> <p>When content loads in an <code><a href="#the-iframe-element">iframe</a></code>, after any <code title="event-load">load</code> events are fired within the content - itself, the user agent must <a href="#fire-a-simple-event">fire a simple event</a> named - <code title="event-load">load</code> at the <code><a href="#the-iframe-element">iframe</a></code> - element. When content fails to load (e.g. due to a network error), - then the user agent must <a href="#fire-a-simple-event">fire a simple event</a> named - <code title="event-error">error</code> at the element instead.</p> + itself, the user agent must <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire + a simple event</a> named <code title="event-load">load</code> at + the <code><a href="#the-iframe-element">iframe</a></code> element. When content fails to load + (e.g. due to a network error), then the user agent must <a href="#queue-a-task">queue + a task</a> to <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-error">error</code> at the element instead.</p> + + <p>The <a href="#task-source">task source</a> for these <a href="#concept-task" title="concept-task">tasks</a> is the <a href="#dom-manipulation-task-source">DOM manipulation + task source</a>.</p> <p>When there is an <a href="#active-parser">active parser</a> in the <code><a href="#the-iframe-element">iframe</a></code>, and when anything in the <code><a href="#the-iframe-element">iframe</a></code> is @@ -18262,8 +18267,9 @@ whenever its <code title="attr-object-data"><a href="#attr-object-data">data</a></code> attribute is set, changed, or removed; and, when neither its <code title="attr-object-classid"><a href="#attr-object-classid">classid</a></code> attribute nor its <code title="attr-object-data"><a href="#attr-object-data">data</a></code> attribute are present, whenever its <code title="attr-object-type"><a href="#attr-object-type">type</a></code> attribute is set, - changed, or removed: the user agent must run the following steps to - (re)determine what the <code><a href="#the-object-element">object</a></code> element represents:</p> + changed, or removed: the user agent must <a href="#queue-a-task">queue a task</a> + to run the following steps to (re)determine what the + <code><a href="#the-object-element">object</a></code> element represents:</p> <!-- Changing the base URL doesn't trigger this. --> <ol><li> @@ -18585,7 +18591,10 @@ <a href="#fallback-content">fallback content</a>. If the element has an instantiated <a href="#plugin">plugin</a>, then unload it.</li> - </ol><p id="object-plugin">When the algorithm above instantiates a + </ol><p>The <a href="#task-source">task source</a> for the <a href="#concept-task" title="concept-task">task</a> above is the <a href="#dom-manipulation-task-source">DOM manipulation + task source</a>.</p> + + <p id="object-plugin">When the algorithm above instantiates a <a href="#plugin">plugin</a>, the user agent should pass the names and values of all the attributes on the element, and <!-- then a parameter named "PARAM" whose value is null, and then --> all the names and @@ -46659,13 +46668,15 @@ <p>When the value that would be returned by the <code title="dom-navigator-onLine"><a href="#dom-navigator-online">navigator.onLine</a></code> attribute of the <code><a href="#window">Window</a></code> changes from true to false, the user agent - must <a href="#fire-a-simple-event">fire a simple event</a> named <dfn id="event-offline" title="event-offline"><code>offline</code></dfn> at the + must <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple event</a> + named <dfn id="event-offline" title="event-offline"><code>offline</code></dfn> at the <code><a href="#window">Window</a></code> object.</p> <p>On the other hand, when the value that would be returned by the <code title="dom-navigator-onLine"><a href="#dom-navigator-online">navigator.onLine</a></code> attribute of the <code><a href="#window">Window</a></code> changes from false to true, the user - agent must <a href="#fire-a-simple-event">fire a simple event</a> named <dfn id="event-online" title="event-online"><code>online</code></dfn> at the + agent must <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple + event</a> named <dfn id="event-online" title="event-online"><code>online</code></dfn> at the <code><a href="#window">Window</a></code> object.</p> <p>The <a href="#task-source">task source</a> for these <a href="#concept-task" title="concept-task">tasks</a> is the <a href="#networking-task-source">networking task @@ -46852,12 +46863,6 @@ <a href="#browsing-context">browsing context</a> of the <var title="">specified entry</var>.</li> - <li><p>If the <code>Document</code> of the <var title="">specified - entry</var> of the <var title="">specified browsing context</var> - is not the same as the <code>Document</code> of the <a href="#current-entry">current - entry</a> of the <var title="">specified browsing context</var>, - then release the <a href="#storage-mutex">storage mutex</a>.</li> - <li><p><a href="#traverse-the-history">Traverse the history</a> of the <var title="">specified browsing context</var> to the <var title="">specified entry</var>.</p> </ol><p>When the user navigates through a <a href="#browsing-context">browsing context</a>, @@ -47386,7 +47391,9 @@ <p>When a browsing context is <dfn id="navigate" title="navigate">navigated</dfn> to a new resource, the user agent must run the following steps:</p> - <ol><li id="sandboxLinks"><p>If the <a href="#source-browsing-context">source browsing + <ol><li><p>Release the <a href="#storage-mutex">storage mutex</a>.</li> + + <li id="sandboxLinks"><p>If the <a href="#source-browsing-context">source browsing context</a> is not the same as the <a href="#browsing-context">browsing context</a> being navigated, and the <a href="#source-browsing-context">source browsing context</a> is not one of the <a href="#ancestor-browsing-context" title="ancestor browsing context">ancestor @@ -48113,6 +48120,8 @@ created. (This can never happen with <a href="#replacement-enabled">replacement enabled</a>.)</li> + <li><p>Release the <a href="#storage-mutex">storage mutex</a>.</li> + <li> <p>If appropriate, update the <a href="#current-entry">current entry</a> in the @@ -48211,6 +48220,8 @@ synchronously <a href="#fire-a-simple-event">fire a simple event</a> with the name <code title="event-hashchange">hashchange</code> at the <a href="#browsing-context">browsing context</a>'s <code><a href="#window">Window</a></code> object.</li> + <li><p>Release the <a href="#storage-mutex">storage mutex</a> again.</li> + <li><p>The <a href="#current-entry">current entry</a> is now the <i>specified entry</i>.</li> @@ -48229,6 +48240,8 @@ <li><p>Dispatch <var title="">event</var> at the <code>Document</code>'s <code><a href="#window">Window</a></code> object.</li> + <li><p>Release the <a href="#storage-mutex">storage mutex</a>.</li> + <li><p>If any event listeners were triggered by the previous step, then set the <code>Document</code>'s <var title="">salvageable</var> state to false.</li> @@ -48264,6 +48277,8 @@ <li><p><a href="#fire-a-simple-event">Fire a simple event</a> named <code title="event-unload">unload</code> at the <code>Document</code>'s <code><a href="#window">Window</a></code> object.</li> + <li><p>Release the <a href="#storage-mutex">storage mutex</a>.</li> + <li><p>If any event listeners were triggered by the previous step, then set the <code>Document</code> object's <var title="">salvageable</var> state to false.</li> @@ -48306,8 +48321,9 @@ </div><h4 id="aborting-a-document-load"><span class="secno">6.11.11 </span>Aborting a document load</h4><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i><p>If the user cancels any instance of the <a href="#fetch" title="fetch">fetching algorithm</a> in the context of a <code>Document</code> in a <a href="#browsing-context">browsing context</a>, then, if that <code>Document</code> is an <a href="#active-document">active document</a>, the - user agent must <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-abort">abort</code> at that <code>Document</code>'s - <code><a href="#window">Window</a></code> object.</p><!-- I'd love to make this more precise, anyone have any suggestions + user agent must <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple + event</a> named <code title="event-abort">abort</code> at that + <code>Document</code>'s <code><a href="#window">Window</a></code> object.</p><!-- I'd love to make this more precise, anyone have any suggestions on what it should say? --><h3 id="links"><span class="secno">6.12 </span>Links</h3><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i><h4 id="hyperlink-elements"><span class="secno">6.12.1 </span>Hyperlink elements</h4><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i><p>The <code><a href="#the-a-element">a</a></code>, <code><a href="#the-area-element">area</a></code>, and <code><a href="#the-link-element">link</a></code> elements can, in certain situations described in the definitions of those elements, represent <dfn id="hyperlink" title="hyperlink">hyperlinks</dfn>.<p>The <dfn id="attr-hyperlink-href" title="attr-hyperlink-href"><code>href</code></dfn> @@ -49609,8 +49625,8 @@ <li><p><a href="#fire-a-simple-event">Fire a simple event</a> named <code title="event-focus">focus</code> at the element.</li> - </ol><p>User agents must run the <a href="#focusing-steps">focusing steps</a> for an - element whenever the user moves the focus to a + </ol><p>User agents must synchronously run the <a href="#focusing-steps">focusing + steps</a> for an element whenever the user moves the focus to a <a href="#focusable">focusable</a> element.</p> <p>The <dfn id="unfocusing-steps">unfocusing steps</dfn> are as follows:</p> @@ -49631,10 +49647,10 @@ </ol><p>When an element that is focused stops being a <a href="#focusable">focusable</a> element, or stops being focused without another element being explicitly focused in its stead, the user - agent should run the <a href="#focusing-steps">focusing steps</a> for <a href="#the-body-element">the body - element</a>, if there is one; if there is not, then the user - agent should run the <a href="#unfocusing-steps">unfocusing steps</a> for the affected - element only.</p> + agent should synchronously run the <a href="#focusing-steps">focusing steps</a> for + <a href="#the-body-element">the body element</a>, if there is one; if there is not, + then the user agent should synchronously run the <a href="#unfocusing-steps">unfocusing + steps</a> for the affected element only.</p> <p class="example">For example, this might happen because the element is removed from its <code>Document</code>, or has a <code title="attr-hidden"><a href="#the-hidden-attribute">hidden</a></code> attribute added. It would also @@ -67182,11 +67198,14 @@ name</a> must be set to the empty string.</p> <p>When content loads in a <code><a href="#frame">frame</a></code>, after any <code title="event-load">load</code> events are fired within the content - itself, the user agent must <a href="#fire-a-simple-event">fire a simple event</a> named - <code title="event-load">load</code> at the <code><a href="#frame">frame</a></code> - element. When content fails to load (e.g. due to a network error), - then the user agent must <a href="#fire-a-simple-event">fire a simple event</a> named - <code title="event-error">error</code> at the element instead.</p> + itself, the user agent must <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire + a simple event</a> named <code title="event-load">load</code> at + the <code><a href="#frame">frame</a></code> element. When content fails to load (e.g. due + to a network error), then the user agent must <a href="#queue-a-task">queue a + task</a> to <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-error">error</code> at the element instead.</p> + + <p>The <a href="#task-source">task source</a> for the <a href="#concept-task" title="concept-task">tasks</a> above is the <a href="#dom-manipulation-task-source">DOM + manipulation task source</a>.</p> <p>When there is an <a href="#active-parser">active parser</a> in the <code><a href="#frame">frame</a></code>, and when anything in the <code><a href="#frame">frame</a></code> is
Received on Wednesday, 2 December 2009 09:40:28 UTC