[html5] r1597 - /

whatwg at whatwg.org whatwg at whatwg.org
Mon May 12 18:17:16 PDT 2008


Author: ianh
Date: 2008-05-12 18:17:16 -0700 (Mon, 12 May 2008)
New Revision: 1597

Modified:
   index
   source
Log:
[e] (0) Move the history traversal algorithm out of the History object section

Modified: index
===================================================================
--- index	2008-05-13 01:09:45 UTC (rev 1596)
+++ index	2008-05-13 01:17:16 UTC (rev 1597)
@@ -1170,29 +1170,35 @@
         </span>Implementation notes for session history</a>
       </ul>
 
-     <li><a href="#navigating"><span class=secno>4.9 </span>Navigating across
-      documents</a>
+     <li><a href="#browsing0"><span class=secno>4.9 </span>Browsing the
+      Web</a>
       <ul class=toc>
-       <li><a href="#read-html"><span class=secno>4.9.1 </span>Page load
+       <li><a href="#navigating"><span class=secno>4.9.1 </span>Navigating
+        across documents</a>
+
+       <li><a href="#read-html"><span class=secno>4.9.2 </span>Page load
         processing model for HTML files</a>
 
-       <li><a href="#read-xml"><span class=secno>4.9.2 </span>Page load
+       <li><a href="#read-xml"><span class=secno>4.9.3 </span>Page load
         processing model for XML files</a>
 
-       <li><a href="#read-text"><span class=secno>4.9.3 </span>Page load
+       <li><a href="#read-text"><span class=secno>4.9.4 </span>Page load
         processing model for text files</a>
 
-       <li><a href="#read-image"><span class=secno>4.9.4 </span>Page load
+       <li><a href="#read-image"><span class=secno>4.9.5 </span>Page load
         processing model for images</a>
 
-       <li><a href="#read-plugin"><span class=secno>4.9.5 </span>Page load
+       <li><a href="#read-plugin"><span class=secno>4.9.6 </span>Page load
         processing model for content that uses plugins</a>
 
-       <li><a href="#read-ua-inline"><span class=secno>4.9.6 </span>Page load
+       <li><a href="#read-ua-inline"><span class=secno>4.9.7 </span>Page load
         processing model for inline content that doesn't have a DOM</a>
 
-       <li><a href="#scroll-to-fragid"><span class=secno>4.9.7
+       <li><a href="#scroll-to-fragid"><span class=secno>4.9.8
         </span>Navigating to a fragment identifier</a>
+
+       <li><a href="#history0"><span class=secno>4.9.9 </span>History
+        traversal</a>
       </ul>
 
      <li><a href="#content-type-sniffing"><span class=secno>4.10
@@ -2715,7 +2721,7 @@
   <p>The <dfn id=referrer
    title=dom-document-referrer><code>referrer</code></dfn> attribute must
    return either the URI of the page which <a href="#navigate"
-   title=navigate>navigated</a> the <a href="#browsing0">browsing context</a>
+   title=navigate>navigated</a> the <a href="#browsing1">browsing context</a>
    to the current document (if any), or the empty string if there is no such
    originating page, or if the UA has been configured not to report referrers
    in this case, or if the navigation was initiated for a <a
@@ -3941,10 +3947,10 @@
     <p>If <var title="">replace</var> is false, then:
 
     <ol>
-     <li>Remove all the entries in the <a href="#browsing0">browsing
+     <li>Remove all the entries in the <a href="#browsing1">browsing
       context</a>'s <a href="#session">session history</a> after the <a
       href="#current1">current entry</a> in its <code>Document</code>'s
-      <code><a href="#history1">History</a></code> object
+      <code><a href="#history2">History</a></code> object
 
      <li>Remove any earlier entries that share the same <code>Document</code>
 
@@ -7162,7 +7168,7 @@
 
   <p>The <dfn id=hasfocus
    title=dom-document-hasFocus><code>hasFocus</code></dfn> attribute must
-   return true if the document, one of its nested <a href="#browsing0"
+   return true if the document, one of its nested <a href="#browsing1"
    title="browsing context">browsing contexts</a>, or any element in the
    document or its browsing contexts currently has the system focus.
 
@@ -7535,7 +7541,7 @@
 
   <p>The <code><a href="#base">base</a></code> element allows authors to
    specify the document's base URI for the purposes of resolving relative
-   URIs, and the name of the default <a href="#browsing0">browsing
+   URIs, and the name of the default <a href="#browsing1">browsing
    context</a> for the purposes of <a href="#following0">following
    hyperlinks</a>.
 
@@ -8410,7 +8416,7 @@
 
        <li>
         <p>Provide the user with an interface that, when selected,
-         <span>navigates</span> a <a href="#browsing0">browsing context</a>
+         <span>navigates</span> a <a href="#browsing1">browsing context</a>
          to <var title="">url</var>.
 
        <li>
@@ -14138,11 +14144,11 @@
   </dl>
 
   <p>The <code><a href="#iframe">iframe</a></code> element introduces a new
-   nested <a href="#browsing0">browsing context</a>.
+   nested <a href="#browsing1">browsing context</a>.
 
   <p>The <dfn id=src1 title=attr-iframe-src><code>src</code></dfn> attribute,
    if present, must be a URI (or IRI) to a page that the nested <a
-   href="#browsing0">browsing context</a> is to contain. When the browsing
+   href="#browsing1">browsing context</a> is to contain. When the browsing
    context is created, if the attribute is present, the user agent must <a
    href="#navigate">navigate</a> this browsing context to the given URI, with
    <a href="#replacement">replacement enabled</a>. If the user <a
@@ -14153,7 +14159,7 @@
    href="#src1">src</a></code> attribute will not change.
 
   <p>Whenever the <code title=attr-iframe-src><a href="#src1">src</a></code>
-   attribute is set, the nested <a href="#browsing0">browsing context</a>
+   attribute is set, the nested <a href="#browsing1">browsing context</a>
    must be <a href="#navigate" title=navigate>navigated</a> to the given URI.
 
   <p>If the <code title=attr-iframe-src><a href="#src1">src</a></code>
@@ -14163,15 +14169,15 @@
   <p>The <dfn id=name1 title=attr-iframe-name><code>name</code></dfn>
    attribute, if present, must be a <a href="#valid8">valid browsing context
    name</a>. When the browsing context is created, if the attribute is
-   present, the <a href="#browsing1">browsing context name</a> must be set to
-   the value of this attribute; otherwise, the <a href="#browsing1">browsing
+   present, the <a href="#browsing2">browsing context name</a> must be set to
+   the value of this attribute; otherwise, the <a href="#browsing2">browsing
    context name</a> must be set to the empty string.
 
   <p>Whenever the <code title=attr-iframe-name><a
    href="#name1">name</a></code> attribute is set, the nested <a
-   href="#browsing0">browsing context</a>'s <a href="#browsing1"
+   href="#browsing1">browsing context</a>'s <a href="#browsing2"
    title="browsing context name">name</a> must be changed to the new value.
-   If the attribute is removed, the <a href="#browsing1">browsing context
+   If the attribute is removed, the <a href="#browsing2">browsing context
    name</a> must be set to the empty string.
 
   <p>When content loads in an <code><a href="#iframe">iframe</a></code>,
@@ -14188,19 +14194,19 @@
    href="#iframe">iframe</a></code> that is <a href="#delays" title="delay
    the load event">delaying the <code title=event-load>load</code> event</a>
    in the <code><a href="#iframe">iframe</a></code>'s <a
-   href="#browsing0">browsing context</a>, the <code><a
+   href="#browsing1">browsing context</a>, the <code><a
    href="#iframe">iframe</a></code> must <a href="#delays">delay the <code
    title=event-load>load</code> event</a>.
 
   <p class=note>If, during the handling of the <code title=event-load><a
-   href="#load0">load</a></code> event, the <a href="#browsing0">browsing
+   href="#load0">load</a></code> event, the <a href="#browsing1">browsing
    context</a> in the <code><a href="#iframe">iframe</a></code> is again <a
    href="#navigate" title=navigate>navigated</a>, that will further <a
    href="#delays">delay the <code title=event-load>load</code> event</a>.
 
   <p>An <code><a href="#iframe">iframe</a></code> element never has <a
    href="#fallback">fallback content</a>, as it will always create a nested
-   <a href="#browsing0">browsing context</a>, regardless of whether the
+   <a href="#browsing1">browsing context</a>, regardless of whether the
    specified initial contents are successfully used.
 
   <p>Descendants of <code><a href="#iframe">iframe</a></code> elements
@@ -14412,7 +14418,7 @@
 
   <p>The <code><a href="#object">object</a></code> element can represent an
    external resource, which, depending on the type of the resource, will
-   either be treated as an image, as a nested <a href="#browsing0">browsing
+   either be treated as an image, as a nested <a href="#browsing1">browsing
    context</a>, or as an external resource to be processed by a third-party
    software package.
 
@@ -14558,9 +14564,9 @@
 
        <dd>
         <p>The <code><a href="#object">object</a></code> element must be
-         associated with a nested <a href="#browsing0">browsing context</a>,
+         associated with a nested <a href="#browsing1">browsing context</a>,
          if it does not already have one. The element's nested <a
