[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