[html5] r1635 - /

whatwg at whatwg.org whatwg at whatwg.org
Fri May 16 16:28:33 PDT 2008


Author: ianh
Date: 2008-05-16 16:28:32 -0700 (Fri, 16 May 2008)
New Revision: 1635

Modified:
   index
   source
Log:
[] (0) Defined the 'script execution browsing context' and the 'source browsing context'.

Modified: index
===================================================================
--- index	2008-05-16 01:19:05 UTC (rev 1634)
+++ index	2008-05-16 23:28:32 UTC (rev 1635)
@@ -1066,8 +1066,8 @@
 
      <li><a href="#scripting"><span class=secno>4.4 </span>Scripting</a>
       <ul class=toc>
-       <li><a href="#running"><span class=secno>4.4.1 </span>Running
-        executable code</a>
+       <li><a href="#script0"><span class=secno>4.4.1 </span>Script execution
+        contexts</a>
 
        <li><a href="#security4"><span class=secno>4.4.2 </span>Security
         exceptions</a>
@@ -2035,11 +2035,11 @@
      specifications.</p>
 
     <p class=example>A conforming XHTML processor would, upon finding an
-     XHTML <code><a href="#script0">script</a></code> element in an XML
+     XHTML <code><a href="#script1">script</a></code> element in an XML
      document, execute the script contained in that element. However, if the
      element is found within an XSLT transformation sheet (assuming the UA
      also supports XSLT), then the processor would instead treat the <code><a
-     href="#script0">script</a></code> element as an opaque element that
+     href="#script1">script</a></code> element as an opaque element that
      forms part of the transform.</p>
 
     <p>Web browsers that support <a href="#html5" title=HTML5>HTML</a> must
@@ -2725,9 +2725,11 @@
 
   <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"
+   return either the URI of the <a href="#active">active document</a> of the
+   <a href="#source0">source browsing context</a> at the time the navigation
+   was started (that is, the page which <a href="#navigate"
    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
+   to the current document), 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
    href="#hyperlinks">hyperlink</a> with a <code title=rel-noreferrer><a
@@ -3724,7 +3726,7 @@
    title=dom-document-scripts><code>scripts</code></dfn> attribute must
    return an <code><a href="#htmlcollection0">HTMLCollection</a></code>
    rooted at the <code>Document</code> node, whose filter matches only
