- From: poot <cvsmail@w3.org>
- Date: Sat, 28 Jun 2008 20:53:50 +0900 (JST)
- To: public-html-diffs@w3.org
Define what should happen when the base URL changes, keeping it as
lightweight as possible. (whatwg r1821) (changed by: Ian Hickson)
Diffs for this change per section:
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#defer
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#building0
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#overview
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#remove2
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#defaultDataProviderTableMapper
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#src1
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#type8
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#escape
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#opportunistically
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#close
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#alt
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#contents
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#absolute
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#htmldocument
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#"b"/
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#rowType1
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#apis-in
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#cache
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#styling
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#src11
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#htmlelement
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#updateready
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#poster
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#sandboxPluginEmbed
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#name3
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#document0
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#length8
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#icon1
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#addurl
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#innerhtml0
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#hyperlink0
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#adjust
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#urls
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1010.html#changes
Current content per affected section:
http://dev.w3.org/html5/spec/Overview.html#defer
http://dev.w3.org/html5/spec/Overview.html#building0
http://dev.w3.org/html5/spec/Overview.html#overview
http://dev.w3.org/html5/spec/Overview.html#remove2
http://dev.w3.org/html5/spec/Overview.html#defaultDataProviderTableMapper
http://dev.w3.org/html5/spec/Overview.html#src1
http://dev.w3.org/html5/spec/Overview.html#type8
http://dev.w3.org/html5/spec/Overview.html#escape
http://dev.w3.org/html5/spec/Overview.html#opportunistically
http://dev.w3.org/html5/spec/Overview.html#close
http://dev.w3.org/html5/spec/Overview.html#alt
http://dev.w3.org/html5/spec/Overview.html#contents
http://dev.w3.org/html5/spec/Overview.html#absolute
http://dev.w3.org/html5/spec/Overview.html#htmldocument
http://dev.w3.org/html5/spec/Overview.html#"b"/
http://dev.w3.org/html5/spec/Overview.html#rowType1
http://dev.w3.org/html5/spec/Overview.html#apis-in
http://dev.w3.org/html5/spec/Overview.html#cache
http://dev.w3.org/html5/spec/Overview.html#styling
http://dev.w3.org/html5/spec/Overview.html#src11
http://dev.w3.org/html5/spec/Overview.html#htmlelement
http://dev.w3.org/html5/spec/Overview.html#updateready
http://dev.w3.org/html5/spec/Overview.html#poster
http://dev.w3.org/html5/spec/Overview.html#sandboxPluginEmbed
http://dev.w3.org/html5/spec/Overview.html#name3
http://dev.w3.org/html5/spec/Overview.html#document0
http://dev.w3.org/html5/spec/Overview.html#length8
http://dev.w3.org/html5/spec/Overview.html#icon1
http://dev.w3.org/html5/spec/Overview.html#addurl
http://dev.w3.org/html5/spec/Overview.html#innerhtml0
http://dev.w3.org/html5/spec/Overview.html#hyperlink0
http://dev.w3.org/html5/spec/Overview.html#adjust
http://dev.w3.org/html5/spec/Overview.html#urls
http://dev.w3.org/html5/spec/Overview.html#changes
Previously published WD content per affected section:
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#defer
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#building0
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#overview
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#remove2
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#defaultDataProviderTableMapper
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#src1
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#type8
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#escape
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#opportunistically
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#close
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#alt
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#contents
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#absolute
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#htmldocument
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#"b"/
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#rowType1
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#apis-in
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#cache
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#styling
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#src11
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#htmlelement
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#updateready
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#poster
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#sandboxPluginEmbed
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#name3
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#document0
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#length8
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#icon1
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#addurl
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#innerhtml0
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#hyperlink0
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#adjust
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#urls
http://www.w3.org/TR/2008/WD-html5-20080610/single-page/#changes
Cumulative diff: http://people.w3.org/mike/diffs/html5/spec/Overview.diff.html
http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.1009&r2=1.1010&f=h
http://html5.org/tools/web-apps-tracker?from=1820&to=1821
===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.1009
retrieving revision 1.1010
diff -u -d -r1.1009 -r1.1010
--- Overview.html 27 Jun 2008 21:40:56 -0000 1.1009
+++ Overview.html 27 Jun 2008 21:50:50 -0000 1.1010
@@ -326,7 +326,10 @@
<li><a href="#resolving"><span class=secno>2.3.3 </span>Resolving
URLs</a>
- <li><a href="#interfaces"><span class=secno>2.3.4 </span>Interfaces
+ <li><a href="#dynamic"><span class=secno>2.3.4 </span>Dynamic changes
+ to base URLs</a>
+
+ <li><a href="#interfaces"><span class=secno>2.3.5 </span>Interfaces
for URL manipulation</a>
</ul>
@@ -530,16 +533,16 @@
<li><a href="#apis-in"><span class=secno>3.6 </span>APIs in HTML
documents</a>
- <li><a href="#dynamic"><span class=secno>3.7 </span>Dynamic markup
+ <li><a href="#dynamic0"><span class=secno>3.7 </span>Dynamic markup
insertion</a>
<ul class=toc>
<li><a href="#controlling"><span class=secno>3.7.1 </span>Controlling
the input stream</a>
- <li><a href="#dynamic0"><span class=secno>3.7.2 </span>Dynamic markup
+ <li><a href="#dynamic1"><span class=secno>3.7.2 </span>Dynamic markup
insertion in HTML</a>
- <li><a href="#dynamic1"><span class=secno>3.7.3 </span>Dynamic markup
+ <li><a href="#dynamic2"><span class=secno>3.7.3 </span>Dynamic markup
insertion in XML</a>
</ul>
</ul>
@@ -2780,50 +2783,6 @@
description of what HTML user agents need to implement to be compatible
with Web content.
- <p class=big-issue>we still need to define a cheap, interoperable mechanism
- for URL attributes and anything else that relies on xml:base and the base
- element to handle dynamic changes to those attributes and elements,
- possibly by defining some mechanism which causes changes to be ignored in
- some reliable way.</p>
- <!--
-On Sat, 1 Mar 2008, Anne van Kesteren wrote:
->
-> Note that the new base URI would only take effect once you actually did
-> something with a potentially affected object. For instance, <img> would
-> not start loading a new image if the base URI changes. <img>.src =
-> <img>.getAttribute("src") could start loading a new resource however if
-> the base URI changed since the initial load.
-
-On Sat, 1 Mar 2008, Jonas Sicking wrote:
->
-> Well, that was my intention with the initial proposal. But Hixie pointed
-> out that "did something" is a very hard thing to define. For example on
-> a <a href="...">, does the user hovering the node count? Does resizing
-> the window count? Does removing the node from the DOM and reinserting it
-> count?
-
-On Sat, 1 Mar 2008, Maciej Stachowiak wrote:
->
-> How about requiring that the base used is the one in effect when a given
-> relative URI is resolved, and define that URIs for resource-loading
-> elements are resolved at the time the relevant attribute is set or
-> parsed (but for hyperlinks, at the time it is dereferenced). That is
-> easy to implement, interoperable, and reasonably predictable. It makes
-> sense that changing <base> would affect future loads but not trigger
-> reloads of already loaded or already in progress resources.
-
-possibly "in the event that the xml:base or base href attribute is
-changed, user agents may, whenever convenient, pretend, for the sake
-of url resolution, that it has not changed"
-
-possibly define "base uri change notification behaviour" for all
-elements with URI attributes, and then define changing base href and
-xml:base to activate that behaviour on all elements in the affected
-subtree. Also make this algorithm get called when a node from another
-document is inserted into an HTML document. (we could define that
-you're allowed to do that, in the absence of a DOM Core update)
--->
-
<h4 id=terminology0><span class=secno>2.3.1 </span>Terminology</h4>
<p>A <dfn id=url>URL</dfn> is a string used to identify a resource. A <a
@@ -3032,7 +2991,8 @@
address</span><!-- XXXDOCURL --> as the <a href="#base-">base URL</a>
(thus, the <code><a href="#base">base</a></code> <code
title=attr-base-href><a href="#href">href</a></code> attribute isn't
- affect by <code title="">xml:base</code> attributes).
+ affect by <code title=attr-xml-base><a
+ href="#xmlbase">xml:base</a></code> attributes).
<li>
<p>The <a href="#document0">document base URL</a> is the result of the
@@ -3156,7 +3116,71 @@
href="#resolve" title="resolve a URL">resolving</a> it results in the same
URL without an error.
- <h4 id=interfaces><span class=secno>2.3.4 </span>Interfaces for URL
+ <h4 id=dynamic><span class=secno>2.3.4 </span>Dynamic changes to base URLs</h4>
+
+ <p>When an <code title=attr-xml-base><a href="#xmlbase">xml:base</a></code>
+ attribute changes, the attribute's element, and all descendant elements,
+ are <a href="#affected">affected by a base URL change</a>.
+
+ <p>When a document's <a href="#document0">document base URL</a> changes,
+ all elements in that document are <a href="#affected">affected by a base
+ URL change</a>.
+
+ <p>When an element is moved from one document to another, if the two
+ documents have different <a href="#document0" title="document base
+ URL">base URLs</a>, then that element and all its descendants are <a
+ href="#affected">affected by a base URL change</a>.
+
+ <p>When an element is <dfn id=affected>affected by a base URL change</dfn>,
+ it must act as described in the following list:
+
+ <dl class=switch>
+ <dt>If the element is a <a href="#hyperlinks" title=hyperlink>hyperlink
+ element</a>
+
+ <dd>
+ <p>If the <a href="#absolute">absolute URL</a> identified by the
+ hyperlink is being shown to the user, or if any data derived from that
+ URL is affecting the display, then the <code
+ title=attr-hyperlink-href><a href="#href6">href</a></code> attribute
+ should be <a href="#resolve" title="resolve a url">reresolved</a> and
+ the UI updated appropriately.</p>
+
+ <p class=example>For example, the CSS <code title="">:link</code>/<code
+ title="">:visited</code> pseudo-classes might have been affected.</p>
+
+ <p>If the hyperlink has a <code title=attr-hyperlink-ping><a
+ href="#ping">ping</a></code> attribute and its <a href="#absolute"
+ title="absolute URL">absolute URL(s)</a> are being shown to the user,
+ then the <code title=attr-hyperlink-ping><a href="#ping">ping</a></code>
+ attribute's tokens should be <a href="#resolve" title="resolve a
+ url">reresolved</a> and the UI updated appropriately.</p>
+
+ <dt>If the element is a <code><a href="#blockquote">blockquote</a></code>,
+ <code><a href="#q">q</a></code>, <code><a href="#ins">ins</a></code>, or
+ <code><a href="#del">del</a></code> element with a <code
+ title="">cite</code> attribute
+
+ <dd>
+ <p>If the <a href="#absolute">absolute URL</a> identified by the <code
+ title="">cite</code> attribute is being shown to the user, or if any
+ data derived from that URL is affecting the display, then the it should
+ be <a href="#resolve" title="resolve a url">reresolved</a> and the UI
+ updated appropriately.</p>
+
+ <dt>Otherwise
+
+ <dd>
+ <p>The element is not directly affected.</p>
+
+ <p class=example>Changing the base URL doesn't affect the image displayed
+ by <code><a href="#img">img</a></code> elements, although subsequent
+ accesses of the <code title=dom-img-src><a href="#src0">src</a></code>
+ DOM attribute from script will return a new <a href="#absolute">absolute
+ URL</a> that might no longer correspond to the image being shown.</p>
+ </dl>
+
+ <h4 id=interfaces><span class=secno>2.3.5 </span>Interfaces for URL
manipulation</h4>
<p>An interface that has a complement of <dfn id=url-decomposition>URL
@@ -6555,7 +6579,7 @@
NodeList <a href="#getelementsbyname" title=dom-document-getElementsByName>getElementsByName</a>(in DOMString elementName);
NodeList <a href="#getelementsbyclassname" title=dom-document-getElementsByClassName>getElementsByClassName</a>(in DOMString classNames);
- // <a href="#dynamic2">dynamic markup insertion</a>
+ // <a href="#dynamic3">dynamic markup insertion</a>
attribute DOMString <a href="#innerhtml" title=dom-innerHTML>innerHTML</a>;
<a href="#htmldocument">HTMLDocument</a> <a href="#open" title=dom-document-open>open</a>();
<a href="#htmldocument">HTMLDocument</a> <a href="#open" title=dom-document-open>open</a>(in DOMString type);
@@ -7131,7 +7155,7 @@
// <a href="#dom-tree0">DOM tree accessors</a>
NodeList <a href="#getelementsbyclassname0" title=dom-getElementsByClassName>getElementsByClassName</a>(in DOMString classNames);
- // <a href="#dynamic2">dynamic markup insertion</a>
+ // <a href="#dynamic3">dynamic markup insertion</a>
attribute DOMString <a href="#innerhtml" title=dom-innerHTML>innerHTML</a>;
// <span>metadata attributes</span>
@@ -8145,8 +8169,8 @@
rename takes place.<!-- XXX xref --></p>
</dl>
- <h3 id=dynamic><span class=secno>3.7 </span><dfn id=dynamic2>Dynamic markup
- insertion</dfn></h3>
+ <h3 id=dynamic0><span class=secno>3.7 </span><dfn id=dynamic3>Dynamic
+ markup insertion</dfn></h3>
<p>The <code title=dom-document-write><a
href="#document.write">document.write()</a></code> family of methods and
@@ -8343,7 +8367,7 @@
character</a> at the <a href="#insertion">insertion point</a> of the
parser's <a href="#input0">input stream</a>.
- <h4 id=dynamic0><span class=secno>3.7.2 </span>Dynamic markup insertion in
+ <h4 id=dynamic1><span class=secno>3.7.2 </span>Dynamic markup insertion in
HTML</h4>
<p>In HTML, the <dfn id=document.write...
@@ -8504,7 +8528,7 @@
http://trac.webkit.org/projects/webkit/browser/trunk/WebCore/html/HTMLTokenizer.cpp#L1742
-->
- <h4 id=dynamic1><span class=secno>3.7.3 </span>Dynamic markup insertion in
+ <h4 id=dynamic2><span class=secno>3.7.3 </span>Dynamic markup insertion in
XML</h4>
<p>In an XML context, the <dfn id=document.write0
@@ -10040,6 +10064,9 @@
title=attr-link-href><a href="#href1">href</a></code> content attribute,
or the empty string if that fails. For <code><a
href="#style1">style</a></code> elements, there is no location.
+ </dd>
+ <!-- note that this might not match the style
+ sheet URL, if the base URL has changed for instance -->
<dt>The intended destination media for style information (<code
title=dom-stylesheet-media>media</code> DOM attribute)
@@ -15463,6 +15490,8 @@
that is more powerful than <code title="">alt=""</code>, should be
included. This has not yet been considered.
+ <hr>
+
<p><strong>User agent requirements</strong>: When the <code
title=attr-img-alt><a href="#alt">alt</a></code> attribute is present and
its value is the empty string, the image supplements the surrounding
@@ -15492,12 +15521,19 @@
<code title=attr-img-alt><a href="#alt">alt</a></code> attribute, if any,
or nothing, if that attribute is empty or absent.
- <p>The <code title=attr-img-src><a href="#src">src</a></code> attribute, on
- setting, must cause the user agent to immediately begin to download the
- specified resource<!-- XXX xref what fetching means -->, unless the user
- agent cannot support images, or its support for images has been disabled.
+ <hr>
- <p>The download of the image must <a href="#delays">delay the <code
+ <p>When an <code><a href="#img">img</a></code> is created with a <code
+ title=attr-img-src><a href="#src">src</a></code> attribute, and whenever
+ the <code title=attr-img-src><a href="#src">src</a></code> attribute is
+ set subsequently, the user agent must fetch the resource specifed by the
+ <code title=attr-img-src><a href="#src">src</a></code> attribute's value,
+ unless the user agent cannot support images, or its support for images has
+ been disabled.</p>
+ <!-- Note how this does NOT happen when the base URL
+ changes. -->
+
+ <p>Fetching the image must <a href="#delays">delay the <code
title=event-load>load</code> event</a>.
<p class=warning>This, unfortunately, can be used to perform a rudimentary
@@ -15507,12 +15543,13 @@
title=origin>cross-origin</a> access control policies that mitigate this
attack.
- <p>Once the download has completed, if the image is a valid image, the user
- agent must <a href="#firing4">fire a <code title=event-load>load</code>
- event</a> on the <code><a href="#img">img</a></code> element (this happens
- after <code title=dom-img-complete><a href="#complete">complete</a></code>
- starts returning true). If the download fails or it completes but the
- image is not a valid or supported image, the user agent must <a
+ <p>Once the resource has been fetched, if the image is a valid image, the
+ user agent must <a href="#firing4">fire a <code
+ title=event-load>load</code> event</a> on the <code><a
+ href="#img">img</a></code> element (this happens after <code
+ title=dom-img-complete><a href="#complete">complete</a></code> starts
+ returning true). If the download fails or it completes but the image is
+ not a valid or supported image, the user agent must <a
href="#firing5">fire an <code title=event-error>error</code> event</a> on
the <code><a href="#img">img</a></code> element.
@@ -15526,6 +15563,8 @@
<p>User agents must not support non-image resources with the <code><a
href="#img">img</a></code> element.
+ <hr>
+
<p>The <code title=attr-hyperlink-usemap><a
href="#usemap1">usemap</a></code> attribute, if present, can indicate that
the image has an associated <a href="#image">image map</a>.
@@ -15736,10 +15775,13 @@
<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 <a
- href="#url">URL</a>, 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>.
+ must be <a href="#navigate" title=navigate>navigated</a> to the <a
+ href="#url">URL</a> given by that attribute's value, 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>
+ <!-- It doesn't happen when the base
+ URL is changed, though. -->
<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
@@ -16166,16 +16208,21 @@
attribute is present, and the element is not in a sandboxed browsing
context:
- <p>When the <code title=attr-embed-src><a href="#src3">src</a></code>
- attribute is set, user agents are expected to find an appropriate <a
+ <p>When the element is created with a <code title=attr-embed-src><a
+ href="#src3">src</a></code> attribute, and whenever the <code
+ title=attr-embed-src><a href="#src3">src</a></code> attribute is
+ subsequently set, user agents are expected to find an appropriate <a
href="#plugin">plugin</a> for the specified resource, based on the <a
href="#type-of" title=concept-embed-type>content's type</a>, and hand that
- <a href="#plugin">plugin</a> the content of the resource. If the <a
- href="#plugin">plugin</a> supports a scriptable interface, the <code><a
+ <a href="#plugin">plugin</a> the content of the resource, fetching it if
+ necessary. If the <a href="#plugin">plugin</a> supports a scriptable
+ interface, the <code><a
href="#htmlembedelement">HTMLEmbedElement</a></code> object representing
- the element should expose that interfaces.
+ the element should expose that interfaces.</p>
+ <!-- Note that this
+ doesn't happen when the base URL changes. -->
- <p>The download of the resource must <a href="#delays">delay the <code
+ <p>Fetching the resource must <a href="#delays">delay the <code
title=event-load>load</code> event</a>.
<p>The user agent should pass the names and values of all the attributes of
@@ -16318,7 +16365,9 @@
present, whenever the <code title=attr-object-type><a
href="#type6">type</a></code> attribute changes, the user agent must run
the following steps to determine what the <code><a
- href="#object">object</a></code> element represents:
+ href="#object">object</a></code> element represents:</p>
+ <!-- Changing the base
+ URL doesn't trigger this. -->
<ol>
<li>
@@ -16757,7 +16806,12 @@
<p>The <dfn id=poster title=attr-video-poster><code>poster</code></dfn>
attribute gives the address of an image file that the user agent can show
while no video data is available. The attribute, if present, must contain
- a <a href="#valid">valid URL</a>.
+ a <a href="#valid">valid URL</a>. If the specified resource is to be used,
+ it must be fetched when the element is created or when the <code
+ title=attr-video-poster><a href="#poster">poster</a></code> attribute is
+ set.</p>
+ <!-- So that it is unaffected by changes to the base URL.
+ -->
<p class=note>The image given by the <code title=attr-video-poster><a
href="#poster">poster</a></code> attribute is intended to be a <i>poster
@@ -17111,9 +17165,9 @@
<p>The <dfn id=type8 title=attr-source-type><code>type</code></dfn>
attribute gives the type of the <a href="#media10">media resource</a>, to
help the user agent determine if it can play this <a href="#media10">media
- resource</a> before downloading it. Its value must be a MIME type. The
- <code title="">codecs</code> parameter may be specified and might be
- necessary to specify exactly how the resource is encoded. <a
+ resource</a> before fetching it. Its value must be a MIME type. The <code
+ title="">codecs</code> parameter may be specified and might be necessary
+ to specify exactly how the resource is encoded. <a
href="#references">[RFC2046]</a> <a href="#references">[RFC4281]</a>
<div class=example>
@@ -24935,7 +24989,9 @@
title=attr-script-defer><a href="#defer">defer</a></code> attributes
dynamically has no direct effect; these attribute are only used at
specific times described below (namely, when the element is inserted into
- the document).
+ the document).</p>
+ <!-- by implication, changes to the base URL also
+ have no effect -->
<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
@@ -25547,7 +25603,8 @@
href="#src11">src</a></code> attribute specified has its <code
title=attr-event-source-src><a href="#src11">src</a></code> attribute
removed, the user agent must run the <a href="#remove1">remove declared
- event source</a> algorithm.
+ event source</a> algorithm.</p>
+ <!-- changing the base URL doesn't trigger these algorithms -->
<p>When it is created, an <code><a
href="#event-source">event-source</a></code> element must have its
@@ -26485,7 +26542,10 @@
first cell's element, if there is one and resolving its attribute is
successful. Otherwise, the <a href="#url">URL</a> of the row's image is
the empty string.</p>
-
+ <!-- note that if the base URL has changed,
+ this URL can be different than the one that the <img> element
+ fetched when it was created -->
+
<p><strong><code title=dom-provider-getRowMenu><a
href="#getrowmenu">getRowMenu(<var
title="">i</var>)</a></code></strong>: If the row's first cell's element
@@ -26739,7 +26799,11 @@
element in the filtered view that is a descendant of the row's element,
if such an element exists and resolving its attribute is successful.
Otherwise, it must return the empty string.</p>
-
+ <!--
+ note that if the base URL has changed, this URL can be different
+ than the one that the <img> element fetched when it was created
+ -->
+
<div class=example>
<p>In the following example, the row with path "1,0" returns
"http://example.com/a" as its image URL, and the other rows (including
@@ -27263,7 +27327,9 @@
href="#datagrid0">datagrid</a></code> element to obtain an <a
href="#absolute">absolute URL</a> identifying the image that represents
the row. If the method returns the empty string, null, or if the method
- is not defined, then the row has no associated image.
+ is not defined, then the row has no associated image.</dd>
+ <!--
+ changing the base URL doesn't change the image used later -->
<dt>To obtain a context menu appropriate for a particular row
@@ -28198,7 +28264,12 @@
<dd>Append the command to the menu. If the element is a <code><a
href="#command0">command</a></code> element with a <code
title=attr-command-default><a href="#default1">default</a></code>
- attribute, mark the command as being a default command.
+ attribute, mark the command as being a default command.</dd>
+ <!-- XXX if there's an
+ Icon URL for the command, it should be fetched, and then that image
+ should be associated with the command, such that each command only
+ has its image fetched once, to prevent changes to the base URL from
+ having effects after the image has been fetched once. -->
<dt>An <code><a href="#hr">hr</a></code> element
@@ -28386,7 +28457,9 @@
<dt><dfn id=icon1 title=command-facet-Icon>Icon</dfn>
<dd>An <a href="#absolute">absolute URL</a> identifying a graphical image
- that represents the action. A command might not have an Icon.
+ that represents the action. A command might not have an Icon.</dd>
+ <!--
+ changing base URLs might change the icon -->
<dt><dfn id=hidden1 title=command-facet-HiddenState>Hidden State</dfn>
@@ -32419,7 +32492,7 @@
caching namespace</a> when they were fetched, and were therefore cached
in the application cache.
- <dt><dfn id=dynamic3 title=concept-appcache-dynamic>Dynamic
+ <dt><dfn id=dynamic4 title=concept-appcache-dynamic>Dynamic
entries</dfn>
<dd>Resources that were added to the cache by the <code
@@ -32999,7 +33072,7 @@
<li>
<p>If this is an <a href="#upgrade"
title=concept-appcache-upgrade>upgrade attempt</a>, then add all the
- URLs of <a href="#dynamic3" title=concept-appcache-dynamic>dynamic
+ URLs of <a href="#dynamic4" title=concept-appcache-dynamic>dynamic
entries</a> in <var title="">cache</var> to <var title="">file
list</var>, each flagged with "dynamic entry".
@@ -33079,7 +33152,7 @@
<li>
<p>If the URL being processed was flagged as an "dynamic entry" in <var
title="">file list</var>, then categorize the entry as a <a
- href="#dynamic3" title=concept-appcache-dynamic>dynamic entry</a>.
+ href="#dynamic4" title=concept-appcache-dynamic>dynamic entry</a>.
</ol>
<li>
@@ -33365,7 +33438,7 @@
entry</a>, <a href="#fallback0" title=concept-appcache-fallback>a
fallback entry</a>, <a href="#opportunistically"
title=concept-appcache-oppcache>an opportunistically cached entry</a>,
- or a <a href="#dynamic3" title=concept-appcache-dynamic>dynamic
+ or a <a href="#dynamic4" title=concept-appcache-dynamic>dynamic
entry</a> in the <a href="#application0">application cache</a>, then
fetch the resource from the cache and abort these steps.
@@ -33513,14 +33586,14 @@
</dl>
<p>The <dfn id=length8 title=dom-appcache-length><code>length</code></dfn>
- attribute must return the number of <a href="#dynamic3"
+ attribute must return the number of <a href="#dynamic4"
title=concept-appcache-dynamic>dynamic entries</a> in the <a
href="#application0">application cache</a> with which the <code><a
href="#applicationcache">ApplicationCache</a></code> object is associated,
if any, and zero if the object is not associated with any application
cache.
- <p>The <a href="#dynamic3" title=concept-appcache-dynamic>dynamic
+ <p>The <a href="#dynamic4" title=concept-appcache-dynamic>dynamic
entries</a> in the <a href="#application0">application cache</a> are
ordered in the same order as they were added to the cache by the <code
title=dom-appcache-add><a href="#addurl">add()</a></code> method, with the
@@ -33530,7 +33603,7 @@
<p>The <dfn id=itemindex4 title=dom-appcache-item><code>item(<var
title="">index</var>)</code></dfn> method must return the <a
- href="#absolute">absolute URL</a> of the <a href="#dynamic3"
+ href="#absolute">absolute URL</a> of the <a href="#dynamic4"
title=concept-appcache-dynamic>dynamic entry</a> with index <var
title="">index</var> from the <a href="#application0">application
cache</a>, if one is associated with the <code><a
@@ -33560,7 +33633,7 @@
href="#application0">application cache</a> with which the <code><a
href="#applicationcache">ApplicationCache</a></code> object is
associated that has the address <var title="">url</var>, then ensure
- that entry is categorized as a <a href="#dynamic3"
+ that entry is categorized as a <a href="#dynamic4"
title=concept-appcache-dynamic>dynamic entry</a> and return and abort
these steps.
@@ -33589,7 +33662,7 @@
associated.</p>
<p>Add the fetched resource to the <a href="#application0">application
- cache</a> and categorize it as a <a href="#dynamic3"
+ cache</a> and categorize it as a <a href="#dynamic4"
title=concept-appcache-dynamic>dynamic entry</a> before letting any such
scripts resume.</p>
</ol>
@@ -33605,7 +33678,7 @@
<p>The <dfn id=remove2 title=dom-appcache-remove><code>remove(<var
title="">url</var>)</code></dfn> method must <a href="#resolve"
title="resolve a url">resolve</a> the <var title="">url</var> argument
- and, if that is successful, remove the <a href="#dynamic3"
+ and, if that is successful, remove the <a href="#dynamic4"
title=concept-appcache-dynamic>dynamic entry</a> categorization of any
entry whose address is the resulting <a href="#absolute">absolute URL</a>
in the <a href="#application0">application cache</a> with which the
@@ -36475,6 +36548,8 @@
XXX need a better way to end that sentence. It's what I mean, but
it sounds kooky. -->
</div>
+ <!-- resolving ping urls happens at audit time, so base URL changes
+ affect the values of ping attributes -->
<h4 id=linkTypes><span class=secno>5.11.3 </span>Link types</h4>
@@ -43007,7 +43082,7 @@
rest of the specification.
<p>In the common case, the data handled by the tokenisation stage comes
- from the network, but <a href="#dynamic2" title="dynamic markup
+ from the network, but <a href="#dynamic3" title="dynamic markup
insertion">it can also come from script</a>, e.g. using the <code
title=dom-document-write-HTML><a
href="#document.write...">document.write()</a></code> API.
@@ -44251,7 +44326,7 @@
construction stage can affect the state of the <a href="#content3">content
model flag</a>, and can insert additional characters into the stream. (For
example, the <code><a href="#script1">script</a></code> element can result
- in scripts executing and using the <a href="#dynamic2">dynamic markup
+ in scripts executing and using the <a href="#dynamic3">dynamic markup
insertion</a> APIs to insert characters into the stream being tokenised.)
<p>When a start tag token is emitted with its <i>self-closing flag</i> set,
@@ -46287,7 +46362,7 @@
<td> <code title="">base</code>
- <td> <a href="#xml-namespace">XML namespace</a>
+ <td> <a href="#xml-namespace">XML namespace</a> <!-- attr-xml-base -->
<tr>
<td> <code title="">xml:lang</code>
Received on Saturday, 28 June 2008 11:54:31 UTC