[html5] r4395 - [giow] (2) Make sure to say to queue a task for a variety of situations that oth [...]

whatwg at whatwg.org whatwg at whatwg.org
Wed Dec 2 01:40:10 PST 2009


Author: ianh
Date: 2009-12-02 01:40:06 -0800 (Wed, 02 Dec 2009)
New Revision: 4395

Modified:
   complete.html
   index
   source
Log:
[giow] (2) 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.

Modified: complete.html
===================================================================
--- complete.html	2009-12-02 05:17:15 UTC (rev 4394)
+++ complete.html	2009-12-02 09:40:06 UTC (rev 4395)
@@ -9798,6 +9798,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
@@ -20315,12 +20317,15 @@
   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
   <a href=#delay-the-load-event title="delay the load event">delaying the load event</a> of
@@ -21058,8 +21063,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>
@@ -21381,7 +21387,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
@@ -54772,13 +54781,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
@@ -55016,12 +55027,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>,
@@ -55593,7 +55598,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
@@ -56320,6 +56327,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
@@ -56418,6 +56427,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>
 
@@ -56441,6 +56452,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>
 
@@ -56476,6 +56489,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>
 
@@ -56529,8 +56544,9 @@
   <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>
+  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? -->
@@ -58935,8 +58951,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>
@@ -58957,10 +58973,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
@@ -81863,12 +81879,15 @@
   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
   <a href=#delay-the-load-event title="delay the load event">delaying the load event</a> of

Modified: index
===================================================================
--- index	2009-12-02 05:17:15 UTC (rev 4394)
+++ index	2009-12-02 09:40:06 UTC (rev 4395)
@@ -9639,6 +9639,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
@@ -20156,12 +20158,15 @@
   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
   <a href=#delay-the-load-event title="delay the load event">delaying the load event</a> of
@@ -20899,8 +20904,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>
@@ -21222,7 +21228,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
@@ -51938,13 +51947,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
@@ -52182,12 +52193,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>,
@@ -52759,7 +52764,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
@@ -53486,6 +53493,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
@@ -53584,6 +53593,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>
 
@@ -53607,6 +53618,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>
 
@@ -53642,6 +53655,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>
 
@@ -53695,8 +53710,9 @@
   <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>
+  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? -->
@@ -55395,8 +55411,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>
@@ -55417,10 +55433,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
@@ -73726,12 +73742,15 @@
   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
   <a href=#delay-the-load-event title="delay the load event">delaying the load event</a> of

Modified: source
===================================================================
--- source	2009-12-02 05:17:15 UTC (rev 4394)
+++ source	2009-12-02 09:40:06 UTC (rev 4395)
@@ -10006,6 +10006,8 @@
 
    </li>
 
+   <li><p>Release the <span>storage mutex</span>.</p></li>
+
    <li><p><span title="prompt to unload a document">Prompt to
    unload</span> the <code>Document</code> object. If the user
    <span>refused to allow the document to be unloaded</span>, then
@@ -21585,12 +21587,17 @@
 
   <p>When content loads in an <code>iframe</code>, after any <code
   title="event-load">load</code> events are fired within the content
-  itself, the user agent must <span>fire a simple event</span> named
-  <code title="event-load">load</code> at the <code>iframe</code>
-  element. When content fails to load (e.g. due to a network error),
-  then the user agent must <span>fire a simple event</span> named
-  <code title="event-error">error</code> at the element instead.</p>
+  itself, the user agent must <span>queue a task</span> to <span>fire
+  a simple event</span> named <code title="event-load">load</code> at
+  the <code>iframe</code> element. When content fails to load
+  (e.g. due to a network error), then the user agent must <span>queue
+  a task</span> to <span>fire a simple event</span> named <code
+  title="event-error">error</code> at the element instead.</p>
 
+  <p>The <span>task source</span> for these <span
+  title="concept-task">tasks</span> is the <span>DOM manipulation
+  task source</span>.</p>
+
   <p>When there is an <span>active parser</span> in the
   <code>iframe</code>, and when anything in the <code>iframe</code> is
   <span title="delay the load event">delaying the load event</span> of
@@ -22417,8 +22424,9 @@
   title="attr-object-classid">classid</code> attribute nor its <code
   title="attr-object-data">data</code> attribute are present, whenever
   its <code title="attr-object-type">type</code> attribute is set,
-  changed, or removed: the user agent must run the following steps to
-  (re)determine what the <code>object</code> element represents:</p>
+  changed, or removed: the user agent must <span>queue a task</span>
+  to run the following steps to (re)determine what the
+  <code>object</code> element represents:</p>
   <!-- Changing the base URL doesn't trigger this. -->
 
   <ol>
@@ -22774,6 +22782,10 @@
 
   </ol>
 
+  <p>The <span>task source</span> for the <span
+  title="concept-task">task</span> above is the <span>DOM manipulation
+  task source</span>.</p>
+
   <p id="object-plugin">When the algorithm above instantiates a
   <span>plugin</span>, the user agent should pass the names and values
   of all the attributes on the element, and <!-- then a parameter
@@ -61802,14 +61814,15 @@
   <p>When the value that would be returned by the <code
   title="dom-navigator-onLine">navigator.onLine</code> attribute of
   the <code>Window</code> changes from true to false, the user agent