-   <code><a href="#script0">script</a></code> elements.
+   <code><a href="#script1">script</a></code> elements.
 
   <p>The <dfn id=getelementsbyname
    title=dom-document-getElementsByName><code>getElementsByName(<var
@@ -4039,13 +4041,13 @@
      inserted, one at a time, processing resulting tokens as they are
      emitted, and stopping when the tokeniser reaches the insertion point or
      when the processing of the tokeniser is aborted by the tree construction
-     stage (this can happen if a <code><a href="#script0">script</a></code>
+     stage (this can happen if a <code><a href="#script1">script</a></code>
      start tag token is emitted by the tokeniser).
 
     <p class=note>If the <code title=dom-document-write-HTML><a
      href="#document.write...">document.write()</a></code> method was called
      from script executing inline (i.e. executing because the parser parsed a
-     set of <code><a href="#script0">script</a></code> tags), then this is a
+     set of <code><a href="#script1">script</a></code> tags), then this is a
      <a href="#nestedParsing">reentrant invocation of the parser</a>.</p>
 
    <li>
@@ -4151,7 +4153,7 @@
      preserving their order.</p>
   </ol>
 
-  <p class=note><code><a href="#script0">script</a></code> elements inserted
+  <p class=note><code><a href="#script1">script</a></code> elements inserted
    using <code title=dom-innerHTML-HTML><a
    href="#innerhtml0">innerHTML</a></code> do not execute when they are
    inserted.</p>
@@ -4308,7 +4310,7 @@
      preserving their order.</p>
   </ol>
 
-  <p class=note><code><a href="#script0">script</a></code> elements inserted
+  <p class=note><code><a href="#script1">script</a></code> elements inserted
    using <code title=dom-innerHTML-XML><a
    href="#innerhtml1">innerHTML</a></code> do not execute when they are
    inserted.
@@ -7951,7 +7953,7 @@
    href="#title1">title</a></code>, <code><a href="#base">base</a></code>,
    <code><a href="#link">link</a></code>, <code><a
    href="#style1">style</a></code>, and <code><a
-   href="#script0">script</a></code> elements.
+   href="#script1">script</a></code> elements.
 
   <p>The <code><a href="#meta0">meta</a></code> element can represent
    document-level metadata with the <code title=attr-meta-name><a
@@ -8412,12 +8414,14 @@
          not canceled the redirect, the user agent <a href="#navigate"
          title=navigate>navigates</a> the document's browsing context to <var
          title="">url</var>, with <a href="#replacement">replacement
-         enabled</a>.
+         enabled</a>, and with the document's browsing context as the <a
+         href="#source0">source browsing context</a>.
 
        <li>
         <p>Provide the user with an interface that, when selected,
          <span>navigates</span> a <a href="#browsing1">browsing context</a>
-         to <var title="">url</var>.
+         to <var title="">url</var>, with the document's browsing context as
+         the <a href="#source0">source browsing context</a>.
 
        <li>
         <p>Do nothing.
@@ -14159,16 +14163,22 @@
    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
-   href="#navigate" title=navigate>navigates</a> away from this page, the
-   <code><a href="#iframe">iframe</a></code>'s corresponding <code><a
+   <a href="#replacement">replacement enabled</a>, and with the <code><a
+   href="#iframe">iframe</a></code> element's document's <a
+   href="#browsing1">browsing context</a> as the <a href="#source0">source
+   browsing context</a>. If the user <a href="#navigate"
+   title=navigate>navigates</a> away from this page, the <code><a
+   href="#iframe">iframe</a></code>'s corresponding <code><a
    href="#window">Window</a></code> object will reference new
    <code>Document</code> objects, but the <code title=attr-iframe-src><a
    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="#browsing1">browsing context</a>
-   must be <a href="#navigate" title=navigate>navigated</a> to the given URI.
+   must be <a href="#navigate" title=navigate>navigated</a> to the given URI,
+   with the <code><a href="#iframe">iframe</a></code> element's document's <a
+   href="#browsing1">browsing context</a> as the <a href="#source0">source
+   browsing context</a>.
 
   <p>If the <code title=attr-iframe-src><a href="#src1">src</a></code>
    attribute is not set when the element is created, the browsing context
@@ -14576,7 +14586,10 @@
          if it does not already have one. The element's nested <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
+         with <a href="#replacement">replacement enabled</a>, and with the
+         <code><a href="#object">object</a></code> element's document's <a
+         href="#browsing1">browsing context</a> as the <a
+         href="#source0">source browsing context</a>. (The <code
          title=attr-object-data><a href="#data">data</a></code> attribute of
          the <code><a href="#object">object</a></code> element doesn't get
          updated if the browsing context gets further navigated to other
@@ -22754,7 +22767,7 @@
   </div>
 
   <h4 id=script><span class=secno>3.15.1 </span>The <dfn
-   id=script0><code>script</code></dfn> element</h4>
+   id=script1><code>script</code></dfn> element</h4>
 
   <dl class=element>
    <dt>Categories
@@ -22804,7 +22817,7 @@
 };</pre>
   </dl>
 
-  <p>The <code><a href="#script0">script</a></code> element allows authors to
+  <p>The <code><a href="#script1">script</a></code> element allows authors to
    include dynamic script and script data in their documents.
 
   <p>When used to include dynamic scripts, the scripts may either be embedded
@@ -22887,12 +22900,12 @@
    specific times described below (namely, when the element is inserted into
    the document).
 
-  <p><code><a href="#script0">script</a></code> elements have four associated
+  <p><code><a href="#script1">script</a></code> elements have four associated
    pieces of metadata. The first is a flag indicating whether or not the
    script block has been <dfn id=already>"already executed"</dfn>. Initially,
-   <code><a href="#script0">script</a></code> elements must have this flag
+   <code><a href="#script1">script</a></code> elements must have this flag
    unset (script blocks, when created, are not "already executed"). When a
-   <code><a href="#script0">script</a></code> element is cloned, the "already
+   <code><a href="#script1">script</a></code> element is cloned, the "already
    executed" flag, if set, must be propagated to the clone when it is
    created. The second is a flag indicating whether the element was <dfn
    id=parser-inserted>"parser-inserted"</dfn>. This flag is set by the <a
@@ -22904,36 +22917,36 @@
    encoding</var></dfn>. They are determined when the script is run, based on
    the attributes on the element at that time.
 
-  <p><dfn id=running0 title="running a script">Running a script</dfn>: When a
+  <p><dfn id=running title="running a script">Running a script</dfn>: When a
    script block is <span>inserted into a document</span>, the user agent must
    act as follows:
 
   <ol>
    <li>
-    <p>If the <code><a href="#script0">script</a></code> element has a <code
+    <p>If the <code><a href="#script1">script</a></code> element has a <code
      title=attr-script-type><a href="#type11">type</a></code> attribute and
      its value is the empty string, or if the <code><a
-     href="#script0">script</a></code> element has no <code
+     href="#script1">script</a></code> element has no <code
      title=attr-script-type><a href="#type11">type</a></code> attribute but
      it has a <code title=attr-script-language>language</code> attribute and
      <em>that</em> attribute's value is the empty string, or if the <code><a
-     href="#script0">script</a></code> element has neither a <code
+     href="#script1">script</a></code> element has neither a <code
      title=attr-script-type><a href="#type11">type</a></code> attribute nor a
      <code title=attr-script-language>language</code> attribute, let <var><a
      href="#the-scripts">the script's type</a></var> for this <code><a
-     href="#script0">script</a></code> element be "<code
+     href="#script1">script</a></code> element be "<code
      title="">text/javascript</code>".</p>
 
-    <p>Otherwise, if the <code><a href="#script0">script</a></code> element
+    <p>Otherwise, if the <code><a href="#script1">script</a></code> element
      has a <code title=attr-script-type><a href="#type11">type</a></code>
      attribute, let <var><a href="#the-scripts">the script's type</a></var>
-     for this <code><a href="#script0">script</a></code> element be the value
+     for this <code><a href="#script1">script</a></code> element be the value
      of that attribute.</p>
 
     <p>Otherwise, the element has a <code
      title=attr-script-language>language</code> attribute; let <var><a
      href="#the-scripts">the script's type</a></var> for this <code><a
-     href="#script0">script</a></code> element be the concatenation of the
+     href="#script1">script</a></code> element be the concatenation of the
      string "<code title="">text/</code>" followed by the value of the <code
      title=attr-script-language>language</code> attribute.</p>
     <!-- user agents already support, e.g., type="text/javascript1.3",
@@ -22941,15 +22954,15 @@
     
 
    <li>
-    <p>If the <code><a href="#script0">script</a></code> element has a <code
+    <p>If the <code><a href="#script1">script</a></code> element has a <code
      title=attr-script-charset><a href="#charset2">charset</a></code>
      attribute, then let <var><a href="#the-scripts0">the script's character
-     encoding</a></var> for this <code><a href="#script0">script</a></code>
+     encoding</a></var> for this <code><a href="#script1">script</a></code>
      element be the encoding given by the <code title=attr-script-charset><a
      href="#charset2">charset</a></code> attribute.</p>
 
     <p>Otherwise, let <var><a href="#the-scripts0">the script's character
-     encoding</a></var> for this <code><a href="#script0">script</a></code>
+     encoding</a></var> for this <code><a href="#script1">script</a></code>
      element be the same as <a href="#character1" title="document's character
      encoding">the encoding of the document itself</a>.</p>
 
@@ -22957,7 +22970,7 @@
     <p>If <a href="#scripting1">scripting is disabled</a>, or if the
      <code>Document</code> has <code title=dom-document-designMode><a
      href="#designMode">designMode</a></code> enabled, or if the <code><a
-     href="#script0">script</a></code> element was created by an <span>XML
+     href="#script1">script</a></code> element was created by an <span>XML
      parser</span> that itself was created as part of the processing of the
      <code title=dom-innerHTML-XML><a href="#innerhtml1">innerHTML</a></code>
      attribute's
@@ -22965,8 +22978,8 @@
     HTML parser handles that for us-->,
      or if the user agent does not <a href="#support">support the scripting
      language</a> given by <var><a href="#the-scripts">the script's
-     type</a></var> for this <code><a href="#script0">script</a></code>
-     element, or if the <code><a href="#script0">script</a></code> element
+     type</a></var> for this <code><a href="#script1">script</a></code>
+     element, or if the <code><a href="#script1">script</a></code> element
      has its <a href="#already">"already executed"</a> flag set, then the
      user agent must abort these steps at this point. The script is not
      executed.</p>
@@ -23192,7 +23205,7 @@
          href="#text1">text</a></code> attribute (defined below) as the
          script to execute, and for XML-based scripting languages, user
          agents must use all the child nodes of the <code><a
-         href="#script0">script</a></code> element as the script to execute.</p>
+         href="#script1">script</a></code> element as the script to execute.</p>
       </dl>
 
       <p>In any case, the user agent must execute the script according to the
@@ -23202,7 +23215,8 @@
 
       <p>Scripts must be executed in the scope of the <a
        href="#browsing1">browsing context</a> of the element's
-       <code>Document</code>.</p>
+       <code>Document</code>. That <a href="#script2">script execution
+       browsing context</a> is that browsing context.</p>
 
       <p class=note>The element's attributes' values might have changed
        between when the element was inserted into the document and when the
@@ -23210,13 +23224,13 @@
        the element itself might have been taken back out of the DOM, or had
        other changes made. These changes do not in any way affect the above
        steps; only the values of the attributes at the time the <code><a
-       href="#script0">script</a></code> element is first inserted into the
+       href="#script1">script</a></code> element is first inserted into the
        document matter.</p>
 
      <li>
       <p>Then, the user agent must <a href="#firing4">fire a <code
        title=event-load>load</code> event</a> at the <code><a
-       href="#script0">script</a></code> element.</p>
+       href="#script1">script</a></code> element.</p>
     </ol>
   </dl>
 
@@ -23233,7 +23247,7 @@
    title=dom-script-text><code>text</code></dfn> must return a concatenation
    of the contents of all the <a href="#text-node" title="text node">text
    nodes</a> that are direct children of the <code><a
-   href="#script0">script</a></code> element (ignoring any other nodes such
+   href="#script1">script</a></code> element (ignoring any other nodes such
    as comments or elements), in tree order. On setting, it must act the same
    way as the <code><a href="#textcontent">textContent</a></code> DOM
    attribute.
@@ -23361,12 +23375,12 @@
    <code><a href="#noscript">noscript</a></code> element is text, except that
    the text must be such that running the following algorithm results in a
    conforming document with no <code><a href="#noscript">noscript</a></code>
-   elements and no <code><a href="#script0">script</a></code> elements, and
+   elements and no <code><a href="#script1">script</a></code> elements, and
    such that no step in the algorithm causes an <a href="#html-0">HTML
    parser</a> to flag a <a href="#parse1">parse error</a>:
 
   <ol>
-   <li>Remove every <code><a href="#script0">script</a></code> element from
+   <li>Remove every <code><a href="#script1">script</a></code> element from
     the document.
 
    <li>Make a list of every <code><a href="#noscript">noscript</a></code>
@@ -28274,7 +28288,10 @@
    enabled</a>; otherwise, it must not be enabled unless 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>.
+   browsing context name</a>. The navigation must be done with the <a
+   href="#browsing1">browsing context</a> of the <code><a
+   href="#window">Window</a></code> object on which the method was invoked as
+   the <a href="#source0">source browsing context</a>.
 
   <p>The method must return the <code><a href="#window">Window</a></code>
    object of the default view of the <a href="#browsing1">browsing
@@ -28385,11 +28402,11 @@
      called the <i>owner</i>:</p>
 
     <dl class=switch>
-     <dt>If a script is in a <code><a href="#script0">script</a></code>
+     <dt>If a script is in a <code><a href="#script1">script</a></code>
       element
 
      <dd>The owner is the <code>Document</code> to which the <code><a
-      href="#script0">script</a></code> element belongs.
+      href="#script1">script</a></code> element belongs.
 
      <dt>If a script is a function or other code reference created by another
       script
@@ -28671,14 +28688,12 @@
 
   <h3 id=scripting><span class=secno>4.4 </span>Scripting</h3>
 
-  <h4 id=running><span class=secno>4.4.1 </span>Running executable code</h4>
-
   <p>Various mechanisms can cause author-provided executable code to run in
    the context of a document. These mechanisms include, but are probably not
    limited to:
 
   <ul>
-   <li>Processing of <code><a href="#script0">script</a></code> elements.
+   <li>Processing of <code><a href="#script1">script</a></code> elements.
 
    <li>Processing of inline <code title="javascript protocol"><a
     href="#the-javascript">javascript:</a></code> URIs (e.g. the <code
@@ -28705,6 +28720,14 @@
    title="User agents with no scripting support">user agent with no scripting
    support</a> for the purposes of conformance.
 
+  <h4 id=script0><span class=secno>4.4.1 </span>Script execution contexts</h4>
+
+  <p>The <dfn id=script2>script execution browsing context</dfn> of a script
+   is defined when that script is created. It is typically the <a
+   href="#browsing1">browsing context</a> of the <code><a
+   href="#window">Window</a></code> object that is being used as the script's
+   dereference context..
+
   <h4 id=security4><span class=secno>4.4.2 </span>Security exceptions</h4>
 
   <p class=big-issue>Define <dfn id=security9>security exception</dfn>.
@@ -28728,17 +28751,21 @@
    href="#active">active document</a> of that browsing context has the <a
    href="#same-origin">same origin</a> as the script given by that URI, the
    dereference context must be the <a href="#browsing1">browsing context</a>
-   being navigated.
+   being navigated. The <a href="#script2">script execution browsing
+   context</a> in that case is that same <a href="#browsing1">browsing
+   context</a>.</p>
+  <!-- (redundant with next paragraph)
+  <p>When a browsing context is <span
+  title="navigate">navigated</span> to a <code>javascript:</code> URI,
+  and the <span>active document</span> of that browsing context has a
+  an <span>origin</span> that is <em>not</em> the <span title="same
+  origin">same</span> as that of the script given by the URI, the
+  dereference context must be an empty object.</p>
+-->
 
-  <p>When a browsing context is <a href="#navigate"
-   title=navigate>navigated</a> to a <code>javascript:</code> URI, and the <a
-   href="#active">active document</a> of that browsing context has a an <a
-   href="#origin0">origin</a> that is <em>not</em> the <a href="#same-origin"
-   title="same origin">same</a> as that of the script given by the URI, the
-   dereference context must be an empty object.
+  <p>Otherwise, the dereference context must be an empty object, and there is
+   no <a href="#script2">script execution browsing context</a>.
 
-  <p>Otherwise, the dereference context must be an empty object.
-
   <p>URIs using the <code title="">javascript:</code> protocol should be
    evaluated when the resource for that URI is needed, unless <a
    href="#scripting1">scripting is disabled</a> or the <code>Document</code>
@@ -28789,7 +28816,7 @@
    context, and for Documents that have no browsing context. Do the events
    fire? Do the handlers in that document not fire? Do we just define
    scripting to be disabled when the document isn't active, with events still
-   running as is? See also the <code><a href="#script0">script</a></code>
+   running as is? See also the <code><a href="#script1">script</a></code>
    element section, which says scripts don't run when the document isn't
    active.
 
@@ -28837,6 +28864,10 @@
   <p class=note>See ECMA262 Edition 3, sections 10.1.6 and 10.2.3, for more
    details on activation objects. <a href="#refsECMA262">[ECMA262]</a>
 
+  <p>The <a href="#script2">script execution browsing context</a> of the
+   event handler must be the <a href="#browsing1">browsing context</a> at the
+   end of the scope chain.
+
   <p class=issue>How do we allow non-JS event handlers?
 
   <p><dfn id=event4>Event handler DOM attributes</dfn>, on setting, must set
@@ -29467,7 +29498,10 @@
 
    <li>
     <p><a href="#navigate">Navigate</a> the new browsing context to <var
-     title="">url</var>, with <a href="#replacement">replacement enabled</a>.</p>
+     title="">url</var>, with <a href="#replacement">replacement enabled</a>,
+     and with the <a href="#browsing1">browsing context</a> of the <code><a
+     href="#window">Window</a></code> object on which the method was invoked
+     as the <a href="#source0">source browsing context</a>.</p>
 
    <li>
     <p>Wait for the browsing context to be closed. (The user agent must allow
@@ -31673,6 +31707,12 @@
    context</a> to the specified <var title="">url</var> with <a
    href="#replacement">replacement enabled</a>.
 
+  <p>Navigation for the <code title=dom-location-assign><a
+   href="#assign">assign()</a></code> and <code title=dom-location-replace><a
+   href="#replace">replace()</a></code> methods must be done with the <a
+   href="#script2">script execution browsing context</a> of the script that
+   called the method as the <a href="#source0">source browsing context</a>.
+
   <p>Relative <var title="">url</var> arguments for <code
    title=dom-location-assign><a href="#assign">assign()</a></code> and <code
    title=dom-location-replace><a href="#replace">replace()</a></code> must be
@@ -31779,15 +31819,20 @@
    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
+   <dfn id=navigate>navigate</dfn>. Navigation always involves a <dfn
+   id=source0>source browsing context</dfn>, which is the browsing context
+   which was responsible for starting the navigation.
+
+  <p class=example>For example, <a href="#following0" title="following
+   hyperlinks">following a hyperlink</a>, <span title="">form
+   submission</span>, and the <code title=dom-open><a
    href="#open2">window.open()</a></code> and <code
    title=dom-location-assign><a href="#assign">location.assign()</a></code>
-   methods can all cause a browsing context to navigate. A user agent may
-   also provide various ways for the user to explicitly cause a browsing
-   context to navigate.
+   methods can all cause a browsing context to navigate.
 
+  <p>A user agent may also provide various ways for the user to explicitly
+   cause a browsing context to navigate.
+
   <p>When a browsing context is navigated, the user agent must run the
    following steps:
 
@@ -32369,7 +32414,9 @@
      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.
+     <code>Document</code> object and so this step gets skipped. The
+     navigation must be done using the same <a href="#source0">source
+     browsing context</a> as was used the first time this entry was created.
 
    <li>
     <p>If appropriate, update the <a href="#current1">current entry</a> in
@@ -33636,7 +33683,7 @@
   <p>In addition, the event must have its <code title=dom-StorageEvent-uri><a
    href="#uri">uri</a></code> attribute set to the address of the page whose
    <code><a href="#storage0">Storage</a></code> object was affected, and its
-   <code title=dom-StorageEvent-source><a href="#source0">source</a></code>
+   <code title=dom-StorageEvent-source><a href="#source1">source</a></code>
    attribute set to the <code><a href="#window">Window</a></code> object of
    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
@@ -33649,7 +33696,7 @@
   readonly attribute DOMString <a href="#oldvalue" title=dom-StorageEvent-oldValue>oldValue</a>;
   readonly attribute DOMString <span title=dom-StorageEvent-newValue>newValue</span>;
   readonly attribute DOMString <a href="#uri" title=dom-StorageEvent-uri>uri</a>;
-  readonly attribute <a href="#window">Window</a> <a href="#source0" title=dom-StorageEvent-source>source</a>;
+  readonly attribute <a href="#window">Window</a> <a href="#source1" title=dom-StorageEvent-source>source</a>;
   void <a href="#initstorageevent" title=dom-StorageEvent-initStorageEvent>initStorageEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in DOMString oldValueArg, in DOMString newValueArg, in DOMString uriArg, in Window sourceArg);
   void <a href="#initstorageeventns" title=dom-StorageEvent-initStorageEventNS>initStorageEventNS</a>(in DOMString namespaceURI, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString keyArg, in DOMString oldValueArg, in DOMString newValueArg, in DOMString uriArg, in Window sourceArg);
 };</pre>
@@ -33676,7 +33723,7 @@
   <p>The <dfn id=uri title=dom-StorageEvent-uri><code>uri</code></dfn>
    attribute represents the address of the document that changed the key.
 
-  <p>The <dfn id=source0
+  <p>The <dfn id=source1
    title=dom-StorageEvent-source><code>source</code></dfn> attribute
    represents the <code><a href="#window">Window</a></code> that changed the
    key.
@@ -34581,6 +34628,11 @@
   <p>Otherwise, the browsing context that must be navigated is the same
    browsing context as the one which the hyperlink element itself is in.
 
+  <p>The navigation must be done with the <a href="#browsing1">browsing
+   context</a> that contains the <code>Document</code> object with which the
+   hyperlink's element in question is associated as the <a
+   href="#source0">source browsing context</a>.
+
   <h5 id=hyperlink0><span class=secno>4.12.2.1. </span>Hyperlink auditing</h5>
 
   <p>If an <code><a href="#a">a</a></code> or <code><a
@@ -36661,13 +36713,13 @@
     <tr>
      <td><dfn id=dragstart title=event-dragstart><code>dragstart</code></dfn>
 
-     <td><a href="#source1">Source node</a>
+     <td><a href="#source2">Source node</a>
 
      <td>&#x2713; Bubbles
 
      <td>&#x2713; Cancelable
 
-     <td>Contains <a href="#source1">source node</a> unless a selection is
+     <td>Contains <a href="#source2">source node</a> unless a selection is
       being dragged, in which case it is empty
 
      <td><code title="">uninitialized</code>
@@ -36679,7 +36731,7 @@
     <tr>
      <td><dfn id=drag title=event-drag><code>drag</code></dfn>
 
-     <td><a href="#source1">Source node</a>
+     <td><a href="#source2">Source node</a>
 
      <td>&#x2713; Bubbles
 
@@ -36771,7 +36823,7 @@
     <tr>
      <td><dfn id=dragend title=event-dragend><code>dragend</code></dfn>
 
-     <td><a href="#source1">Source node</a>
+     <td><a href="#source2">Source node</a>
 
      <td>&#x2713; Bubbles
 
@@ -36913,7 +36965,7 @@
   <p>If it is not a selection that is being dragged, then the event must be
    fired on the element that is being dragged.
 
-  <p>The node on which the event is fired is the <dfn id=source1>source
+  <p>The node on which the event is fired is the <dfn id=source2>source
    node</dfn>. Multiple events are fired on this node during the course of
    the drag-and-drop operation.
 
@@ -36921,7 +36973,7 @@
    title=dom-DragEvent-dataTransfer><a
    href="#datatransfer">dataTransfer</a></code> member of the event must be
    created with no nodes. Otherwise, it must be created containing just the
-   <a href="#source1">source node</a>. Script can use the <code
+   <a href="#source2">source node</a>. Script can use the <code
    title=dom-DataTransfer-addElement><a
    href="#addelement">addElement()</a></code> method to add further elements
    to the list of what is being dragged.
@@ -37034,7 +37086,7 @@
   <ol>
    <li>
     <p>First, the user agent must fire a <code title=event-drag><a
-     href="#drag">drag</a></code> event at the <a href="#source1">source
+     href="#drag">drag</a></code> event at the <a href="#source2">source
      node</a>. If this event is canceled, the user agent must set the <a
      href="#current3">current drag operation</a> to none (no drag operation).</p>
 
@@ -37269,7 +37321,7 @@
      <li>
       <p>Finally, the user agent must fire a <code title=event-dragend><a
        href="#dragend">dragend</a></code> event at the <a
-       href="#source1">source node</a>, with the <code
+       href="#source2">source node</a>, with the <code
        title=dom-DataTransfer-dropEffect><a
        href="#dropeffect">dropEffect</a></code> attribute of the event's
        <code title=dom-DragEvent-dataTransfer><a
@@ -37329,7 +37381,7 @@
    operation starts or ends in another application</h5>
 
   <p>If the drag is initiated in another application, the <a
-   href="#source1">source node</a> is not a DOM node, and the user agent must
+   href="#source2">source node</a> is not a DOM node, and the user agent must
    use platform-specific conventions instead when the requirements above
    involve the source node. User agents in this situation must act as if the
    dragged data had been added to the <code><a
@@ -38696,7 +38748,7 @@
   readonly attribute DOMString <a href="#data4" title=dom-MessageEvent-data>data</a>;
   readonly attribute DOMString <a href="#origin1" title=dom-MessageEvent-origin>origin</a>;
   readonly attribute DOMString <a href="#lasteventid" title=dom-MessageEvent-lastEventId>lastEventId</a>;
-  readonly attribute <a href="#window">Window</a> <a href="#source2" title=dom-MessageEvent-source>source</a>;
+  readonly attribute <a href="#window">Window</a> <a href="#source3" title=dom-MessageEvent-source>source</a>;
   void <a href="#initmessageevent" title=dom-MessageEvent-initMessageEvent>initMessageEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString dataArg, in DOMString originArg, in DOMString lastEventIdArg, in Window sourceArg);
   void <a href="#initmessageeventns" title=dom-MessageEvent-initMessageEventNS>initMessageEventNS</a>(in DOMString namespaceURI, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString dataArg, in DOMString originArg, in DOMString lastEventIdArg, in Window sourceArg);
 };</pre>
