hixie: Make popstate and hashchange synchronous. (whatwg r3677)

hixie: Make popstate and hashchange synchronous. (whatwg r3677)

http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.2855&r2=1.2856&f=h
http://html5.org/tools/web-apps-tracker?from=3676&to=3677

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.2855
retrieving revision 1.2856
diff -u -d -r1.2855 -r1.2856
--- Overview.html 26 Aug 2009 02:10:00 -0000 1.2855
+++ Overview.html 26 Aug 2009 03:18:57 -0000 1.2856
@@ -15328,7 +15328,7 @@
  <legend>The castle through the ages: 1423, 1858, and 1999 respectively.</legend>
 &lt;/figure&gt;</pre>
 
-  </div><h4 id="the-img-element"><span class="secno">4.8.2 </span>The <dfn><code>img</code></dfn> element</h4><p class="XXX annotation"><b>Status: </b><i>Last call for comments. </i><span><a href="http://www.w3.org/html/wg/tracker/issues/66">ISSUE-66</a> (image-analysis) and <a href="http://www.w3.org/html/wg/tracker/issues/30">ISSUE-30</a> (longdesc) block progress to Last Call</span><dl class="element"><dt>Categories</dt>
+  </div><h4 id="the-img-element"><span class="secno">4.8.2 </span>The <dfn><code>img</code></dfn> element</h4><p class="XXX annotation"><b>Status: </b><i>Last call for comments. </i><span><a href="http://www.w3.org/html/wg/tracker/issues/30">ISSUE-30</a> (longdesc) and <a href="http://www.w3.org/html/wg/tracker/issues/66">ISSUE-66</a> (image-analysis) block progress to Last Call</span><dl class="element"><dt>Categories</dt>
    <dd><a href="#flow-content">Flow content</a>.</dd>
    <dd><a href="#phrasing-content">Phrasing content</a>.</dd>
    <dd><a href="#embedded-content">Embedded content</a>.</dd>
@@ -47049,12 +47049,15 @@
    URL</a> that was found earlier in this algorithm as the
    <a href="#url">URL</a> of the entry.</li>
 
-   <li><p>If the third argument is present, set <a href="#the-document-s-current-address">the document's
-   current address</a> to the <a href="#absolute-url">absolute URL</a> that was
-   found earlier in this algorithm.</p>
+   <li>
 
-    <p class="note">Since this is not a <em><a href="#navigate" title="navigate">navigation</a></em> of the <a href="#browsing-context">browsing
-    context</a>, it does not cause a <code title="event-hashchange">hashchange</code> event to be fired.</p>
+    <p>If the third argument is present, set <a href="#the-document-s-current-address">the document's
+    current address</a> to the <a href="#absolute-url">absolute URL</a> that was
+    found earlier in this algorithm.</p>
+
+    <p class="note">Since this is neither a <a href="#navigate" title="navigate">navigation</a> of the <a href="#browsing-context">browsing
+    context</a> nor a <a href="#traverse-the-history" title="traverse the history">history
+    traversal</a>, it does not cause a <code title="event-hashchange">hashchange</code> event to be fired.</p>
 
    </li>
 
@@ -47105,14 +47108,12 @@
     <dl class="switch"><dt>If the <a href="#current-document-readiness">current document readiness</a> is set to the
      string "complete"</dt>
 
-     <dd><p><a href="#queue-a-task">Queue a task</a> to fire a <dfn id="event-popstate" title="event-popstate"><code>popstate</code></dfn> event in no
+     <dd><p>Synchronously fire a <dfn id="event-popstate" title="event-popstate"><code>popstate</code></dfn> event in no
      namespace on the <code><a href="#window">Window</a></code> object of the
      <code>Document</code>, using the <code><a href="#popstateevent">PopStateEvent</a></code>
      interface, with the <code title="dom-PopStateEvent-state"><a href="#dom-popstateevent-state">state</a></code> attribute set to the
      value of <var title="">state</var>. This event must bubble but
-     not be cancelable and has no default action. The <a href="#task-source">task
-     source</a> for this task is the <a href="#dom-manipulation-task-source">DOM manipulation task
-     source</a>.</dd>
+     not be cancelable and has no default action.</dd>
 
      <dt>Otherwise</dt>
 
@@ -47754,11 +47755,12 @@
        object representing the new resource and its
        <code>Document</code> object and related state.</li>
 
-       <li><p><a href="#traverse-the-history">Traverse the history</a> to the new entry.</li>
+       <li><p><a href="#traverse-the-history">Traverse the history</a> to the new entry. If
+       the navigation was initiated with <a href="#replacement-enabled">replacement
+       enabled</a>, then the traversal must itself be initiated
+       with <a href="#replacement-enabled">replacement enabled</a>.</p>
 
-       <li><p>If the navigation was initiated with <dfn id="replacement-enabled">replacement
-       enabled</dfn>, remove the entry immediately before the new
-       <a href="#current-entry">current entry</a> in the session history.</li>
+       </li>
 
       </ol></dd>
 
@@ -48093,8 +48095,8 @@
   <h4 id="history-traversal"><span class="secno">6.11.9 </span>History traversal</h4><p class="XXX annotation"><b>Status: </b><i>First draft</i></p>
 
   <p>When a user agent is required to <dfn id="traverse-the-history">traverse the history</dfn>
-  to a <i>specified entry</i>, the user agent must act as
-  follows:</p>
+  to a <i>specified entry</i>, optionally with <a href="#replacement-enabled">replacement
+  enabled</a>, the user agent must act as follows:</p>
 
   <ol><li><p>If there is no longer a <code>Document</code> object for the
    entry in question, the user agent must <a href="#navigate">navigate</a> the