-  must <span>fire a simple event</span> named <dfn
-  title="event-offline"><code>offline</code></dfn> at the
+  must <span>queue a task</span> to <span>fire a simple event</span>
+  named <dfn title="event-offline"><code>offline</code></dfn> at the
   <code>Window</code> object.</p>
 
   <p>On the other hand, when the value that would be returned by the
   <code title="dom-navigator-onLine">navigator.onLine</code> attribute
   of the <code>Window</code> changes from false to true, the user
-  agent must <span>fire a simple event</span> named <dfn
+  agent must <span>queue a task</span> to <span>fire a simple
+  event</span> named <dfn
   title="event-online"><code>online</code></dfn> at the
   <code>Window</code> object.</p>
 
@@ -62062,12 +62075,6 @@
    <span>browsing context</span> of the <var title="">specified
    entry</var>.</p></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 <span>current
-   entry</span> of the <var title="">specified browsing context</var>,
-   then release the <span>storage mutex</span>.</p></li>
-
    <li><p><span>Traverse the history</span> of the <var
    title="">specified browsing context</var> to the <var
    title="">specified entry</var>.</p>
@@ -62759,6 +62766,8 @@
 
   <ol>
 
+   <li><p>Release the <span>storage mutex</span>.</p></li>
+
    <li id="sandboxLinks"><p>If the <span>source browsing
    context</span> is not the same as the <span>browsing context</span>
    being navigated, and the <span>source browsing context</span> is
@@ -63583,6 +63592,8 @@
    created. (This can never happen with <span>replacement
    enabled</span>.)</p></li>
 
+   <li><p>Release the <span>storage mutex</span>.</p></li>
+
    <li>
 
     <p>If appropriate, update the <span>current entry</span> in the
@@ -63698,6 +63709,8 @@
    title="event-hashchange">hashchange</code> at the <span>browsing
    context</span>'s <code>Window</code> object.</p></li>
 
+   <li><p>Release the <span>storage mutex</span> again.</p></li>
+
    <li><p>The <span>current entry</span> is now the <i>specified
    entry</i>.</p></li>
 
@@ -63728,6 +63741,8 @@
    <li><p>Dispatch <var title="">event</var> at the
    <code>Document</code>'s <code>Window</code> object.</p></li>
 
+   <li><p>Release the <span>storage mutex</span>.</p></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.</p></li>
@@ -63776,6 +63791,8 @@
    title="event-unload">unload</code> at the <code>Document</code>'s
    <code>Window</code> object.</p></li>
 
+   <li><p>Release the <span>storage mutex</span>.</p></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.</p></li>
@@ -63842,9 +63859,9 @@
   title="fetch">fetching algorithm</span> in the context of a
   <code>Document</code> in a <span>browsing context</span>, then, if
   that <code>Document</code> is an <span>active document</span>, the
-  user agent must <span>fire a simple event</span> named <code
-  title="event-abort">abort</code> at that <code>Document</code>'s
-  <code>Window</code> object.</p>
+  user agent must <span>queue a task</span> to <span>fire a simple
+  event</span> named <code title="event-abort">abort</code> at that
+  <code>Document</code>'s <code>Window</code> object.</p>
 
   <!-- I'd love to make this more precise, anyone have any suggestions
   on what it should say? -->
@@ -67720,8 +67737,8 @@
 
   </ol>
 
-  <p>User agents must run the <span>focusing steps</span> for an
-  element whenever the user moves the focus to a
+  <p>User agents must synchronously run the <span>focusing
+  steps</span> for an element whenever the user moves the focus to a
   <span>focusable</span> element.</p>
 
   <p>The <dfn>unfocusing steps</dfn> are as follows:</p>
@@ -67750,10 +67767,10 @@
   <p>When an element that is focused stops being a
   <span>focusable</span> element, or stops being focused without
   another element being explicitly focused in its stead, the user
-  agent should run the <span>focusing steps</span> for <span>the body
-  element</span>, if there is one; if there is not, then the user
-  agent should run the <span>unfocusing steps</span> for the affected
-  element only.</p>
+  agent should synchronously run the <span>focusing steps</span> for
+  <span>the body element</span>, if there is one; if there is not,
+  then the user agent should synchronously run the <span>unfocusing
+  steps</span> 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
@@ -90976,12 +90993,17 @@
 
   <p>When content loads in a <code>frame</code>, after any <code
   title="event-load">load</code> events are fired within the content
-  itself, the user agent must <span>fire a simple event</span> named
-  <code title="event-load">load</code> at the <code>frame</code>
-  element. When content fails to load (e.g. due to a network error),
-  then the user agent must <span>fire a simple event</span> named
-  <code title="event-error">error</code> at the element instead.</p>
+  itself, the user agent must <span>queue a task</span> to <span>fire
+  a simple event</span> named <code title="event-load">load</code> at
+  the <code>frame</code> element. When content fails to load (e.g. due
+  to a network error), then the user agent must <span>queue a
+  task</span> to <span>fire a simple event</span> named <code
+  title="event-error">error</code> at the element instead.</p>
 
+  <p>The <span>task source</span> for the <span
+  title="concept-task">tasks</span> above is the <span>DOM
+  manipulation task source</span>.</p>
+
   <p>When there is an <span>active parser</span> in the
   <code>frame</code>, and when anything in the <code>frame</code> is
   <span title="delay the load event">delaying the load event</span> of




More information about the Commit-Watchers mailing list