@@ -38724,7 +38776,7 @@
    attribute represents, in <a href="#server-sent">server-sent dom
    events</a>, the <span>last event ID string</span> of the event source.
 
-  <p>The <dfn id=source2
+  <p>The <dfn id=source3
    title=dom-MessageEvent-source><code>source</code></dfn> attribute
    represents, in <a href="#cross-document">cross-document messaging</a>, the
    <code><a href="#window">Window</a></code> from which the message came.
@@ -39077,7 +39129,7 @@
      title=dom-MessageEvent-lastEventId><a
      href="#lasteventid">lastEventId</a></code> attribute must be set to the
      <span>last event ID string</span> of the event source, and the <code
-     title=dom-MessageEvent-source><a href="#source2">source</a></code>
+     title=dom-MessageEvent-source><a href="#source3">source</a></code>
      attribute must be set to null.
 
    <li>
@@ -39387,7 +39439,7 @@
   <pre
    class=idl>interface <dfn id=connectionreadevent>ConnectionReadEvent</dfn> : Event {
   readonly attribute DOMString <a href="#data5" title=dom-ConnectionReadEvent-data>data</a>;
-  readonly attribute DOMString <a href="#source3" title=dom-ConnectionReadEvent-source>source</a>;
+  readonly attribute DOMString <a href="#source4" title=dom-ConnectionReadEvent-source>source</a>;
   void <a href="#initconnectionreadevent" title=dom-ConnectionReadEvent-initConnectionReadEvent>initConnectionReadEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString dataArg);
   void <a href="#initconnectionreadeventns" title=dom-ConnectionReadEvent-initConnectionReadEventNS>initConnectionReadEventNS</a>(in DOMString namespaceURI, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in DOMString dataArg);
 };
