hixie: Make navigating to change a fragid while the page is parsing work. (whatwg r3826)

hixie: Make navigating to change a fragid while the page is parsing
work. (whatwg r3826)

http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.2994&r2=1.2995&f=h
http://html5.org/tools/web-apps-tracker?from=3825&to=3826

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.2994
retrieving revision 1.2995
diff -u -d -r1.2994 -r1.2995
--- Overview.html 13 Sep 2009 11:18:24 -0000 1.2994
+++ Overview.html 13 Sep 2009 21:28:56 -0000 1.2995
@@ -48488,8 +48488,16 @@
    that was going to be <a href="#navigate" title="navigate">navigated</a>
    instead.</li>
 
-   <li><p>Cancel any preexisting attempt to navigate the
-   <a href="#browsing-context">browsing context</a>.</li>
+   <li><p>If there is a preexisting attempt to navigate the
+   <a href="#browsing-context">browsing context</a>, and either that attempt has not yet
+   <a href="#concept-navigate-mature" title="concept-navigate-mature">matured</a> (i.e. it has
+   not passed the point of making its <code>Document</code> the
+   <a href="#active-document">active document</a>), or that navigation's resource is not
+   to be fetched using HTTP GET <a href="#concept-http-equivalent-get" title="concept-http-equivalent-get">or equivalent</a>, or its
+   resource's <a href="#absolute-url">absolute URL</a> differs from this attempt's by
+   more than the presence, absence, or value of the <a href="#url-fragment" title="url-fragment">&lt;fragment&gt;</a> component, then cancel
+   that preexisting attempt to navigate the <a href="#browsing-context">browsing
+   context</a>.</li>
 
    <li id="navigate-fragid-step"><p><i>Fragment identifiers</i>: If
    the <a href="#absolute-url">absolute URL</a> of the new resource is the same as
@@ -48503,6 +48511,9 @@
    component (even if it is empty), then <a href="#scroll-to-fragid" title="navigate-fragid">navigate to that fragment identifier</a>
    and abort these steps.</li>
 
+   <li><p>Cancel <em>any</em> preexisting attempt to navigate the
+   <a href="#browsing-context">browsing context</a>.</li>
+
    <li>
 
     <p>If the new resource is to be handled by displaying some sort of
@@ -48810,27 +48821,25 @@
 
     </dl></li>
 
-   <li><p>If <a href="#the-document-s-address">the document's address</a> has a fragment
-   identifier, then run these substeps:</p>
-
-    <ol><li><p>Wait for a user-agent-defined amount of time, as desired
-     by the user agent implementor. (This is intended to allow the
-     user agent to optimize the user experience in the face of
-     performance concerns.)</li>
+   <li><p>The <a href="#navigate" title="navigate">navigation algorithm</a> has
+   now <dfn id="concept-navigate-mature" title="concept-navigate-mature">matured</dfn>.</li>
 
-     <li><p>If the <code>Document</code> object has no parser, or its
-     parser has <a href="#stop-parsing" title="stop parsing">stopped parsing</a>, or
-     the user agent has reason to believe the user is no longer
-     interested in scrolling to the fragment identifier, then abort
-     these substeps.</li>
+   <li><p><i>Fragment identifier loop</i>: Wait for a
+   user-agent-defined amount of time, as desired by the user agent
+   implementor. (This is intended to allow the user agent to optimize
+   the user experience in the face of performance concerns.)</li>
 
-     <li><p><a href="#scroll-to-the-fragment-identifier">Scroll to the fragment identifier</a> given in
-     <a href="#the-document-s-current-address">the document's current address</a>. If this fails to
-     find <a href="#the-indicated-part-of-the-document" title="the indicated part of the document">an
-     indicated part of the document</a>, then return to the first
-     step of these substeps.</li>
+   <li><p>If the <code>Document</code> object has no parser, or its
+   parser has <a href="#stop-parsing" title="stop parsing">stopped parsing</a>, or
+   the user agent has reason to believe the user is no longer
+   interested in scrolling to the fragment identifier, then abort
+   these steps.</li>
 
-    </ol></li>
+   <li><p><a href="#scroll-to-the-fragment-identifier">Scroll to the fragment identifier</a> given in
+   <a href="#the-document-s-current-address">the document's current address</a>. If this fails to find
+   <a href="#the-indicated-part-of-the-document" title="the indicated part of the document">an indicated part
+   of the document</a>, then return to the first step of these
+   substeps.</li>
 
   </ol><p>The <a href="#task-source">task source</a> for this <a href="#concept-task" title="concept-task">task</a> is the <a href="#networking-task-source">networking task
   source</a>.</p>
@@ -49082,7 +49091,12 @@
    will <a href="#scroll-to-the-fragment-identifier">scroll to the fragment identifier</a> given in
    <a href="#the-document-s-current-address">the document's current address</a>.</li>
 
-  </ol><hr><p>When the user agent is required to <dfn id="scroll-to-the-fragment-identifier">scroll to the fragment
+  </ol><p class="note">If the scrolling fails because the relevant ID has
+  not yet been parsed, then the original <a href="#navigate" title="navigate">navigation</a> algorithm will take care of the
+  scrolling instead, as the last few steps of its <a href="#update-the-session-history-with-the-new-page">update the
+  session history with the new page</a> algorithm.</p>
+
+  <hr><p>When the user agent is required to <dfn id="scroll-to-the-fragment-identifier">scroll to the fragment
   identifier</dfn>, it must change the scrolling position of the
   document, or perform some other action, such that <a href="#the-indicated-part-of-the-document">the
   indicated part of the document</a> is brought to the user's
@@ -62643,7 +62657,7 @@
      <tr> <td> <code title="">angrtvb;</code> </td> <td> U+022BE </td> </tr>
      <tr> <td> <code title="">angrtvbd;</code> </td> <td> U+0299D </td> </tr>
      <tr> <td> <code title="">angsph;</code> </td> <td> U+02222 </td> </tr>
-     <tr> <td> <code title="">angst;</code> </td> <td> U+0212B </td> </tr>
+     <tr> <td> <code title="">angst;</code> </td> <td> U+000C5 </td> </tr>
      <tr> <td> <code title="">angzarr;</code> </td> <td> U+0237C </td> </tr>
      <tr> <td> <code title="">aogon;</code> </td> <td> U+00105 </td> </tr>
      <tr> <td> <code title="">aopf;</code> </td> <td> U+1D552 </td> </tr>
@@ -63540,7 +63554,7 @@
      <tr> <td> <code title="">ograve</code> </td> <td> U+000F2 </td> </tr> <!-- (invalid entity with missing semicolon for legacy support only) -->
      <tr> <td> <code title="">ogt;</code> </td> <td> U+029C1 </td> </tr>
      <tr> <td> <code title="">ohbar;</code> </td> <td> U+029B5 </td> </tr>
-     <tr> <td> <code title="">ohm;</code> </td> <td> U+02126 </td> </tr>
+     <tr> <td> <code title="">ohm;</code> </td> <td> U+003A9 </td> </tr>
      <tr> <td> <code title="">oint;</code> </td> <td> U+0222E </td> </tr>
      <tr> <td> <code title="">olarr;</code> </td> <td> U+021BA </td> </tr>
      <tr> <td> <code title="">olcir;</code> </td> <td> U+029BE </td> </tr>

Received on Sunday, 13 September 2009 21:30:04 UTC