-         href="#browsing0">browsing context</a> must then be <a
+         href="#browsing1">browsing context</a> must then be <a
          href="#navigate" title=navigate>navigated</a> to the given resource,
          with <a href="#replacement">replacement enabled</a>. (The <code
          title=attr-object-data><a href="#data">data</a></code> attribute of
@@ -14570,8 +14576,8 @@
 
         <p>If the <code title=attr-object-name><a
          href="#name2">name</a></code> attribute is present, the <a
-         href="#browsing1">browsing context name</a> must be set to the value
-         of this attribute; otherwise, the <a href="#browsing1">browsing
+         href="#browsing2">browsing context name</a> must be set to the value
+         of this attribute; otherwise, the <a href="#browsing2">browsing
          context name</a> must be set to the empty string.</p>
 
         <p class=big-issue>navigation might end up treating it as something
@@ -14587,7 +14593,7 @@
 
         <p>The <code><a href="#object">object</a></code> element represents
          the specified image. The image is not a nested <a
-         href="#browsing0">browsing context</a>.</p>
+         href="#browsing1">browsing context</a>.</p>
 
         <p>If the image cannot be rendered, e.g. because it is malformed or
          in an unsupported format, jump to the last step in the overall set
@@ -14637,7 +14643,7 @@
    handler supports a scriptable interface, the <code><a
    href="#htmlobjectelement">HTMLObjectElement</a></code> object representing
    the element should expose that interface. The handler is not a nested <a
-   href="#browsing0">browsing context</a>.</p>
+   href="#browsing1">browsing context</a>.</p>
   <!-- duplicates what's in <embed> section above -->
 
   <p class=note>The <code><a href="#object">object</a></code> element can, in
@@ -14659,11 +14665,11 @@
   <p>Whenever the <code title=attr-object-name><a
    href="#name2">name</a></code> attribute is set, if the <code><a
    href="#object">object</a></code> element has a nested <a
-   href="#browsing0">browsing context</a>, its <a href="#browsing1"
+   href="#browsing1">browsing context</a>, its <a href="#browsing2"
    title="browsing context name">name</a> must be changed to the new value.
    If the attribute is removed, if the <code><a
    href="#object">object</a></code> element has a <a
-   href="#browsing0">browsing context</a>, the <a href="#browsing1">browsing
+   href="#browsing1">browsing context</a>, the <a href="#browsing2">browsing
    context name</a> must be set to the empty string.
 
   <p>The <code title=attr-hyperlink-usemap><a
@@ -22867,7 +22873,7 @@
    the <code>Document</code> does not have <code
    title=dom-document-designMode><a href="#designMode">designMode</a></code>
    enabled, and the <code>Document</code> is the <a href="#active">active
-   document</a> in its <a href="#browsing0">browsing context</a>, the user
+   document</a> in its <a href="#browsing1">browsing context</a>, the user
    agent must execute the script:
 
   <p>If the script is from an external file, then that file must be used as
@@ -22886,7 +22892,7 @@
    href="#scriptingLanguages">scripting languages</a> section below).
 
   <p>Scripts must be executed in the scope of the <a
-   href="#browsing0">browsing context</a> of the element's
+   href="#browsing1">browsing context</a> of the element's
    <code>Document</code>.
 
   <p class=note>The element's attributes' values might have changed between
@@ -26671,7 +26677,7 @@
    href="#template">template</a></code> attribute set, the user agent must
    fetch the specified file<!-- XXX or queue it up to be fetched,
   or something -->