@@ -39405,7 +39457,7 @@
    title=dom-ConnectionReadEvent-data><code>data</code></dfn> attribute
    represents the data that was transmitted from the peer.
 
-  <p>The <dfn id=source3
+  <p>The <dfn id=source4
    title=dom-ConnectionReadEvent-source><code>source</code></dfn> attribute
    represents the name of the peer. This is primarily useful on broadcast
    connections; on direct connections it is equal to the <code
@@ -39633,7 +39685,7 @@
    title="">s</var>, with the first character removed, must be used as the
    <code title=dom-ConnectionReadEvent-data><a href="#data5">data</a></code>,
    and the source IP address of the packet as the <code
-   title=dom-ConnectionReadEvent-source><a href="#source3">source</a></code>.
+   title=dom-ConnectionReadEvent-source><a href="#source4">source</a></code>.
 
   <p class=big-issue>Making the source IP available means that if two or more
    machines in a private network can be made to go to a hostile page
@@ -40111,7 +40163,7 @@
      <code title=dom-MessageEvent-lastEventId><a
      href="#lasteventid">lastEventId</a></code> attribute must be set to the
      empty string, and the <code title=dom-MessageEvent-source><a
-     href="#source2">source</a></code> attribute must be set to the <code><a
+     href="#source3">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="#browsing1">browsing
      context</a> for which the <code>Document</code> object with which the
