- 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