@@ -48105,7 +48107,8 @@
    <em>is</em> a <code>Document</code> object and so this step gets
    skipped. The navigation must be done using the same <a href="#source-browsing-context">source
    browsing context</a> as was used the first time this entry was
-   created.</li>
+   created. (This can never happen with <a href="#replacement-enabled">replacement
+   enabled</a>.)</li>
 
    <li><p>If appropriate, update the <a href="#current-entry">current entry</a> in the
    <a href="#browsing-context">browsing context</a>'s <code>Document</code> object's
@@ -48163,21 +48166,24 @@
    <li><p>Set <a href="#the-document-s-current-address">the document's current address</a> to the URL
    of the <i>specified entry</i>.</li>
 
+   <li><p>If the <i>specified entry</i> has a URL that differs from
+   the <a href="#current-entry">current entry</a>'s only by its fragment identifier,
+   and the two share the same <code>Document</code> object, then let
+   <var title="">hash changed</var> be true. Otherwise, let <var title="">hash changed</var> be false.</li>
+
+   <li><p>If the traversal was initiated with <dfn id="replacement-enabled">replacement
+   enabled</dfn>, remove the entry immediately before the
+   <span>specified entry</span> in the session history.</p>
+
    <li><p>If the <i>specified entry</i> is a state object or the
    first entry for a <code>Document</code>, the user agent must <a href="#activating-state-object-entries" title="activate the state object">activate that
    entry</a>.</li>
 
-   <li><p>If the <i>specified entry</i> has a URL that differs from
-   the <a href="#current-entry">current entry</a>'s only by its fragment identifier,
-   and the two share the same <code>Document</code> object, then
-   first, <!--if the <code>Document</code>'s <span>current document
-   readiness</span> is the string "complete", then--> <a href="#queue-a-task">queue a
-   task</a> to <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
+   <li><p>If <var title="">hash changed</var> is true, then first,
+   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; and second, if the new
    URL has a fragment identifier, <a href="#scroll-to-the-fragment-identifier">scroll to the fragment
-   identifier</a>. The <a href="#task-source">task source</a> for the task that
-   fires the <code title="event-hashchange">hashchange</code> event is
-   the <a href="#dom-manipulation-task-source">DOM manipulation task source</a>.</li>
+   identifier</a>.</li>
 
    <li><p>User agents may also update other aspects of the document
    view when the location changes in this way, for instance the scroll
@@ -48381,7 +48387,7 @@
   <a href="#source-browsing-context">source browsing context</a>.</p>
 
 
-  <h5 id="hyperlink-auditing"><span class="secno">6.12.2.1 </span><dfn>Hyperlink auditing</dfn></h5><p class="XXX annotation"><b>Status: </b><i>Controversial Working Draft. </i><span><a href="http://www.w3.org/html/wg/tracker/issues/63">ISSUE-63</a> (origin-req-scope), <a href="http://www.w3.org/html/wg/tracker/issues/1">ISSUE-1</a> (PINGPOST) and <a href="http://www.w3.org/html/wg/tracker/issues/2">ISSUE-2</a> (PINGUI) block progress to Last Call</span></p>
+  <h5 id="hyperlink-auditing"><span class="secno">6.12.2.1 </span><dfn>Hyperlink auditing</dfn></h5><p class="XXX annotation"><b>Status: </b><i>Controversial Working Draft. </i><span><a href="http://www.w3.org/html/wg/tracker/issues/2">ISSUE-2</a> (PINGUI), <a href="http://www.w3.org/html/wg/tracker/issues/63">ISSUE-63</a> (origin-req-scope) and <a href="http://www.w3.org/html/wg/tracker/issues/1">ISSUE-1</a> (PINGPOST) block progress to Last Call</span></p>
 
   <p>If an <code><a href="#the-a-element">a</a></code> or <code><a href="#the-area-element">area</a></code> hyperlink element has a
   <code title="attr-hyperlink-ping"><a href="#ping">ping</a></code> attribute, and the
@@ -53434,7 +53440,7 @@
   the ranges U+0041 .. U+005A (LATIN CAPITAL LETTER A to LATIN CAPITAL
   LETTER Z) and U+0061 .. U+007A (LATIN SMALL LETTER A to LATIN SMALL
   LETTER Z). For convenience, in this section this is just referred to
-  as "case-insensitive".<h4 id="the-doctype"><span class="secno">9.1.1 </span>The DOCTYPE</h4><p class="XXX annotation"><span><a href="http://www.w3.org/html/wg/tracker/issues/4">ISSUE-4</a> (html-versioning) and <a href="http://www.w3.org/html/wg/tracker/issues/54">ISSUE-54</a> (doctype-legacy-compat) block progress to Last Call</span><p>A <dfn id="syntax-doctype" title="syntax-doctype">DOCTYPE</dfn> is a mostly useless,
+  as "case-insensitive".<h4 id="the-doctype"><span class="secno">9.1.1 </span>The DOCTYPE</h4><p class="XXX annotation"><span><a href="http://www.w3.org/html/wg/tracker/issues/54">ISSUE-54</a> (doctype-legacy-compat) and <a href="http://www.w3.org/html/wg/tracker/issues/4">ISSUE-4</a> (html-versioning) block progress to Last Call</span><p>A <dfn id="syntax-doctype" title="syntax-doctype">DOCTYPE</dfn> is a mostly useless,
   but required, header.<p class="note">DOCTYPEs are required for legacy reasons. When
   omitted, browsers tend to use a different rendering mode that is
   incompatible with some specifications. Including the DOCTYPE in a

Received on Wednesday, 26 August 2009 03:20:14 UTC