-   and parse it (without a <a href="#browsing0">browsing context</a>, and
+   and parse it (without a <a href="#browsing1">browsing context</a>, and
    with <span>scripting disabled</span><!-- XXX
   xref -->) to obtain a DOM.
    If the URI is the same as the URI of the current
@@ -26797,7 +26803,7 @@
    title=attr-ref><a href="#ref">ref</a></code> attribute set, the user agent
    must fetch the specified file<!-- XXX or queue it up to be fetched, or
   something -->
-   and parse it (without a <a href="#browsing0">browsing context</a>, and
+   and parse it (without a <a href="#browsing1">browsing context</a>, and
    with <span>scripting disabled</span><!-- XXX xref -->) to obtain a DOM. If
    the URI is the same as the URI of the current document<!--
   XXX xref -->,
@@ -27375,27 +27381,27 @@
 
   <h3 id=windows><span class=secno>4.1 </span>Browsing contexts</h3>
 
-  <p>A <dfn id=browsing0>browsing context</dfn> is a collection of one or
+  <p>A <dfn id=browsing1>browsing context</dfn> is a collection of one or
    more <code>Document</code> objects, and one or more <a href="#view"
    title=view>views</a>.
 
   <p>At any one time, one of the <code>Document</code>s in a <a
-   href="#browsing0">browsing context</a> is the <dfn id=active>active
+   href="#browsing1">browsing context</a> is the <dfn id=active>active
    document</dfn>. The collection of <code>Document</code>s is the <a
-   href="#browsing0">browsing context</a>'s <a href="#session">session
+   href="#browsing1">browsing context</a>'s <a href="#session">session
    history</a>.
 
   <p>A <dfn id=view>view</dfn> is a user agent interface tied to a particular
    media used for the presentation of <code>Document</code> objects in some
    media. A view may be interactive. Each view is represented by an
    <code>AbstractView</code> object. Each view belongs to a <a
-   href="#browsing0">browsing context</a>. <a
+   href="#browsing1">browsing context</a>. <a
    href="#refsDOM2VIEWS">[DOM2VIEWS]</a>
 
   <p class=note>The <code title="">document</code> attribute of an
    <code>AbstractView</code> object representing a <a href="#view">view</a>
    gives the <code>Document</code> object of the view's <a
-   href="#browsing0">browsing context</a>'s <a href="#active">active
+   href="#browsing1">browsing context</a>'s <a href="#active">active
    document</a>. <a href="#refsDOM2VIEWS">[DOM2VIEWS]</a>
 
   <p class=note>Events that use the <code>UIEvent</code> interface are
@@ -27405,7 +27411,7 @@
    href="#refsDOM3EVENTS">[DOM3EVENTS]</a>
 
   <p class=note>A typical Web browser has one obvious <a
-   href="#view">view</a> per <a href="#browsing0">browsing context</a>: the
+   href="#view">view</a> per <a href="#browsing1">browsing context</a>: the
    browser's window (screen media). If a page is printed, however, a second
    view becomes evident, that of the print media. The two views always share
    the same underlying <code>Document</code>, but they have a different
@@ -27413,7 +27419,7 @@
    browsing context, one with a view in the speech media.
 
   <p class=note>A <code>Document</code> does not necessarily have a <a
-   href="#browsing0">browsing context</a> associated with it. In particular,
+   href="#browsing1">browsing context</a> associated with it. In particular,
    data mining tools are likely to never instantiate browsing contexts.
 
   <p>The main <a href="#view">view</a> through which a user primarily
@@ -27424,7 +27430,7 @@
    attribute on the <code>Document</code> object's <code>DocumentView</code>
    interface. <a href="#refsDOM3VIEWS">[DOM3VIEWS]</a>
 
-  <p>When a <a href="#browsing0">browsing context</a> is first created, it
+  <p>When a <a href="#browsing1">browsing context</a> is first created, it
    must be created with a single <code>Document</code> in its session
    history, whose <span title="the document's address">address</span> is
    <code>about:blank</code><!-- XXX xref -->, which is marked as being an <a
@@ -27432,46 +27438,46 @@
    <code>Document</code> must have a single child <code><a
    href="#html">html</a></code> node, which itself has a single child
    <code><a href="#body0">body</a></code> node. If the <a
-   href="#browsing0">browsing context</a> is created specifically to be
+   href="#browsing1">browsing context</a> is created specifically to be
    immediately navigated, then that initial navigation will have <a
    href="#replacement">replacement enabled</a>.
 
   <p id=about-blank-origin>The <a href="#origin0">origin</a> of the
    <code>about:blank</code> <code>Document</code> is set when the
    <code>Document</code> is created, in a manner dependent on whether the <a
-   href="#browsing0">browsing context</a> created is a <a
+   href="#browsing1">browsing context</a> created is a <a
    href="#nested0">nested browsing context</a>, as follows:
 
   <dl class=switch>
-   <dt>If the new <a href="#browsing0">browsing context</a> is a <a
+   <dt>If the new <a href="#browsing1">browsing context</a> is a <a
     href="#nested0">nested browsing context</a>
 
    <dd>The <a href="#origin0">origin</a> of the <code>about:blank</code>
     <code>Document</code> is the <a href="#origin0">origin</a> of the <a
     href="#active">active document</a> of the new <a
-    href="#browsing0">browsing context</a>'s <a href="#parent">parent
+    href="#browsing1">browsing context</a>'s <a href="#parent">parent
     browsing context</a> at the time of its creation.
 
-   <dt>If the new <a href="#browsing0">browsing context</a> is an <a
+   <dt>If the new <a href="#browsing1">browsing context</a> is an <a
     href="#auxiliary0">auxiliary browsing context</a>
 
    <dd>The <a href="#origin0">origin</a> of the <code>about:blank</code>
     <code>Document</code> is the <a href="#origin0">origin</a> of the <a
     href="#active">active document</a> of the new <a
-    href="#browsing0">browsing context</a>'s <a href="#opener">opener
+    href="#browsing1">browsing context</a>'s <a href="#opener">opener
     browsing context</a> at the time of its creation.
 
    <dt>Otherwise
 
    <dd>The <a href="#origin0">origin</a> of the <code>about:blank</code>
     <code>Document</code> is a globally unique identifier assigned when the
-    new <a href="#browsing0">browsing context</a> is created.
+    new <a href="#browsing1">browsing context</a> is created.
   </dl>
 
   <h4 id=nested><span class=secno>4.1.1 </span>Nested browsing contexts</h4>
 
   <p>Certain elements (for example, <code><a href="#iframe">iframe</a></code>
-   elements) can instantiate further <a href="#browsing0" title="browsing
+   elements) can instantiate further <a href="#browsing1" title="browsing
    context">browsing contexts</a>. These are called <dfn id=nested0
    title="nested browsing context">nested browsing contexts</dfn>. If a
    browsing context <var title="">P</var> has an element in one of its
@@ -27500,7 +27506,7 @@
 
   <p>A <code>Document</code> is said to be <dfn id=fully>fully active</dfn>
    when it is the <a href="#active">active document</a> of its <a
-   href="#browsing0">browsing context</a>, and either its browsing context is
+   href="#browsing1">browsing context</a>, and either its browsing context is
    a <a href="#top-level">top-level browsing context</a>, or the
    <code>Document</code> <a href="#nested1" title="browsing context nested
    through">through which</a> that browsing context is <a href="#nested0"
@@ -27526,7 +27532,7 @@
 
   <p>An <a href="#auxiliary0">auxiliary browsing context</a> has an <dfn
    id=opener>opener browsing context</dfn>, which is the <a
-   href="#browsing0">browsing context</a> from which the <a
+   href="#browsing1">browsing context</a> from which the <a
    href="#auxiliary0">auxiliary browsing context</a> was created, and it has
    a <dfn id=furthest>furthest ancestor browsing context</dfn>, which is the
    <a href="#top-level">top-level browsing context</a> of the <a
@@ -27536,22 +27542,22 @@
   <p>The <dfn id=opener0 title=dom-opener><code>opener</code></dfn> DOM
    attribute on the <code><a href="#window">Window</a></code> object must
    return the <code><a href="#window">Window</a></code> object of the <a
-   href="#browsing0">browsing context</a> from which the current browsing
+   href="#browsing1">browsing context</a> from which the current browsing
    context was created (its <a href="#opener">opener browsing context</a>),
    if there is one and it is still available.
 
   <h4 id=secondary><span class=secno>4.1.3 </span>Secondary browsing contexts</h4>
 
   <p>User agents may support <dfn id=secondary0 title="secondary browsing
-   context">secondary browsing contexts</dfn>, which are <a href="#browsing0"
+   context">secondary browsing contexts</dfn>, which are <a href="#browsing1"
    title="browsing context">browsing contexts</a> that form part of the user
    agent's interface, apart from the main content area.
 
   <h4 id=security2><span class=secno>4.1.4 </span>Security</h4>
 
-  <p>A <a href="#browsing0">browsing context</a> <var title="">A</var> is
+  <p>A <a href="#browsing1">browsing context</a> <var title="">A</var> is
    <dfn id=allowed>allowed to navigate</dfn> a second <a
-   href="#browsing0">browsing context</a> <var title="">B</var> if one of the
+   href="#browsing1">browsing context</a> <var title="">B</var> if one of the
    following conditions is true:
 
   <ul>
@@ -27577,26 +27583,26 @@
 
   <h4 id=threads><span class=secno>4.1.5 </span>Threads</h4>
 
-  <p>Each <a href="#browsing0">browsing context</a> is defined as having a
+  <p>Each <a href="#browsing1">browsing context</a> is defined as having a
    list of zero or more <dfn id=directly>directly reachable browsing
    contexts</dfn>. These are:
 
   <ul>
-   <li>All the <a href="#browsing0">browsing context</a>'s <a href="#child"
+   <li>All the <a href="#browsing1">browsing context</a>'s <a href="#child"
     title="child browsing context">child browsing contexts</a>.
 
-   <li>The <a href="#browsing0">browsing context</a>'s <a
+   <li>The <a href="#browsing1">browsing context</a>'s <a
     href="#parent">parent browsing context</a>.
 
-   <li>All the <a href="#browsing0" title="browsing context">browsing
-    contexts</a> that have the <a href="#browsing0">browsing context</a> as
+   <li>All the <a href="#browsing1" title="browsing context">browsing
+    contexts</a> that have the <a href="#browsing1">browsing context</a> as
     their <a href="#opener">opener browsing context</a>.
 
-   <li>The <a href="#browsing0">browsing context</a>'s <a
+   <li>The <a href="#browsing1">browsing context</a>'s <a
     href="#opener">opener browsing context</a>.
   </ul>
 
-  <p>The transitive closure of all the <a href="#browsing0" title="browsing
+  <p>The transitive closure of all the <a href="#browsing1" title="browsing
    context">browsing contexts</a> that are <a href="#directly">directly
    reachable browsing contexts</a> forms a <dfn id=unit-of>unit of related
    browsing contexts</dfn>.
@@ -27615,7 +27621,7 @@
 
   <h4 id=browsing><span class=secno>4.1.6 </span>Browsing context names</h4>
 
-  <p>Browsing contexts can have a <dfn id=browsing1>browsing context
+  <p>Browsing contexts can have a <dfn id=browsing2>browsing context
    name</dfn>. By default, a browsing context has no name (its name is not
    set).
 
@@ -27631,7 +27637,7 @@
 
   <p><dfn id=the-rules>The rules for chosing a browsing context given a
    browsing context name</dfn> are as follows. The rules assume that they are
-   being applied in the context of a <a href="#browsing0">browsing
+   being applied in the context of a <a href="#browsing1">browsing
    context</a>.
 
   <ol>
@@ -27654,7 +27660,7 @@
 
    <li>
     <p>If the given browsing context name is not <code title="">_blank</code>
-     and there exists a browsing context whose <a href="#browsing1"
+     and there exists a browsing context whose <a href="#browsing2"
      title="browsing context name">name</a> is the same as the given browsing
      context name, and the current browsing context is <a
      href="#allowed">allowed to navigate</a> that browsing context, and the
@@ -27710,7 +27716,7 @@
   readonly attribute <a href="#window">Window</a> <a href="#self" title=dom-self>self</a>;
            attribute DOMString <a href="#name6" title=dom-name>name</a>;
   [PutForwards=href] readonly attribute <a href="#location2">Location</a> <a href="#location0" title=dom-document-location>location</a>;
-  readonly attribute <a href="#history1">History</a> <a href="#history0" title=dom-history>history</a>;
+  readonly attribute <a href="#history2">History</a> <a href="#history1" title=dom-history>history</a>;
   readonly attribute <a href="#undomanager">UndoManager</a> <a href="#undomanager0" title=dom-undoManager>undoManager</a>;
   <a href="#selection1">Selection</a> <a href="#getselection" title=dom-getSelection>getSelection</a>();
 
@@ -27791,7 +27797,7 @@
 
   <p>The <code><a href="#window">Window</a></code> object also provides the
    scope for script execution. Each <code>Document</code> in a <a
-   href="#browsing0">browsing context</a> has an associated <dfn
+   href="#browsing1">browsing context</a> has an associated <dfn
    id=list-of2>list of added properties</dfn> which, when a document is <a
    href="#active" title="active document">active</a>, are available on the
    <code>Document</code>'s <a href="#default3">default view</a> <code><a
@@ -27812,7 +27818,7 @@
    whenever any of the members of a <code><a href="#window">Window</a></code>
    object are accessed by scripts whose <a href="#effective3">effective
    script origin</a> is not the same as the <code><a
-   href="#window">Window</a></code> object's <a href="#browsing0">browsing
+   href="#window">Window</a></code> object's <a href="#browsing1">browsing
    context</a>'s <a href="#active">active document</a>'s <a
    href="#effective3">effective script origin</a>, with the following
    exceptions:
@@ -27896,7 +27902,7 @@
   <p>The <dfn id=open2 title=dom-open><code>open()</code></dfn> method on
    <code><a href="#window">Window</a></code> objects provides a mechanism for
    <a href="#navigate" title=navigate>navigating</a> an existing <a
-   href="#browsing0">browsing context</a> or opening and navigating an <a
+   href="#browsing1">browsing context</a> or opening and navigating an <a
    href="#auxiliary0">auxiliary browsing context</a>.
 
   <p>The method has four arguments, though they are all optional.
@@ -27908,7 +27914,7 @@
    to an absolute URI by <span class=big-issue>...</span>
 
   <p>The second argument, <var title="">target</var>, specifies the <a
-   href="#browsing1" title="browsing context name">name</a> of the browsing
+   href="#browsing2" title="browsing context name">name</a> of the browsing
    context that is to be navigated. It must be a <a href="#valid9">valid
    browsing context name or keyword</a>. If fewer than two arguments are
    provided, then the <var title="">name</var> argument defaults to the value
@@ -27926,10 +27932,10 @@
    provided, <var title="">replace</var> defaults to false.
 
   <p>When the method is invoked, the user agent must first select a <a
-   href="#browsing0">browsing context</a> to navigate by applying <a
+   href="#browsing1">browsing context</a> to navigate by applying <a
    href="#the-rules">the rules for chosing a browsing context given a
    browsing context name</a> using the <var title="">target</var> argument as
-   the name and the <a href="#browsing0">browsing context</a> of the script
+   the name and the <a href="#browsing1">browsing context</a> of the script
    as the context in which the algorithm is executed, unless the user has
    indicated a preference, in which case the browsing context to navigate may
    instead be the one indicated by the user.
@@ -27944,23 +27950,23 @@
    instead target a new tab.
 
   <p>Then, the user agent must <a href="#navigate">navigate</a> the selected
-   <a href="#browsing0">browsing context</a> to the URI given in <var
+   <a href="#browsing1">browsing context</a> to the URI given in <var
    title="">url</var>. If the <var title="">replace</var> is true, then <a
    href="#replacement" title="replacement enabled">replacement must be
    enabled</a>; otherwise, it must not be enabled unless the <a
-   href="#browsing0">browsing context</a> was just created as part of the <a
+   href="#browsing1">browsing context</a> was just created as part of the <a
    href="#the-rules">the rules for chosing a browsing context given a
    browsing context name</a>.
 
   <p>The method must return the <code><a href="#window">Window</a></code>
-   object of the default view of the <a href="#browsing0">browsing
+   object of the default view of the <a href="#browsing1">browsing
    context</a> that was navigated, or null if no browsing context was
    navigated.
 
   <p>The <dfn id=name6 title=dom-name><code>name</code></dfn> attribute of
    the <code><a href="#window">Window</a></code> object must, on getting,
-   return the current name of the <a href="#browsing0">browsing context</a>,
-   and, on setting, set the name of the <a href="#browsing0">browsing
+   return the current name of the <a href="#browsing1">browsing context</a>,
+   and, on setting, set the name of the <a href="#browsing1">browsing
    context</a> to the new value.
 
   <p class=note>The name <a href="#resetBCName">gets reset</a> when the
@@ -28091,17 +28097,17 @@
 
      <dt>If a script is a <a href="#the-javascript" title="javascript
       protocol"><code title="">javascript:</code> URI</a> to which a <a
-      href="#browsing0">browsing context</a> is being <a href="#navigate"
+      href="#browsing1">browsing context</a> is being <a href="#navigate"
       title=navigate>navigated</a>, the URI having been provided by the user
       (e.g. by using a <i>bookmarklet</i>)
 
      <dd>The owner is the <code>Document</code> of the <a
-      href="#browsing0">browsing context</a>'s <a href="#active">active
+      href="#browsing1">browsing context</a>'s <a href="#active">active
       document</a>.
 
      <dt>If a script is a <a href="#the-javascript" title="javascript
       protocol"><code title="">javascript:</code> URI</a> to which a <a
-      href="#browsing0">browsing context</a> is being <a href="#navigate"
+      href="#browsing1">browsing context</a> is being <a href="#navigate"
       title=navigate>navigated</a>, the URI having been declared in markup
 
      <dd>The owner is the <code>Document</code> of the element (e.g. an
@@ -28110,7 +28116,7 @@
 
      <dt>If a script is a <a href="#the-javascript" title="javascript
       protocol"><code title="">javascript:</code> URI</a> to which a <a
-      href="#browsing0">browsing context</a> is being <a href="#navigate"
+      href="#browsing1">browsing context</a> is being <a href="#navigate"
       title=navigate>navigated</a>, the URI having been provided by script
 
      <dd>The owner is the script that provided the URI.
@@ -28361,7 +28367,7 @@
    title=navigate>navigated</a> to a <code>javascript:</code> URI, and the <a
    href="#active">active document</a> of that browsing context has the same
    <a href="#origin0">origin</a> as the script given by that URI, the
-   dereference context must be the <a href="#browsing0">browsing context</a>
+   dereference context must be the <a href="#browsing1">browsing context</a>
    being navigated.
 
   <p>When a browsing context is <a href="#navigate"
@@ -28408,10 +28414,10 @@
    <p>The <code title=attr-iframe-src><a href="#src1">src</a></code>
     attribute of an <code><a href="#iframe">iframe</a></code> element would
     be evaluated in the context of the <code><a
-    href="#iframe">iframe</a></code>'s own <a href="#browsing0">browsing
+    href="#iframe">iframe</a></code>'s own <a href="#browsing1">browsing
     context</a>; once evaluated, its return value (if it was not void) would
-    replace that <a href="#browsing0">browsing context</a>'s document, thus
-    changing the variables visible in that <a href="#browsing0">browsing
+    replace that <a href="#browsing1">browsing context</a>'s document, thus
+    changing the variables visible in that <a href="#browsing1">browsing
     context</a>.</p>
   </div>
 
@@ -28457,7 +28463,7 @@
    called <code>event</code>, with the new function's scope chain being
    linked from the activation object of the handler, to the element, to the
    element's <code>form</code> element if it is a form control, to the
-   <code>Document</code> object, to the <a href="#browsing0">browsing
+   <code>Document</code> object, to the <a href="#browsing1">browsing
    context</a> of that <code>Document</code>. The function's
    <code>this</code> parameter must be the <code>Element</code> object
    representing the element. The resulting function must then be set as the
@@ -28918,7 +28924,7 @@
    href="#window">Window</a></code> object</h5>
 
   <p>When an event is dispatched at a DOM node in a <code>Document</code> in
-   a <a href="#browsing0">browsing context</a>, if the event is not a <code
+   a <a href="#browsing1">browsing context</a>, if the event is not a <code
    title=event-load><a href="#load0">load</a></code> event, the user agent
    must also dispatch the event to the <code><a
    href="#window">Window</a></code>, as follows:
@@ -29498,7 +29504,7 @@
    <dfn id=update0 title=concept-appcache-status>update status</dfn>, which
    is one of the following: <i>idle</i>, <i>checking</i>, <i>downloading</i>.
 
-  <p id=appcache-history-1>A <a href="#browsing0">browsing context</a> can be
+  <p id=appcache-history-1>A <a href="#browsing1">browsing context</a> can be
    associated with an application cache. A <a href="#child">child browsing
    context</a> is always associated with the same application cache as its <a
    href="#parent">parent browsing context</a>, if any. A <a
@@ -30572,7 +30578,7 @@
    on <code><a href="#window">Window</a></code> objects must return the
    <code><a href="#applicationcache">ApplicationCache</a></code> object
    associated with the <a href="#active">active document</a> of the <code><a
-   href="#window">Window</a></code>'s <a href="#browsing0">browsing
+   href="#window">Window</a></code>'s <a href="#browsing1">browsing
    context</a>.
 
   <p>An <code><a href="#applicationcache">ApplicationCache</a></code> object
@@ -30585,7 +30591,7 @@
    Otherwise, the <code><a
    href="#applicationcache">ApplicationCache</a></code> object is associated
    with the application cache that the <code>Document</code> object's <a
-   href="#browsing0">browsing context</a> is associated with, if any.
+   href="#browsing1">browsing context</a> is associated with, if any.
 
   <p>The <dfn id=status0 title=dom-appcache-status><code>status</code></dfn>
    attribute, on getting, must return the current state of the <a
@@ -30908,28 +30914,28 @@
    browsing contexts</h4>
 
   <p>The sequence of <code>Document</code>s in a <a
-   href="#browsing0">browsing context</a> is its <dfn id=session>session
+   href="#browsing1">browsing context</a> is its <dfn id=session>session
    history</dfn>.
 
-  <p><code><a href="#history1">History</a></code> objects provide a
-   representation of the pages in the session history of <a href="#browsing0"
+  <p><code><a href="#history2">History</a></code> objects provide a
+   representation of the pages in the session history of <a href="#browsing1"
    title="browsing context">browsing contexts</a>. Each browsing context has
    a distinct session history.
 
   <p>Each <code>Document</code> object in a browsing context's session
    history is associated with a unique instance of the <code><a
-   href="#history1">History</a></code> object, although they all must model
+   href="#history2">History</a></code> object, although they all must model
    the same underlying session history.
 
-  <p>The <dfn id=history0 title=dom-history><code>history</code></dfn>
+  <p>The <dfn id=history1 title=dom-history><code>history</code></dfn>
    attribute of the <code><a href="#window">Window</a></code> interface must
    return the object implementing the <code><a
-   href="#history1">History</a></code> interface for that <code><a
+   href="#history2">History</a></code> interface for that <code><a
    href="#window">Window</a></code> object's <a href="#active">active
    document</a>.
 
-  <p><code><a href="#history1">History</a></code> objects represent their <a
-   href="#browsing0">browsing context</a>'s session history as a flat list of
+  <p><code><a href="#history2">History</a></code> objects represent their <a
+   href="#browsing1">browsing context</a>'s session history as a flat list of
    <a href="#session0" title="session history entry">session history
    entries</a>. Each <dfn id=session0>session history entry</dfn> consists of
    either a URI or a <a href="#state">state object</a>, or both, and may in
@@ -30964,7 +30970,7 @@
 
   <p>At any point, one of the entries in the session history is the <dfn
    id=current1>current entry</dfn>. This is the entry representing the <a
-   href="#active">active document</a> of the <a href="#browsing0">browsing
+   href="#active">active document</a> of the <a href="#browsing1">browsing
    context</a>. The <a href="#current1">current entry</a> is usually an entry
    for the <a href="#href5" title=dom-location-href>location</a> of the
    <code>Document</code>. However, it can also be one of the entries for <a
@@ -31017,9 +31023,9 @@
    killed
 
   <h4 id=the-history><span class=secno>4.8.2 </span>The <code><a
-   href="#history1">History</a></code> interface</h4>
+   href="#history2">History</a></code> interface</h4>
 
-  <pre class=idl>interface <dfn id=history1>History</dfn> {
+  <pre class=idl>interface <dfn id=history2>History</dfn> {
   readonly attribute long <a href="#length7" title=dom-history-length>length</a>;
   void <a href="#godelta" title=dom-history-go>go</a>(in long delta);
   void <a href="#go" title=dom-history-go-0>go</a>();
@@ -31031,7 +31037,7 @@
 };</pre>
 
   <p>The <dfn id=length7 title=dom-history-length><code>length</code></dfn>
-   attribute of the <code><a href="#history1">History</a></code> interface
+   attribute of the <code><a href="#history2">History</a></code> interface
    must return the number of entries in this <a href="#session">session
    history</a>.
 
@@ -31051,142 +31057,12 @@
    was called instead.
 
   <p>Otherwise, the user agent must cause the current <a
-   href="#browsing0">browsing context</a> to <a href="#traverse">traverse the
-   history</a> to the specified entry, as described below. The <dfn
-   id=specified>specified entry</dfn> is the one whose index equals the index
-   of the <a href="#current1">current entry</a> plus <var
-   title="">delta</var>.
+   href="#browsing1">browsing context</a> to <a href="#traverse">traverse the
+   history</a> to the specified entry. The <i>specified entry</i> is the one
+   whose index equals the index of the <a href="#current1">current entry</a>
+   plus <var title="">delta</var>.
 
-  <p>When a user agent is required to <dfn id=traverse>traverse the
-   history</dfn><!-- (traversal) --> to a specified entry, the user agent
-   must act as follows:
-
-  <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
-     browsing context to the location for that entry to perform an <a
-     href="#entry">entry update</a> of that entry, and abort these steps. The
-     "<a href="#navigate">navigate</a>" algorithm reinvokes this "traverse"
-     algorithm to complete the traversal, at which point there <em>is</em> a
-     <code>Document</code> object and so this step gets skipped.
-
-   <li>
-    <p>If appropriate, update the <a href="#current1">current entry</a> in
-     the <a href="#browsing0">browsing context</a>'s <code>Document</code>
-     object's <code><a href="#history1">History</a></code> object to reflect
-     any state that the user agent wishes to persist.</p>
-
-    <p class=example>For example, some user agents might want to persist the
-     scroll position, or the values of form controls.</p>
-
-   <li>
-    <p>If the <a href="#specified">specified entry</a> has a different
-     <code>Document</code> object than the <a href="#current1">current
-     entry</a> then the user agent must run the following substeps:</p>
-
-    <ol>
-     <li class=big-issue>freeze any timers, intervals, XMLHttpRequests,
-      database transactions, etc
-
-     <li>The user agent must move any properties that have been added to the
-      browsing context's default view's <code><a
-      href="#window">Window</a></code> object to the <a href="#active">active
-      document</a>'s <code>Document</code>'s <a href="#list-of2">list of
-      added properties</a>.
-
-     <li>If the browsing context is a <a href="#top-level">top-level browsing
-      context</a> (and not an <a href="#auxiliary0">auxiliary browsing
-      context</a>), and the <a href="#origin0">origin</a> of the
-      <code>Document</code> of the <a href="#specified">specified entry</a>
-      is not the same as the <a href="#origin0">origin</a> of the
-      <code>Document</code> of the <a href="#current1">current entry</a>,
-      then the following sub-sub-steps must be run:
-      <ol>
-       <li>The current <a href="#browsing1">browsing context name</a> must be
-        stored with all the entries in the history that are associated with
-        <code>Document</code> objects with the same <a
-        href="#origin0">origin</a> as the <a href="#active">active
-        document</a> <em>and</em> that are contiguous with the <a
-        href="#current1">current entry</a>.
-
-       <li id=resetBCName>The browsing context's <a
-        href="#browsing1">browsing context name</a> must be unset.
-      </ol>
-
-     <li id=appcache-history-2>The user agent must make the <a
-      href="#specified">specified entry</a>'s <code>Document</code> object
-      the <a href="#active">active document</a> of the <a
-      href="#browsing0">browsing context</a>. (If it is a <a
-      href="#top-level">top-level browsing context</a>, this might <a
-      href="#appcache-history-1">change</a> which <a
-      href="#application0">application cache</a> it is associated with.)
-
-     <li>If the <a href="#specified">specified entry</a> has a <a
-      href="#browsing1">browsing context name</a> stored with it, then the
-      following sub-sub-steps must be run:
-      <ol>
-       <li>The browsing context's <a href="#browsing1">browsing context
-        name</a> must be set to the name stored with the specified entry.
-
-       <li>Any <a href="#browsing1">browsing context name</a> stored with the
-        entries in the history that are associated with <code>Document</code>
-        objects with the same <a href="#origin0">origin</a> as the new <a
-        href="#active">active document</a>, and that are contiguous with the
-        specified entry, must be cleared.
-      </ol>
-
-     <li>The user agent must move any properties that have been added to the
-      <a href="#active">active document</a>'s <code>Document</code>'s <a
-      href="#list-of2">list of added properties</a> to browsing context's
-      default view's <code><a href="#window">Window</a></code> object.
-
-     <li class=big-issue>unfreeze any timers, intervals, XMLHttpRequests,
-      database transactions, etc
-    </ol>
-
-   <li>
-    <p>If there are any entries with state objects between the <a
-     href="#last-activated">last activated entry</a> for the
-     <code>Document</code> of the <a href="#specified">specified entry</a>
-     and the <a href="#specified">specified entry</a> itself (not inclusive),
-     then the user agent must iterate through every entry between that <a
-     href="#last-activated">last activated entry</a> and the <a
-     href="#specified">specified entry</a>, starting with the entry closest
-     to the <a href="#current1">current entry</a>, and ending with the one
-     closest to the <a href="#specified">specified entry</a>. For each entry,
-     if the entry is a state object, the user agent must <a
-     href="#activating0">activate the state object</a>.
-
-   <li>
-    <p>If the <a href="#specified">specified entry</a> is a state object or
-     the first entry for a <code>Document</code>, the user agent must <a
-     href="#activating0" title="activate the state object">activate that
-     entry</a>.
-
-   <li>
-    <p>If the <a href="#specified">specified entry</a> has a URI that differs
-     from the <a href="#current1">current entry</a>'s only by its fragment
-     identifier, and the two share the same <code>Document</code> object,
-     then <a href="#firing2">fire a simple event</a> with the name
-     <code>hashchanged</code> at <a href="#the-body1">the <code>body</code>
-     element</a>, and, if the new URI has a fragment identifier, <a
-     href="#scroll">scroll to the fragment identifier</a>.
-
-   <li>
-    <p>User agents may also update other aspects of the document view when
-     the location changes in this way, for instance the scroll position,
-     values of form fields, etc.
-
-   <li>
-    <p>The <a href="#current1">current entry</a> is now the <a
-     href="#specified">specified entry</a>.
-  </ol>
-
-  <p class=big-issue>how does the changing of the global attributes affect
-   .watch() when seen from other Windows?
-
-  <p>When the user navigates through a <a href="#browsing0">browsing
+  <p>When the user navigates through a <a href="#browsing1">browsing
    context</a>, e.g. using a browser's back and forward buttons, the user
    agent must translate this action into the equivalent invocations of the
    <code title=dom-history-go><a href="#godelta">history.go(<var
@@ -31194,7 +31070,7 @@
    title=dom-window><a href="#window0">window</a></code> objects.
 
   <p>Some of the other members of the <code><a
-   href="#history1">History</a></code> interface are defined in terms of the
+   href="#history2">History</a></code> interface are defined in terms of the
    <code title=dom-history-go><a href="#godelta">go()</a></code> method, as
    follows:
 
@@ -31364,10 +31240,10 @@
 
   <p><code><a href="#location2">Location</a></code> objects provide a
    representation of the URI of their document, and allow the <a
-   href="#current1">current entry</a> of the <a href="#browsing0">browsing
+   href="#current1">current entry</a> of the <a href="#browsing1">browsing
    context</a>'s session history to be changed, by adding or replacing
    entries in the <code title=dom-history><a
-   href="#history0">history</a></code> object.
+   href="#history1">history</a></code> object.
 
   <pre class=idl>interface <dfn id=location2>Location</dfn> {
   readonly attribute DOMString <a href="#href5" title=dom-location-href>href</a>;
@@ -31410,12 +31286,12 @@
 
   <p>When the <dfn id=assign title=dom-location-assign><code>assign(<var
    title="">url</var>)</code></dfn> method is invoked, the UA must <a
-   href="#navigate">navigate</a> the <a href="#browsing0">browsing
+   href="#navigate">navigate</a> the <a href="#browsing1">browsing
    context</a> to the specified <var title="">url</var>.
 
   <p>When the <dfn id=replace title=dom-location-replace><code>replace(<var
    title="">url</var>)</code></dfn> method is invoked, the UA must <a
-   href="#navigate">navigate</a> the <a href="#browsing0">browsing
+   href="#navigate">navigate</a> the <a href="#browsing1">browsing
    context</a> to the specified <var title="">url</var> with <a
    href="#replacement">replacement enabled</a>.
 
@@ -31469,7 +31345,7 @@
 
   <ul>
    <li>The <code title=dom-location-href><a href="#href5">href</a></code>
-    setter, if the script is running in a <a href="#browsing0">browsing
+    setter, if the script is running in a <a href="#browsing1">browsing
     context</a> that is <a href="#allowed">allowed to navigate</a> the
     browsing context with which the <code><a
     href="#location2">Location</a></code> object is associated
@@ -31484,21 +31360,21 @@
 
   <p><em>This section is non-normative.</em>
 
-  <p>The <code><a href="#history1">History</a></code> interface is not meant
+  <p>The <code><a href="#history2">History</a></code> interface is not meant
    to place restrictions on how implementations represent the session history
    to the user.
 
   <p>For example, session history could be implemented in a tree-like manner,
    with each page having multiple "forward" pages. This specification doesn't
    define how the linear list of pages in the <code title=dom-history><a
-   href="#history0">history</a></code> object are derived from the actual
+   href="#history1">history</a></code> object are derived from the actual
    session history as seen from the user's perspective.
 
   <p>Similarly, a page containing two <code><a
    href="#iframe">iframe</a></code>s has a <code title=dom-history><a
-   href="#history0">history</a></code> object distinct from the <code><a
+   href="#history1">history</a></code> object distinct from the <code><a
    href="#iframe">iframe</a></code>s' <code title=dom-history><a
-   href="#history0">history</a></code> objects, despite the fact that typical
+   href="#history1">history</a></code> objects, despite the fact that typical
    Web browsers present the user with just one "Back" button, with a session
    history that interleaves the navigation of the two inner frames and the
    outer page.
@@ -31518,9 +31394,12 @@
    that are invoked on a timer, or from event handlers that do not represent
    a clear user action, or that are invoked in rapid succession.
 
-  <h3 id=navigating><span class=secno>4.9 </span>Navigating across documents</h3>
+  <h3 id=browsing0><span class=secno>4.9 </span>Browsing the Web</h3>
 
-  <p>Certain actions cause the <a href="#browsing0">browsing context</a> to
+  <h4 id=navigating><span class=secno>4.9.1 </span>Navigating across
+   documents</h4>
+
+  <p>Certain actions cause the <a href="#browsing1">browsing context</a> to
    <dfn id=navigate>navigate</dfn>. For example, <a href="#following0"
    title="following hyperlinks">following a hyperlink</a>, <span
    title="">form submission</span>, and the <code title=dom-open><a
@@ -31658,7 +31537,7 @@
    <li>
     <p>If the user agent has been configured to process resources of the
      given <var title="">type</var> using some mechanism other than rendering
-     the content in a <a href="#browsing0">browsing context</a>, then skip
+     the content in a <a href="#browsing1">browsing context</a>, then skip
      this step. Otherwise, if the <var title="">type</var> is one of the
      following types, jump to the appropriate entry in the following list,
      and process the resource as described there:</p>
@@ -31692,7 +31571,7 @@
       title=navigate-image>image</a> section, and abort these steps.
 
      <dt>A type that will use an external application to render the content
-      in the <a href="#browsing0">browsing context</a>
+      in the <a href="#browsing1">browsing context</a>
 
      <dd>Follow the steps given in the <a href="#page-load3"
       title=navigate-plugin>plugin</a> section, and abort these steps.
@@ -31763,9 +31642,9 @@
       <ol>
        <li>
         <p>Remove all the entries after the <a href="#current1">current
-         entry</a> in the <a href="#browsing0">browsing context</a>'s
+         entry</a> in the <a href="#browsing1">browsing context</a>'s
          <code>Document</code> object's <code><a
-         href="#history1">History</a></code> object.</p>
+         href="#history2">History</a></code> object.</p>
 
         <p class=note>This <a href="#history-notes">doesn't necessarily have
          to affect</a><!--XXX change to auto-xref?--> the user agent's user
@@ -31773,7 +31652,7 @@
 
        <li>
         <p>Append a new entry at the end of the <code><a
-         href="#history1">History</a></code> object representing the new
+         href="#history2">History</a></code> object representing the new
          resource and its <code>Document</code> object and related state.
 
        <li>
@@ -31788,10 +31667,10 @@
     </dl>
   </ol>
 
-  <h4 id=read-html><span class=secno>4.9.1 </span><dfn id=page-load
+  <h4 id=read-html><span class=secno>4.9.2 </span><dfn id=page-load
    title=navigate-html>Page load processing model for HTML files</dfn></h4>
 
-  <p>When an HTML document is to be loaded in a <a href="#browsing0">browsing
+  <p>When an HTML document is to be loaded in a <a href="#browsing1">browsing
    context</a>, the user agent must create a <code>Document</code> object,
    mark it as being an <a href="#html-" title="HTML documents">HTML
    document</a>, create an <a href="#html-0">HTML parser</a>, associate it
@@ -31819,7 +31698,7 @@
    title=concept-appcache-init-with-attribute>Application cache selection</a>
    happens <a href="#parser-appcache">in the HTML parser</a>.
 
-  <h4 id=read-xml><span class=secno>4.9.2 </span><dfn id=page-load0
+  <h4 id=read-xml><span class=secno>4.9.3 </span><dfn id=page-load0
    title=navigate-xml>Page load processing model for XML files</dfn></h4>
 
   <p>When faced with displaying an XML file inline, user agents must first
@@ -31876,11 +31755,11 @@
   <p>Error messages from the parse process (e.g. namespace well-formedness
    errors) may be reported inline by mutating the <code>Document</code>.
 
-  <h4 id=read-text><span class=secno>4.9.3 </span><dfn id=page-load1
+  <h4 id=read-text><span class=secno>4.9.4 </span><dfn id=page-load1
    title=navigate-text>Page load processing model for text files</dfn></h4>
 
   <p>When a plain text document is to be loaded in a <a
-   href="#browsing0">browsing context</a>, the user agent should create a
+   href="#browsing1">browsing context</a>, the user agent should create a
    <code>Document</code> object, mark it as being an <a href="#html-"
    title="HTML documents">HTML document</a>, create an <a href="#html-0">HTML
    parser</a>, associate it with the document, act as if the tokeniser had
@@ -31919,11 +31798,11 @@
    binding, providing script, giving the document a <code><a
    href="#title1">title</a></code>, etc.
 
-  <h4 id=read-image><span class=secno>4.9.4 </span><dfn id=page-load2
+  <h4 id=read-image><span class=secno>4.9.5 </span><dfn id=page-load2
    title=navigate-image>Page load processing model for images</dfn></h4>
 
   <p>When an image resource is to be loaded in a <a
-   href="#browsing0">browsing context</a>, the user agent should create a
+   href="#browsing1">browsing context</a>, the user agent should create a
    <code>Document</code> object, mark it as being an <a href="#html-"
    title="HTML documents">HTML document</a>, append an <code><a
    href="#html">html</a></code> element to the <code>Document</code>, append
@@ -31955,12 +31834,12 @@
    binding, to provide a script, to give the document a <code><a
    href="#title1">title</a></code>, etc.
 
-  <h4 id=read-plugin><span class=secno>4.9.5 </span><dfn id=page-load3
+  <h4 id=read-plugin><span class=secno>4.9.6 </span><dfn id=page-load3
    title=navigate-plugin>Page load processing model for content that uses
    plugins</dfn></h4>
 
   <p>When a resource that requires an external resource to be rendered is to
-   be loaded in a <a href="#browsing0">browsing context</a>, the user agent
+   be loaded in a <a href="#browsing1">browsing context</a>, the user agent
    should create a <code>Document</code> object, mark it as being an <a
    href="#html-" title="HTML documents">HTML document</a>, append an <code><a
    href="#html">html</a></code> element to the <code>Document</code>, append
@@ -31992,12 +31871,12 @@
    XBL binding, or to give the document a <code><a
    href="#title1">title</a></code>.
 
-  <h4 id=read-ua-inline><span class=secno>4.9.6 </span><dfn id=page-load4
+  <h4 id=read-ua-inline><span class=secno>4.9.7 </span><dfn id=page-load4
    title=navigate-ua-inline>Page load processing model for inline content
    that doesn't have a DOM</dfn></h4>
 
   <p>When the user agent is to display a user agent page inline in a <a
-   href="#browsing0">browsing context</a>, the user agent should create a
+   href="#browsing1">browsing context</a>, the user agent should create a
    <code>Document</code> object, mark it as being an <a href="#html-"
    title="HTML documents">HTML document</a>, and then either associate that
    <code>Document</code> with a custom rendering that is not rendered using
@@ -32019,7 +31898,7 @@
    the page has been completely set up, the user agent must <a
    href="#update2">update the session history with the new page</a>.
 
-  <h4 id=scroll-to-fragid><span class=secno>4.9.7 </span><dfn id=navigating0
+  <h4 id=scroll-to-fragid><span class=secno>4.9.8 </span><dfn id=navigating0
    title=navigate-fragid>Navigating to a fragment identifier</dfn></h4>
 
   <p>When a user agent is supposed to navigate to a fragment identifier, then
@@ -32083,6 +31962,134 @@
    an element; otherwise there is no <i>target element</i>. <a
    href="#refsSELECTORS">[SELECTORS]</a>
 
+  <h4 id=history0><span class=secno>4.9.9 </span>History traversal</h4>
+
+  <p>When a user agent is required to <dfn id=traverse>traverse the
+   history</dfn> to a <i>specified entry</i>, the user agent must act as
+   follows:
+
+  <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
+     browsing context to the location for that entry to perform an <a
+     href="#entry">entry update</a> of that entry, and abort these steps. The
+     "<a href="#navigate">navigate</a>" algorithm reinvokes this "traverse"
+     algorithm to complete the traversal, at which point there <em>is</em> a
+     <code>Document</code> object and so this step gets skipped.
+
+   <li>
+    <p>If appropriate, update the <a href="#current1">current entry</a> in
+     the <a href="#browsing1">browsing context</a>'s <code>Document</code>
+     object's <code><a href="#history2">History</a></code> object to reflect
+     any state that the user agent wishes to persist.</p>
+
+    <p class=example>For example, some user agents might want to persist the
+     scroll position, or the values of form controls.</p>
+
+   <li>
+    <p>If the <i>specified entry</i> has a different <code>Document</code>
+     object than the <a href="#current1">current entry</a> then the user
+     agent must run the following substeps:</p>
+
+    <ol>
+     <li class=big-issue>freeze any timers, intervals, XMLHttpRequests,
+      database transactions, etc
+
+     <li>The user agent must move any properties that have been added to the
+      browsing context's default view's <code><a
+      href="#window">Window</a></code> object to the <a href="#active">active
+      document</a>'s <code>Document</code>'s <a href="#list-of2">list of
+      added properties</a>.
+
+     <li>If the browsing context is a <a href="#top-level">top-level browsing
+      context</a> (and not an <a href="#auxiliary0">auxiliary browsing
+      context</a>), and the <a href="#origin0">origin</a> of the
+      <code>Document</code> of the <i>specified entry</i> is not the same as
+      the <a href="#origin0">origin</a> of the <code>Document</code> of the
+      <a href="#current1">current entry</a>, then the following sub-sub-steps
+      must be run:
+      <ol>
+       <li>The current <a href="#browsing2">browsing context name</a> must be
+        stored with all the entries in the history that are associated with
+        <code>Document</code> objects with the same <a
+        href="#origin0">origin</a> as the <a href="#active">active
+        document</a> <em>and</em> that are contiguous with the <a
+        href="#current1">current entry</a>.
+
+       <li id=resetBCName>The browsing context's <a
+        href="#browsing2">browsing context name</a> must be unset.
+      </ol>
+
+     <li id=appcache-history-2>The user agent must make the <i>specified
+      entry</i>'s <code>Document</code> object the <a href="#active">active
+      document</a> of the <a href="#browsing1">browsing context</a>. (If it
+      is a <a href="#top-level">top-level browsing context</a>, this might <a
+      href="#appcache-history-1">change</a> which <a
+      href="#application0">application cache</a> it is associated with.)
+
+     <li>If the <i>specified entry</i> has a <a href="#browsing2">browsing
+      context name</a> stored with it, then the following sub-sub-steps must
+      be run:
+      <ol>
+       <li>The browsing context's <a href="#browsing2">browsing context
+        name</a> must be set to the name stored with the specified entry.
+
+       <li>Any <a href="#browsing2">browsing context name</a> stored with the
+        entries in the history that are associated with <code>Document</code>
+        objects with the same <a href="#origin0">origin</a> as the new <a
+        href="#active">active document</a>, and that are contiguous with the
+        specified entry, must be cleared.
+      </ol>
+
+     <li>The user agent must move any properties that have been added to the
+      <a href="#active">active document</a>'s <code>Document</code>'s <a
+      href="#list-of2">list of added properties</a> to browsing context's
+      default view's <code><a href="#window">Window</a></code> object.
+
+     <li class=big-issue>unfreeze any timers, intervals, XMLHttpRequests,
+      database transactions, etc
+    </ol>
+
+   <li>
+    <p>If there are any entries with state objects between the <a
+     href="#last-activated">last activated entry</a> for the
+     <code>Document</code> of the <i>specified entry</i> and the <i>specified
+     entry</i> itself (not inclusive), then the user agent must iterate
+     through every entry between that <a href="#last-activated">last
+     activated entry</a> and the <i>specified entry</i>, starting with the
+     entry closest to the <a href="#current1">current entry</a>, and ending
+     with the one closest to the <i>specified entry</i>. For each entry, if
+     the entry is a state object, the user agent must <a
+     href="#activating0">activate the state object</a>.
+
+   <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="#activating0"
+     title="activate the state object">activate that entry</a>.
+
+   <li>
+    <p>If the <i>specified entry</i> has a URI that differs from the <a
+     href="#current1">current entry</a>'s only by its fragment identifier,
+     and the two share the same <code>Document</code> object, then <a
+     href="#firing2">fire a simple event</a> with the name
+     <code>hashchanged</code> at <a href="#the-body1">the <code>body</code>
+     element</a>, and, if the new URI has a fragment identifier, <a
+     href="#scroll">scroll to the fragment identifier</a>.
+
+   <li>
+    <p>User agents may also update other aspects of the document view when
+     the location changes in this way, for instance the scroll position,
+     values of form fields, etc.
+
+   <li>
+    <p>The <a href="#current1">current entry</a> is now the <i>specified
+     entry</i>.
+  </ol>
+
+  <p class=big-issue>how does the changing of the global attributes affect
+   .watch() when seen from other Windows?
+
   <h3 id=content-type-sniffing><span class=secno>4.10 </span>Determining the
    type of a new resource in a browsing context</h3>
 
@@ -33117,13 +33124,13 @@
    for that <a href="#top-level">top-level browsing context</a>.
 
   <p>When a new <a href="#top-level">top-level browsing context</a> is
-   created by cloning an existing <a href="#browsing0">browsing context</a>,
+   created by cloning an existing <a href="#browsing1">browsing context</a>,
    the new browsing context must start with the same session storage areas as
    the original, but the two sets must from that point on be considered
    separate, not affecting each other in any way.
 
   <p>When a new <a href="#top-level">top-level browsing context</a> is
-   created by a script in an existing <a href="#browsing0">browsing
+   created by a script in an existing <a href="#browsing1">browsing
    context</a>, or by the user following a link in an existing browsing
    context, or in some other way related to a specific <code><a
    href="#htmldocument">HTMLDocument</a></code>, then the session storage
@@ -33171,7 +33178,7 @@
   <p>When the <code title=dom-localStorage><a
    href="#localstorage">localStorage</a></code> attribute is accessed, the
    user agent must check to see if it has allocated local storage area for
-   the <a href="#origin0">origin</a> of the <a href="#browsing0">browsing
+   the <a href="#origin0">origin</a> of the <a href="#browsing1">browsing
    context</a> within which the script is running. If it has not, a new
    storage area for that origin must be created.
 
@@ -33235,7 +33242,7 @@
    <code><a href="#storage0">Storage</a></code> object was affected, and its
    <code title=dom-StorageEvent-source><a href="#source0">source</a></code>
    attribute set to the <code><a href="#window">Window</a></code> object of
-   the <a href="#browsing0">browsing context</a> that that document is in, if
+   the <a href="#browsing1">browsing context</a> that that document is in, if
    the two documents are in the same <a href="#unit-of">unit of related
    browsing contexts</a>, or null otherwise.
 
@@ -33559,7 +33566,7 @@
    make appropriate use of the transaction features to handle the case of
    multiple scripts interacting with the same database simultaneously (as
    could happen if the same page was opened in two different <a
-   href="#browsing0" title="browsing context">browsing contexts</a>).
+   href="#browsing1" title="browsing context">browsing contexts</a>).
 
   <p>User agents must consider statements that use the <code
    title="">BEGIN</code>, <code title="">COMMIT</code>, and <code
@@ -33890,7 +33897,7 @@
      <code title=dom-localStorage><a
      href="#localstorage">localStorage</a></code> and database objects to
      scripts originating at the domain of the top-level document of the <a
-     href="#browsing0">browsing context</a>, for instance denying access to
+     href="#browsing1">browsing context</a>, for instance denying access to
      the API for pages from other domains running in <code><a
      href="#iframe">iframe</a></code>s.</p>
 
@@ -34126,7 +34133,7 @@
    id=following0>Following hyperlinks</dfn></h4>
 
   <p>When a user <em>follows a hyperlink</em>, the user agent must <a
-   href="#navigate">navigate</a> a <a href="#browsing0">browsing context</a>
+   href="#navigate">navigate</a> a <a href="#browsing1">browsing context</a>
    to the URI of the hyperlink.
 
   <p>The URI of the hyperlink is URI given by resolving the <code
@@ -34149,7 +34156,7 @@
    using the value of the <code title=attr-hyperlink-target><a
    href="#target3">target</a></code> attribute as the browsing context name.
    If these rules result in the creation of a new <a
-   href="#browsing0">browsing context</a>, it must be navigated with <a
+   href="#browsing1">browsing context</a>, it must be navigated with <a
    href="#replacement">replacement enabled</a>.
 
   <p>Otherwise, if the hyperlink element is a <a href="#sidebar0"
@@ -34171,7 +34178,7 @@
    title=attr-base-target><a href="#target">target</a></code> attribute of
    the first such <code><a href="#base">base</a></code> element as the
    browsing context name. If these rules result in the creation of a new <a
-   href="#browsing0">browsing context</a>, it must be navigated with <a
+   href="#browsing1">browsing context</a>, it must be navigated with <a
    href="#replacement">replacement enabled</a>.
 
   <p>Otherwise, the browsing context that must be navigated is the same
@@ -35122,7 +35129,7 @@
   <p>The <code title=rel-sidebar><a href="#sidebar">sidebar</a></code>
    keyword indicates that the referenced document, if retrieved, is intended
    to be shown in a <a href="#secondary0">secondary browsing context</a> (if
-   possible), instead of in the current <a href="#browsing0">browsing
+   possible), instead of in the current <a href="#browsing1">browsing
    context</a>.
 
   <p>A <a href="#hyperlinks" title=hyperlink>hyperlink element</a> with with
@@ -37392,7 +37399,7 @@
 
   <h3 id=selection><span class=secno>5.5 </span>The text selection APIs</h3>
 
-  <p>Every <a href="#browsing0">browsing context</a> has <dfn id=a-selection
+  <p>Every <a href="#browsing1">browsing context</a> has <dfn id=a-selection
    title="the selection">a selection</dfn>. The selection can be empty, and
    the selection can have more than one range (a disjointed selection). The
    user should be able to change the selection. User agents are not required
@@ -37402,7 +37409,7 @@
    selections with multiple ranges.)
 
   <p>This one selection must be shared by all the content of the browsing
-   context (though not by nested <a href="#browsing0" title="browsing
+   context (though not by nested <a href="#browsing1" title="browsing
    context">browsing contexts</a>), including any editing hosts in the
    document. (Editing hosts that are not inside a document cannot have a
    selection.)
@@ -37421,7 +37428,7 @@
    the position of the selection altogether.
 
   <p>Mostly for historical reasons, in addition to the <a
-   href="#browsing0">browsing context</a>'s <a href="#a-selection" title="the
+   href="#browsing1">browsing context</a>'s <a href="#a-selection" title="the
    selection">selection</a>, each <code>textarea</code> and
    <code>input</code> element has an independent selection. These are the
    <dfn id=text-field title="text field selection">text field
@@ -37455,7 +37462,7 @@
    <code><a href="#window">Window</a></code> interface must return the
    <code><a href="#selection1">Selection</a></code> object representing <a
    href="#a-selection">the selection</a> of that <code><a
-   href="#window">Window</a></code> object's <a href="#browsing0">browsing
+   href="#window">Window</a></code> object's <a href="#browsing1">browsing
    context</a>.
 
   <p>For historical reasons, the <dfn id=getselection0
@@ -39708,7 +39715,7 @@
      empty string, and the <code title=dom-MessageEvent-source><a
      href="#source2">source</a></code> attribute must be set to the <code><a
      href="#window">Window</a></code> object of the <a
-     href="#default3">default view</a> of the <a href="#browsing0">browsing
+     href="#default3">default view</a> of the <a href="#browsing1">browsing
      context</a> for which the <code>Document</code> object with which the
      script is associated is the <a href="#active">active
      document</a><!--, if there is one, or null
@@ -50005,7 +50012,7 @@
    href="#timeouthandler">TimeoutHandler</a></code> object. That string must
    be parsed using the specified <var title="">language</var> (defaulting to
    ECMAScript if the third argument is omitted) and executed in the scope of
-   the <a href="#browsing0">browsing context</a> associated with the <code><a
+   the <a href="#browsing1">browsing context</a> associated with the <code><a
    href="#window">Window</a></code> object on which the <code
    title=setTimeout><a href="#settimeout">setTimeout()</a></code> method was
    invoked.

Modified: source
===================================================================
--- source	2008-05-13 01:09:45 UTC (rev 1596)
+++ source	2008-05-13 01:17:16 UTC (rev 1597)
@@ -28914,147 +28914,10 @@
 
   <p>Otherwise, the user agent must cause the current <span>browsing
   context</span> to <span>traverse the history</span> to the specified
-  entry, as described below. The <dfn>specified entry</dfn> is the one
-  whose index equals the index of the <span>current entry</span> plus
-  <var title="">delta</var>.</p>
+  entry. The <i>specified entry</i> is the one whose index equals the
+  index of the <span>current entry</span> plus <var
+  title="">delta</var>.</p>
 
-  <p>When a user agent is required to <dfn>traverse the
-  history</dfn><!-- (traversal) --> to a specified entry, 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 <span>navigate</span> the
-   browsing context to the location for that entry to perform an
-   <span>entry update</span> of that entry, and abort these steps. The
-   "<span>navigate</span>" algorithm reinvokes this "traverse"
-   algorithm to complete the traversal, at which point there
-   <em>is</em> a <code>Document</code> object and so this step gets
-   skipped.</p></li>
-
-   <li><p>If appropriate, update the <span>current entry</span> in the
-   <span>browsing context</span>'s <code>Document</code> object's
-   <code>History</code> object to reflect any state that the user
-   agent wishes to persist.</p>
-   <p class="example">For example, some user agents might want to
-   persist the scroll position, or the values of form controls.</p>
-   </li>
-
-   <li><p>If the <span>specified entry</span> has a different
-   <code>Document</code> object than the <span>current entry</span>
-   then the user agent must run the following substeps:</p>
-
-    <ol>
-
-     <li class="big-issue">freeze any timers, intervals,
-     XMLHttpRequests, database transactions, etc</li>
-
-     <li>The user agent must move any properties that have been added
-     to the browsing context's default view's <code>Window</code>
-     object to the <span>active document</span>'s
-     <code>Document</code>'s <span>list of added
-     properties</span>.</li>
-
-     <li>If the browsing context is a <span>top-level browsing
-     context</span> (and not an <span>auxiliary browsing
-     context</span>), and the <span>origin</span> of the
-     <code>Document</code> of the <span>specified entry</span> is not
-     the same as the <span>origin</span> of the <code>Document</code>
-     of the <span>current entry</span>, then the following
-     sub-sub-steps must be run:
-
-      <ol>
-
-       <li>The current <span>browsing context name</span> must be
-       stored with all the entries in the history that are associated
-       with <code>Document</code> objects with the same
-       <span>origin</span> as the <span>active document</span>
-       <em>and</em> that are contiguous with the <span>current
-       entry</span>.</li>
-
-       <li id="resetBCName">The browsing context's <span>browsing
-       context name</span> must be unset.</li>
-
-      </ol>
-
-     </li>
-
-     <li id="appcache-history-2">The user agent must make the
-     <span>specified entry</span>'s <code>Document</code> object the
-     <span>active document</span> of the <span>browsing
-     context</span>. (If it is a <span>top-level browsing
-     context</span>, this might <a
-     href="#appcache-history-1">change</a> which <span>application
-     cache</span> it is associated with.)</li>
-
-     <li>If the <span>specified entry</span> has a <span>browsing
-     context name</span> stored with it, then the following
-     sub-sub-steps must be run:
-
-      <ol>
-
-       <li>The browsing context's <span>browsing context name</span>
-       must be set to the name stored with the specified entry.</li>
-
-       <li>Any <span>browsing context name</span> stored with the
-       entries in the history that are associated with
-       <code>Document</code> objects with the same <span>origin</span>
-       as the new <span>active document</span>, and that are
-       contiguous with the specified entry, must be cleared.</li>
-
-      </ol>
-
-     </li>
-
-     <li>The user agent must move any properties that have been added
-     to the <span>active document</span>'s <code>Document</code>'s
-     <span>list of added properties</span> to browsing context's
-     default view's <code>Window</code> object.</li>
-
-     <li class="big-issue">unfreeze any timers, intervals,
-     XMLHttpRequests, database transactions, etc</li>
-
-    </ol>
-
-   </li>
-
-   <li><p>If there are any entries with state objects between the
-   <span>last activated entry</span> for the <code>Document</code> of
-   the <span>specified entry</span> and the <span>specified
-   entry</span> itself (not inclusive), then the user agent must
-   iterate through every entry between that <span>last activated
-   entry</span> and the <span>specified entry</span>, starting with
-   the entry closest to the <span>current entry</span>, and ending
-   with the one closest to the <span>specified entry</span>. For each
-   entry, if the entry is a state object, the user agent must
-   <span>activate the state object</span>.</p></li>
-
-   <li><p>If the <span>specified entry</span> is a state object or the
-   first entry for a <code>Document</code>, the user agent must <span
-   title="activate the state object">activate that
-   entry</span>.</p></li>
-
-   <li><p>If the <span>specified entry</span> has a URI that differs
-   from the <span>current entry</span>'s only by its fragment
-   identifier, and the two share the same <code>Document</code>
-   object, then <span>fire a simple event</span> with the name
-   <code>hashchanged</code> at <span>the <code>body</code>
-   element</span>, and, if the new URI has a fragment identifier,
-   <span>scroll to the fragment identifier</span>.</p></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
-   position, values of form fields, etc.</p></li>
-
-   <li><p>The <span>current entry</span> is now the <span>specified
-   entry</span>.</p></li>
-
-  </ol>
-
-  <p class="big-issue">how does the changing of the global attributes
-  affect .watch() when seen from other Windows?</p>
-
   <p>When the user navigates through a <span>browsing context</span>,
   e.g. using a browser's back and forward buttons, the user agent must
   translate this action into the equivalent invocations of the <code
@@ -29376,8 +29239,9 @@
 
 
 
+  <h3>Browsing the Web</h3>
 
-  <h3>Navigating across documents</h3>
+  <h4>Navigating across documents</h4>
 
   <p>Certain actions cause the <span>browsing context</span> to
   <dfn>navigate</dfn>. For example, <span title="following
@@ -29955,8 +29819,147 @@
   href="#refsSELECTORS">[SELECTORS]</a></p>
 
 
+  <h4>History traversal</h4>
 
+  <p>When a user agent is required to <dfn>traverse the history</dfn>
+  to a <i>specified entry</i>, 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 <span>navigate</span> the
+   browsing context to the location for that entry to perform an
+   <span>entry update</span> of that entry, and abort these steps. The
+   "<span>navigate</span>" algorithm reinvokes this "traverse"
+   algorithm to complete the traversal, at which point there
+   <em>is</em> a <code>Document</code> object and so this step gets
+   skipped.</p></li>
+
+   <li><p>If appropriate, update the <span>current entry</span> in the
+   <span>browsing context</span>'s <code>Document</code> object's
+   <code>History</code> object to reflect any state that the user
+   agent wishes to persist.</p>
+   <p class="example">For example, some user agents might want to
+   persist the scroll position, or the values of form controls.</p>
+   </li>
+
+   <li><p>If the <i>specified entry</i> has a different
+   <code>Document</code> object than the <span>current entry</span>
+   then the user agent must run the following substeps:</p>
+
+    <ol>
+
+     <li class="big-issue">freeze any timers, intervals,
+     XMLHttpRequests, database transactions, etc</li>
+
+     <li>The user agent must move any properties that have been added
+     to the browsing context's default view's <code>Window</code>
+     object to the <span>active document</span>'s
+     <code>Document</code>'s <span>list of added
+     properties</span>.</li>
+
+     <li>If the browsing context is a <span>top-level browsing
+     context</span> (and not an <span>auxiliary browsing
+     context</span>), and the <span>origin</span> of the
+     <code>Document</code> of the <i>specified entry</i> is not
+     the same as the <span>origin</span> of the <code>Document</code>
+     of the <span>current entry</span>, then the following
+     sub-sub-steps must be run:
+
+      <ol>
+
+       <li>The current <span>browsing context name</span> must be
+       stored with all the entries in the history that are associated
+       with <code>Document</code> objects with the same
+       <span>origin</span> as the <span>active document</span>
+       <em>and</em> that are contiguous with the <span>current
+       entry</span>.</li>
+
+       <li id="resetBCName">The browsing context's <span>browsing
+       context name</span> must be unset.</li>
+
+      </ol>
+
+     </li>
+
+     <li id="appcache-history-2">The user agent must make the
+     <i>specified entry</i>'s <code>Document</code> object the
+     <span>active document</span> of the <span>browsing
+     context</span>. (If it is a <span>top-level browsing
+     context</span>, this might <a
+     href="#appcache-history-1">change</a> which <span>application
+     cache</span> it is associated with.)</li>
+
+     <li>If the <i>specified entry</i> has a <span>browsing
+     context name</span> stored with it, then the following
+     sub-sub-steps must be run:
+
+      <ol>
+
+       <li>The browsing context's <span>browsing context name</span>
+       must be set to the name stored with the specified entry.</li>
+
+       <li>Any <span>browsing context name</span> stored with the
+       entries in the history that are associated with
+       <code>Document</code> objects with the same <span>origin</span>
+       as the new <span>active document</span>, and that are
+       contiguous with the specified entry, must be cleared.</li>
+
+      </ol>
+
+     </li>
+
+     <li>The user agent must move any properties that have been added
+     to the <span>active document</span>'s <code>Document</code>'s
+     <span>list of added properties</span> to browsing context's
+     default view's <code>Window</code> object.</li>
+
+     <li class="big-issue">unfreeze any timers, intervals,
+     XMLHttpRequests, database transactions, etc</li>
+
+    </ol>
+
+   </li>
+
+   <li><p>If there are any entries with state objects between the
+   <span>last activated entry</span> for the <code>Document</code> of
+   the <i>specified entry</i> and the <i>specified entry</i> itself
+   (not inclusive), then the user agent must iterate through every
+   entry between that <span>last activated entry</span> and the
+   <i>specified entry</i>, starting with the entry closest to the
+   <span>current entry</span>, and ending with the one closest to the
+   <i>specified entry</i>. For each entry, if the entry is a state
+   object, the user agent must <span>activate the state
+   object</span>.</p></li>
+
+   <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 <span
+   title="activate the state object">activate that
+   entry</span>.</p></li>
+
+   <li><p>If the <i>specified entry</i> has a URI that differs
+   from the <span>current entry</span>'s only by its fragment
+   identifier, and the two share the same <code>Document</code>
+   object, then <span>fire a simple event</span> with the name
+   <code>hashchanged</code> at <span>the <code>body</code>
+   element</span>, and, if the new URI has a fragment identifier,
+   <span>scroll to the fragment identifier</span>.</p></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
+   position, values of form fields, etc.</p></li>
+
+   <li><p>The <span>current entry</span> is now the <i>specified
+   entry</i>.</p></li>
+
+  </ol>
+
+  <p class="big-issue">how does the changing of the global attributes
+  affect .watch() when seen from other Windows?</p>
+
+
+
   <h3 id="content-type-sniffing">Determining the type of a new resource in a browsing context</h3>
 
   <p class="warning">It is imperative that the rules in this section




More information about the Commit-Watchers mailing list