@@ -40329,7 +40381,7 @@
    <dt>CDATA elements
 
    <dd><code><a href="#style1">style</a></code>, <code><a
-    href="#script0">script</a></code></dd>
+    href="#script1">script</a></code></dd>
    <!-- iframe and
    noscript don't count as CDATA for syntax purposes -->
 
@@ -40643,7 +40695,7 @@
    href="#space">space character</a> or a <a href="#comments0"
    title=syntax-comments>comment</a>, except if the first thing inside the
    <code><a href="#body0">body</a></code> element is a <code><a
-   href="#script0">script</a></code> or <code><a
+   href="#script1">script</a></code> or <code><a
    href="#style1">style</a></code>
    element<!-- and the node immediately preceding
   the <code>body</code> element is a <code>head</code> element whose
@@ -41636,9 +41688,10 @@
     abort these steps.
 
    <li>Otherwise, <a href="#navigate">navigate</a> to the document again,
-    with <a href="#replacement">replacement enabled</a>, but this time skip
-    the <a href="#encoding0">encoding sniffing algorithm</a> and instead just
-    set the encoding to the new encoding and the <a href="#confidence"
+    with <a href="#replacement">replacement enabled</a>, and using the same
+    <a href="#source0">source browsing context</a>, but this time skip the <a
+    href="#encoding0">encoding sniffing algorithm</a> and instead just set
+    the encoding to the new encoding and the <a href="#confidence"
     title=concept-encoding-confidence>confidence</a> to <i>confident</i>.
     Whenever possible, this should be done without actually contacting the
     network layer (the bytes should be re-parsed from memory), even if, e.g.,
