[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>✓ Bubbles
<td>✓ 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>✓ 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>✓ 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