@@ -41892,7 +41945,7 @@
      <code>optgroup</code>, <code>option</code>, <code><a
      href="#p">p</a></code>, <code><a href="#param">param</a></code>,
      <code>plaintext</code>, <code><a href="#pre">pre</a></code>, <code><a
-     href="#script0">script</a></code>, <code>select</code>,
+     href="#script1">script</a></code>, <code>select</code>,
      <code>spacer</code>, <code><a href="#style1">style</a></code>, <code><a
      href="#tbody">tbody</a></code>, <code>textarea</code>, <code><a
      href="#tfoot0">tfoot</a></code>, <code><a
@@ -42150,7 +42203,7 @@
    href="#tree-construction0">tree construction</a> stage. The tree
    construction stage can affect the state of the <a href="#content2">content
    model flag</a>, and can insert additional characters into the stream. (For
-   example, the <code><a href="#script0">script</a></code> element can result
+   example, the <code><a href="#script1">script</a></code> element can result
    in scripts executing and using the <a href="#dynamic2">dynamic markup
    insertion</a> APIs to insert characters into the stream being tokenised.)
 
@@ -44882,7 +44935,7 @@
 
     <p>If this process resulted in a collection of character tokens, append a
      single <code>Text</code> node to the <code><a
-     href="#script0">script</a></code> element node whose contents is the
+     href="#script1">script</a></code> element node whose contents is the
      concatenation of all those tokens' characters.</p>
 
     <p>The tokeniser's <a href="#content2">content model flag</a> will have
@@ -44890,20 +44943,20 @@
 
     <p>If the next token is not an end tag token with the tag name "script",
      then this is a <a href="#parse1">parse error</a>; mark the <code><a
-     href="#script0">script</a></code> element as <a href="#already">"already
+     href="#script1">script</a></code> element as <a href="#already">"already
      executed"</a>. Otherwise, the token is the <code><a
-     href="#script0">script</a></code> element's end tag, so ignore it.</p>
+     href="#script1">script</a></code> element's end tag, so ignore it.</p>
 
     <p>If the parser was originally created for the <a
      href="#html-fragment0">HTML fragment parsing algorithm</a>, then mark
-     the <code><a href="#script0">script</a></code> element as <a
+     the <code><a href="#script1">script</a></code> element as <a
      href="#already">"already executed"</a>, and skip the rest of the
      processing described for this token (including the part below where "<a
      href="#the-script" title="the script that will execute as soon as the
      parser resumes">scripts that will execute as soon as the parser
      resumes</a>" are executed). (<a href="#fragment">fragment case</a>)</p>
 
-    <p class=note>Marking the <code><a href="#script0">script</a></code>
+    <p class=note>Marking the <code><a href="#script1">script</a></code>
      element as "already executed" prevents it from executing when it is
      inserted into the document a few paragraphs below. Thus, scripts missing
      their end tags and scripts that were inserted using <code
@@ -44916,7 +44969,7 @@
      href="#next-input">next input character</a>.</p>
 
     <p>Append the new element to the <a href="#current5">current node</a>. <a
-     href="#running0" title="running a script">Special processing occurs when
+     href="#running" title="running a script">Special processing occurs when
      a <code>script</code> element is inserted into a document</a> that might
      cause some script to execute, which might cause <a
      href="#document.write..." title=dom-document-write-HTML>new characters
@@ -47511,7 +47564,7 @@
   -->,
    then the user agent must act as if those scripts just completed loading,
    following the rules given for that in the <code><a
-   href="#script0">script</a></code> element definition.
+   href="#script1">script</a></code> element definition.
 
   <p>Then, if the <a href="#list-of">list of scripts that will execute when
    the document has finished parsing</a> is not empty, and the first item in
@@ -47720,7 +47773,7 @@
        <dd>
         <p>If one of the ancestors of <var title="">current node</var> is a
          <code><a href="#style1">style</a></code>, <code><a
-         href="#script0">script</a></code>, <code>xmp</code>, <code><a
+         href="#script1">script</a></code>, <code>xmp</code>, <code><a
          href="#iframe">iframe</a></code>, <code>noembed</code>,
          <code>noframes</code>, <code><a
          href="#noscript">noscript</a></code>, or <code>plaintext</code>
@@ -47808,7 +47861,7 @@
    title="">--></code>", then when the result of serialising the element
    is parsed, the comment will be truncated at that point and the rest of the
    comment will be interpreted as markup. More examples would be making a
-   <code><a href="#script0">script</a></code> element contain a text node
+   <code><a href="#script1">script</a></code> element contain a text node
    with the text string "<code></script></code>", or having a <code><a
    href="#p">p</a></code> element that contains a <code><a
    href="#ul">ul</a></code> element (as the <code><a href="#ul">ul</a></code>
@@ -47856,7 +47909,7 @@
       <em>RCDATA</em>.
 
      <dt>If it is a <code><a href="#style1">style</a></code>, <code><a
-      href="#script0">script</a></code>, <code>xmp</code>, <code><a
+      href="#script1">script</a></code>, <code>xmp</code>, <code><a
       href="#iframe">iframe</a></code>, <code>noembed</code>, or
       <code>noframes</code> element
 

Modified: source
===================================================================
--- source	2008-05-16 01:19:05 UTC (rev 1634)
+++ source	2008-05-16 23:28:32 UTC (rev 1635)
@@ -1002,12 +1002,14 @@
 
   <p>The <dfn
   title="dom-document-referrer"><code>referrer</code></dfn> attribute
-  must return either the URI of the page which <span
+  must return either the URI of the <span>active document</span> of
+  the <span>source browsing context</span> at the time the navigation
+  was started (that is, the page which <span
   title="navigate">navigated</span> the <span>browsing context</span>
-  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 <span>hyperlink</span> with a <code
+  to the current document), 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
+  <span>hyperlink</span> with a <code
   title="rel-noreferrer">noreferrer</code> keyword.</p>
 
   <p class="note">In the case of HTTP, the <code
@@ -6800,11 +6802,13 @@
        if the user has not canceled the redirect, the user agent <span
        title="navigate">navigates</span> the document's browsing
        context to <var title="">url</var>, with <span>replacement
-       enabled</span>.</p></li>
+       enabled</span>, and with the document's browsing context as the
+       <span>source browsing context</span>.</p></li>
 
        <li><p>Provide the user with an interface that, when selected,
        <span>navigates</span> a <span>browsing context</span> to <var
-       title="">url</var>.</p></li>
+       title="">url</var>, with the document's browsing context as the
+       <span>source browsing context</span>.</p></li>
 
        <li><p>Do nothing.</p></li>
 
@@ -12180,15 +12184,19 @@
   nested <span>browsing context</span> is to contain. When the
   browsing context is created, if the attribute is present, the user
   agent must <span>navigate</span> this browsing context to the given
-  URI, with <span>replacement enabled</span>. If the user <span
-  title="navigate">navigates</span> away from this page, the
-  <code>iframe</code>'s corresponding <code>Window</code> object will
-  reference new <code>Document</code> objects, but the <code
+  URI, with <span>replacement enabled</span>, and with the
+  <code>iframe</code> element's document's <span>browsing
+  context</span> as the <span>source browsing context</span>. If the
+  user <span title="navigate">navigates</span> away from this page,
+  the <code>iframe</code>'s corresponding <code>Window</code> object
+  will reference new <code>Document</code> objects, but the <code
   title="attr-iframe-src">src</code> attribute will not change.</p>
 
   <p>Whenever the <code title="attr-iframe-src">src</code> attribute
   is set, the nested <span>browsing context</span> must be <span
-  title="navigate">navigated</span> to the given URI.</p>
+  title="navigate">navigated</span> to the given URI, with the
+  <code>iframe</code> element's document's <span>browsing
+  context</span> as the <span>source browsing context</span>.</p>
 
   <p>If the <code title="attr-iframe-src">src</code> attribute is not
   set when the element is created, the browsing context will remain at
@@ -12588,8 +12596,11 @@
         nested <span>browsing context</span>, if it does not already
         have one. The element's nested <span>browsing context</span>
         must then be <span title="navigate">navigated</span> to the
-        given resource, with <span>replacement enabled</span>. (The
-        <code title="attr-object-data">data</code> attribute of the
+        given resource, with <span>replacement enabled</span>, and
+        with the <code>object</code> element's document's
+        <span>browsing context</span> as the <span>source browsing
+        context</span>. (The <code
+        title="attr-object-data">data</code> attribute of the
         <code>object</code> element doesn't get updated if the
         browsing context gets further navigated to other
         locations.)</p>
@@ -21115,7 +21126,9 @@
       languages</a> section below).</p>
 
       <p>Scripts must be executed in the scope of the <span>browsing
-      context</span> of the element's <code>Document</code>.</p>
+      context</span> of the element's <code>Document</code>. That
+      <span>script execution browsing context</span> is that browsing
+      context.</p>
 
       <p class="note">The element's attributes' values might have changed
       between when the element was inserted into the document and when the
@@ -25995,7 +26008,10 @@
   enabled</span>; otherwise, it must not be enabled unless the
   <span>browsing context</span> was just created as part of the
   <span>the rules for chosing a browsing context given a browsing
-  context name</span>.</p>
+  context name</span>. The navigation must be done with the
+  <span>browsing context</span> of the <code>Window</code> object on
+  which the method was invoked as the <span>source browsing
+  context</span>.</p>
 
   <p>The method must return the <code>Window</code> object of the
   default view of the <span>browsing context</span> that was
@@ -26455,8 +26471,6 @@
 
   <h3 id="scripting">Scripting</h3>
 
-  <h4>Running executable code</h4>
-
   <p>Various mechanisms can cause author-provided executable code to
   run in the context of a document. These mechanisms include, but are
   probably not limited to:</p>
@@ -26493,8 +26507,15 @@
 
   
 
+  <h4>Script execution contexts</h4>
 
+  <p>The <dfn>script execution browsing context</dfn> of a script is
+  defined when that script is created. It is typically the
+  <span>browsing context</span> of the <code>Window</code> object that
+  is being used as the script's dereference context..</p>
 
+
+
   <h4>Security exceptions</h4>
 
   <p class="big-issue">Define <dfn>security exception</dfn>.</p>
@@ -26518,16 +26539,20 @@
   and the <span>active document</span> of that browsing context has
   the <span>same origin</span> as the script given by that URI, the
   dereference context must be the <span>browsing context</span> being
-  navigated.</p>
+  navigated. The <span>script execution browsing context</span> in
+  that case is that same <span>browsing context</span>.</p>
 
+<!-- (redundant with next paragraph)
   <p>When a browsing context is <span
   title="navigate">navigated</span> to a <code>javascript:</code> URI,
   and the <span>active document</span> of that browsing context has a
   an <span>origin</span> that is <em>not</em> the <span title="same
   origin">same</span> as that of the script given by the URI, the
   dereference context must be an empty object.</p>
+-->
 
-  <p>Otherwise, the dereference context must be an empty object.</p>
+  <p>Otherwise, the dereference context must be an empty object, and
+  there is no <span>script execution browsing context</span>.</p>
 
   <p>URIs using the <code title="">javascript:</code> protocol should
   be evaluated when the resource for that URI is needed, unless
@@ -26630,6 +26655,10 @@
   for more details on activation objects. <a
   href="#refsECMA262">[ECMA262]</a></p>
 
+  <p>The <span>script execution browsing context</span> of the event
+  handler must be the <span>browsing context</span> at the end of the
+  scope chain.</p>
+
   <p class="issue">How do we allow non-JS event handlers?</p>
 
   <p><dfn>Event handler DOM attributes</dfn>, on setting, must set the
@@ -27239,7 +27268,10 @@
    <li>
 
     <p><span>Navigate</span> the new browsing context to <var
-    title="">url</var>, with <span>replacement enabled</span>.</p>
+    title="">url</var>, with <span>replacement enabled</span>, and
+    with the <span>browsing context</span> of the <code>Window</code>
+    object on which the method was invoked as the <span>source
+    browsing context</span>.</p>
 
    </li>
 
@@ -29517,6 +29549,13 @@
   specified <var title="">url</var> with <span>replacement
   enabled</span>.</p>
 
+  <p>Navigation for the <code
+  title="dom-location-assign">assign()</code> and <code
+  title="dom-location-replace">replace()</code> methods must be done
+  with the <span>script execution browsing context</span> of the
+  script that called the method as the <span>source browsing
+  context</span>.</p>
+
   <p>Relative <var title="">url</var> arguments for <code
   title="dom-location-assign">assign()</code> and <code
   title="dom-location-replace">replace()</code> must be resolved
@@ -29621,15 +29660,20 @@
   <h4>Navigating across documents</h4>
 
   <p>Certain actions cause the <span>browsing context</span> to
-  <dfn>navigate</dfn>. For example, <span title="following
+  <dfn>navigate</dfn>. Navigation always involves a <dfn>source
+  browsing context</dfn>, which is the browsing context which was
+  responsible for starting the navigation.</p>
+
+  <p class="example">For example, <span title="following
   hyperlinks">following a hyperlink</span>, <span title="">form
   submission</span>, and the <code
   title="dom-open">window.open()</code> and <code
   title="dom-location-assign">location.assign()</code> methods can all
-  cause a browsing context to navigate. A user agent may also provide
-  various ways for the user to explicitly cause a browsing context to
-  navigate.</p>
+  cause a browsing context to navigate.</p>
 
+  <p>A user agent may also provide various ways for the user to
+  explicitly cause a browsing context to navigate.</p>
+
   <p>When a browsing context is navigated, the user agent must run the
   following steps:</p>
 
@@ -30230,7 +30274,9 @@
    "<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>
+   skipped. The navigation must be done using the same <span>source
+   browsing context</span> as was used the first time this entry was
+   created.</p></li>
 
    <li><p>If appropriate, update the <span>current entry</span> in the
    <span>browsing context</span>'s <code>Document</code> object's
@@ -32359,7 +32405,7 @@
 
   <p>When a user <em>follows a hyperlink</em>, the user agent must
   <span>navigate</span> a <span>browsing context</span> to the URI of
-  the hyperlink.
+  the hyperlink.</p>
 
   <p>The URI of the hyperlink is URI given by resolving the <code
   title="attr-hyperlink-href">href</code> attribute of that hyperlink
@@ -32407,6 +32453,10 @@
   same browsing context as the one which the hyperlink element itself
   is in.</p>
 
+  <p>The navigation must be done with the <span>browsing
+  context</span> that contains the <code>Document</code> object with
+  which the hyperlink's element in question is associated as the
+  <span>source browsing context</span>.</p>
 
 
   <h5>Hyperlink auditing</h5>
@@ -39294,9 +39344,10 @@
    <i>confident</i>, and abort these steps.</li>
 
    <li>Otherwise, <span>navigate</span> to the document again, with
-   <span>replacement enabled</span>, but this time skip the
-   <span>encoding sniffing algorithm</span> and instead just set the
-   encoding to the new encoding and the <span
+   <span>replacement enabled</span>, and using the same <span>source
+   browsing context</span>, but this time skip the <span>encoding
+   sniffing algorithm</span> and instead just set the encoding to the
+   new encoding and the <span
    title="concept-encoding-confidence">confidence</span> to
    <i>confident</i>. Whenever possible, this should be done without
    actually contacting the network layer (the bytes should be




More information about the Commit-Watchers mailing list