[html5] r7795 - [e] (0) Update integration with URL spec. Fixing https://www.w3.org/Bugs/Public/ [...]

whatwg at whatwg.org whatwg at whatwg.org
Tue Apr 9 11:18:33 PDT 2013


Author: ianh
Date: 2013-04-09 11:18:32 -0700 (Tue, 09 Apr 2013)
New Revision: 7795

Modified:
   complete.html
   index
   source
Log:
[e] (0) Update integration with URL spec.
Fixing https://www.w3.org/Bugs/Public/show_bug.cgi?id=20072
Affected topics: DOM APIs, HTML, HTML Syntax and Parsing, Offline Web Applications, Security, Workers

Modified: complete.html
===================================================================
--- complete.html	2013-04-08 20:41:30 UTC (rev 7794)
+++ complete.html	2013-04-09 18:18:32 UTC (rev 7795)
@@ -248,7 +248,7 @@
 
   <header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
    <hgroup><h1 class=allcaps>HTML</h1>
-    <h2 class="no-num no-toc">Living Standard — Last Updated 8 April 2013</h2>
+    <h2 class="no-num no-toc">Living Standard — Last Updated 9 April 2013</h2>
    </hgroup><dl><dt><strong>Web developer edition:</strong></dt>
     <dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
     <dt>Multiple-page version:</dt>
@@ -1997,7 +1997,7 @@
   ways:</p>
 
   <pre>var a = <a href=#document title=Document>document</a>.<a href=#dom-document-links title=dom-document-links>links</a>[0]; // obtain the first link in the document
-a.<a href=#dom-a-href title=dom-a-href>href</a> = 'sample.html'; // change the destination URL of the link
+a.<a href=#dom-url-href title=dom-url-href>href</a> = 'sample.html'; // change the destination URL of the link
 a.<a href=#dom-url-protocol title=dom-url-protocol>protocol</a> = 'https'; // change just the scheme part of the URL
 a.setAttribute('href', 'http://example.com/'); // change the content attribute directly</pre>
 
@@ -3432,17 +3432,20 @@
      <li>The <dfn id=concept-url-query title=concept-url-query>query</dfn> component of a <a href=#parsed-url>parsed URL</a>
      <li>The <dfn id=concept-url-fragment title=concept-url-fragment>fragment</dfn> component of a <a href=#parsed-url>parsed URL</a>
      <li><dfn id=concept-url-parse-error title=concept-url-parse-error>Parse errors</dfn> from the <a href=#url-parser>URL parser</a>
-     <li>The <dfn id=url-serializer>URL serializer</dfn>
+     <li>The <dfn id=concept-url-serializer title=concept-url-serializer>URL serializer</dfn>
      <li><dfn id=default-encode-set>Default encode set</dfn>
      <li><dfn id=percent-encode>Percent encode</dfn>
      <li><dfn id=utf-8-percent-encode>UTF-8 percent encode</dfn>
      <li><dfn id=urlutils><code>URLUtils</code></dfn> interface
      <li><dfn id=urlutilsreadonly><code>URLUtilsReadOnly</code></dfn> interface
+     <li><dfn id=dom-url-href title=dom-url-href><code>href</code> attribute</dfn>
      <li><dfn id=dom-url-protocol title=dom-url-protocol><code>protocol</code> attribute</dfn>
-     <li><dfn id=concept-uu-base title=concept-uu-base>Base</dfn> for <code><a href=#urlutils>URLUtils</a></code>
-     <li><dfn id=concept-uu-input title=concept-uu-input>Input</dfn> for <code><a href=#urlutils>URLUtils</a></code>
-     <li><dfn id=concept-uu-query-encoding title=concept-uu-query-encoding>Query encoding</dfn> for <code><a href=#urlutils>URLUtils</a></code>
-     <li><dfn id=concept-uu-update title=concept-uu-update>Update steps</dfn> for <code><a href=#urlutils>URLUtils</a></code>
+     <li>The <dfn id=concept-uu-get-the-base title=concept-uu-get-the-base>get the base</dfn> hook for <code><a href=#urlutils>URLUtils</a></code>
+     <li>The <dfn id=concept-uu-update title=concept-uu-update>update steps</dfn> hook for <code><a href=#urlutils>URLUtils</a></code>
+     <li>The <dfn id=concept-uu-set-the-input title=concept-uu-set-the-input>set the input</dfn> algorithm for <code><a href=#urlutils>URLUtils</a></code>
+     <li>The <dfn id=concept-uu-query-encoding title=concept-uu-query-encoding>query encoding</dfn> of an <code><a href=#urlutils>URLUtils</a></code> object
+     <li>The <dfn id=concept-uu-input title=concept-uu-input>input</dfn> of an <code><a href=#urlutils>URLUtils</a></code> object
+     <li>The <dfn id=concept-uu-url title=concept-uu-url>url</dfn> of an <code><a href=#urlutils>URLUtils</a></code> object
     </ul></dd>
 
 
@@ -6565,7 +6568,7 @@
 
    <li><p>Let <var title="">parsed URL</var> be the result of the <a href=#url-parser>URL parser</a>.</li>
 
-   <li><p>Let <var title="">serialized URL</var> be the result of apply the <a href=#url-serializer>URL
+   <li><p>Let <var title="">serialized URL</var> be the result of apply the <a href=#concept-url-serializer title=concept-url-serializer>URL
    serializer</a> to <var title="">parsed URL</var>.</li>
 
    <li><p>Return <var title="">serialized URL</var> as the <dfn id=resulting-absolute-url>resulting absolute URL</dfn> and
@@ -6739,14 +6742,14 @@
 
    <li>
 
-    <p>Apply the <a href=#url-parser>URL parser</a> to <var title="">referrer</var> and let <var title="">parsed referrer</var> be the <a href=#resulting-parsed-url>resulting parsed URL</a>.</p>
+    <p><i>Clean referrer</i>: Apply the <a href=#url-parser>URL parser</a> to <var title="">referrer</var> and let <var title="">parsed referrer</var> be the <a href=#resulting-parsed-url>resulting parsed URL</a>.</p>
 
    </li>
 
    <li>
 
-    <p><i>Clean referrer</i>: Let <var title="">referrer</var> be the result of applying the
-    <a href=#url-serializer>URL serializer</a> to <var title="">parsed referrer</var>, with the <i>exclude fragment
+    <p>Let <var title="">referrer</var> be the result of applying the
+    <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a> to <var title="">parsed referrer</var>, with the <i>exclude fragment
     flag</i> set.</p> <!-- RFC2616 says "The URI MUST NOT include a fragment." (section 14.36) -->
 
    </li>
@@ -8327,7 +8330,7 @@
 [OverrideBuiltins]
 partial /*sealed*/ interface <dfn id=document>Document</dfn> {
   // <a href=#resource-metadata-management>resource metadata management</a>
-  [PutForwards=<a href=#dom-location-href title=dom-location-href>href</a>, Unforgeable] readonly attribute <a href=#location>Location</a>? <a href=#dom-document-location title=dom-document-location>location</a>;
+  [PutForwards=<a href=#dom-url-href title=dom-url-href>href</a>, Unforgeable] readonly attribute <a href=#location>Location</a>? <a href=#dom-document-location title=dom-document-location>location</a>;
            attribute DOMString <a href=#dom-document-domain title=dom-document-domain>domain</a>;
   readonly attribute DOMString <a href=#dom-document-referrer title=dom-document-referrer>referrer</a>;
            attribute DOMString <a href=#dom-document-cookie title=dom-document-cookie>cookie</a>;
@@ -9503,7 +9506,7 @@
    <code><a href=#the-abbr-element>abbr</a></code>, or <code><a href=#the-title-element>title</a></code> element, then: if the element has a <code title="">title</code> attribute, <!-- not attr-title --> return the value of that attribute,
    otherwise, return the empty string.</li> <!-- note: <code>input</code> doesn't do this -->
 
-   <li><p>Otherwise, if the element has a <code title="attr-title=">title</code> attribute, then
+   <li><p>Otherwise, if the element has a <code title=attr-title><a href=#attr-title>title</a></code> attribute, then
    return its value.</li>
 
    <li><p>Otherwise, if the element has a parent element, then return the parent element's
@@ -19004,7 +19007,6 @@
    <dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
    <dd>
 <pre class=idl>interface <dfn id=htmlanchorelement>HTMLAnchorElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-  stringifier attribute DOMString <a href=#dom-a-href title=dom-a-href>href</a>;
            attribute DOMString <a href=#dom-a-target title=dom-a-target>target</a>;
            attribute DOMString <a href=#dom-a-download title=dom-a-download>download</a>;
            attribute DOMString <a href=#dom-a-ping title=dom-a-ping>ping</a>;
@@ -19115,7 +19117,7 @@
 
   </dl><div class=impl>
 
-  <p>The IDL attributes <dfn id=dom-a-href title=dom-a-href><code>href</code></dfn>, <dfn id=dom-a-download title=dom-a-download><code>download</code></dfn>, <dfn id=dom-a-ping title=dom-a-ping><code>ping</code></dfn>, <dfn id=dom-a-target title=dom-a-target><code>target</code></dfn>,
+  <p>The IDL attributes <dfn id=dom-a-download title=dom-a-download><code>download</code></dfn>, <dfn id=dom-a-ping title=dom-a-ping><code>ping</code></dfn>, <dfn id=dom-a-target title=dom-a-target><code>target</code></dfn>,
   <dfn id=dom-a-rel title=dom-a-rel><code>rel</code></dfn>, <dfn id=dom-a-hreflang title=dom-a-hreflang><code>hreflang</code></dfn>, and <dfn id=dom-a-type title=dom-a-type><code>type</code></dfn>, must <a href=#reflect>reflect</a> the respective content
   attributes of the same name.</p>
 
@@ -19126,13 +19128,24 @@
   same value as the <code><a href=#textcontent>textContent</a></code> IDL attribute on the element, and on setting, must act
   as if the <code><a href=#textcontent>textContent</a></code> IDL attribute on the element had been set to the new value.</p>
 
-  <p>The <code><a href=#the-a-element>a</a></code> element also supports the <code><a href=#urlutils>URLUtils</a></code> interface. The <a href=#concept-uu-input title=concept-uu-input>input</a> is the value of the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute, if there is such an attribute, or the
-  empty string otherwise; the <a href=#concept-uu-base title=concept-uu-base>base</a> is <a href="#the-element's-base-url">the element's base
-  URL</a>; the <a href=#concept-uu-query-encoding title=concept-uu-query-encoding>query encoding</a> being the
-  <a href="#document's-character-encoding">document's character encoding</a>; and the <a href=#concept-uu-update title=concept-uu-update>update
-  steps</a> being the same as setting the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>
-  content attribute to the new output value.</p>
+  <hr><!-- concept-uu --><p>The <code><a href=#the-a-element>a</a></code> element also supports the <code><a href=#urlutils>URLUtils</a></code> interface. <a href=#refsURL>[URL]</a></p>
 
+  <p>When the element is created, and whenever the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute is set, changed, or removed, the user
+  agent must invoke the element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-set-the-input title=concept-uu-set-the-input>set the input</a> algorithm with the value of the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute, if any, or the empty string otherwise,
+  as the given value.</p>
+
+  <p>The element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-get-the-base title=concept-uu-get-the-base>get the
+  base</a> algorithm must simply return <a href="#the-element's-base-url">the element's base URL</a>.</p>
+
+  <p>The element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-query-encoding title=concept-uu-query-encoding>query
+  encoding</a> is the <a href="#document's-character-encoding">document's character encoding</a>.</p>
+
+  <p>When the element's <code><a href=#urlutils>URLUtils</a></code> interface invokes its <a href=#concept-uu-update title=concept-uu-update>update steps</a>, if the element's <code><a href=#urlutils>URLUtils</a></code> interface's
+  <a href=#concept-uu-url title=concept-uu-url>url</a> is not null, then the user agent must set the element's
+  <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute to the <a href=#concept-url-serializer title=concept-url-serializer>serialization</a> of the element's <code><a href=#urlutils>URLUtils</a></code>
+  interface's <a href=#concept-uu-url title=concept-uu-url>url</a>; otherwise, it must set the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute to the element's <code><a href=#urlutils>URLUtils</a></code>
+  interface's <a href=#concept-uu-input title=concept-uu-input>input</a>.</p>
+
   </div>
 <!--TOPIC:HTML-->
 
@@ -38934,7 +38947,6 @@
            attribute DOMString <a href=#dom-area-alt title=dom-area-alt>alt</a>;
            attribute DOMString <a href=#dom-area-coords title=dom-area-coords>coords</a>;
            attribute DOMString <a href=#dom-area-shape title=dom-area-shape>shape</a>;
-  stringifier attribute DOMString <a href=#dom-area-href title=dom-area-href>href</a>;
            attribute DOMString <a href=#dom-area-target title=dom-area-target>target</a>;
            attribute DOMString <a href=#dom-area-download title=dom-area-download>download</a>;
            attribute DOMString <a href=#dom-area-ping title=dom-area-ping>ping</a>;
@@ -39087,7 +39099,7 @@
    the <code><a href=#the-area-element>area</a></code> element, if any, and as determined by the <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute and any expressed user
    preference.</li>
 
-  </ol><p>The IDL attributes <dfn id=dom-area-alt title=dom-area-alt><code>alt</code></dfn>, <dfn id=dom-area-coords title=dom-area-coords><code>coords</code></dfn>, <dfn id=dom-area-target title=dom-area-target><code>target</code></dfn>, <dfn id=dom-area-download title=dom-area-download><code>download</code></dfn>, <dfn id=dom-area-href title=dom-area-href><code>href</code></dfn>, <dfn id=dom-area-ping title=dom-area-ping><code>ping</code></dfn>, <dfn id=dom-area-rel title=dom-area-rel><code>rel</code></dfn>,
+  </ol><p>The IDL attributes <dfn id=dom-area-alt title=dom-area-alt><code>alt</code></dfn>, <dfn id=dom-area-coords title=dom-area-coords><code>coords</code></dfn>, <dfn id=dom-area-target title=dom-area-target><code>target</code></dfn>, <dfn id=dom-area-download title=dom-area-download><code>download</code></dfn>, <dfn id=dom-area-ping title=dom-area-ping><code>ping</code></dfn>, <dfn id=dom-area-rel title=dom-area-rel><code>rel</code></dfn>,
   <dfn id=dom-area-hreflang title=dom-area-hreflang><code>hreflang</code></dfn>, and <dfn id=dom-area-type title=dom-area-type><code>type</code></dfn>, each must <a href=#reflect>reflect</a> the respective
   content attributes of the same name.</p>
 
@@ -39097,13 +39109,24 @@
   <p>The IDL attribute <dfn id=dom-area-rellist title=dom-area-rellist><code>relList</code></dfn> must
   <a href=#reflect>reflect</a> the <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code> content attribute.</p>
 
-  <p>The <code><a href=#the-area-element>area</a></code> element also supports the <code><a href=#urlutils>URLUtils</a></code> interface. The <a href=#concept-uu-input title=concept-uu-input>input</a> is
-  the value of the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute, if there is such an
-  attribute, or the empty string otherwise; the <a href=#concept-uu-base title=concept-uu-base>base</a>
-  is <a href="#the-element's-base-url">the element's base URL</a>; the <a href=#concept-uu-query-encoding title=concept-uu-query-encoding>query encoding</a>
-  being the <a href="#document's-character-encoding">document's character encoding</a>; and the <a href=#concept-uu-update title=concept-uu-update>update steps</a> being the same as setting the element's
-  <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute to the new output value.</p>
+  <hr><!-- concept-uu --><p>The <code><a href=#the-area-element>area</a></code> element also supports the <code><a href=#urlutils>URLUtils</a></code> interface. <a href=#refsURL>[URL]</a></p>
 
+  <p>When the element is created, and whenever the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute is set, changed, or removed, the user
+  agent must invoke the element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-set-the-input title=concept-uu-set-the-input>set the input</a> algorithm with the value of the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute, if any, or the empty string otherwise,
+  as the given value.</p>
+
+  <p>The element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-get-the-base title=concept-uu-get-the-base>get the
+  base</a> algorithm must simply return <a href="#the-element's-base-url">the element's base URL</a>.</p>
+
+  <p>The element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-query-encoding title=concept-uu-query-encoding>query
+  encoding</a> is the <a href="#document's-character-encoding">document's character encoding</a>.</p>
+
+  <p>When the element's <code><a href=#urlutils>URLUtils</a></code> interface invokes its <a href=#concept-uu-update title=concept-uu-update>update steps</a>, if the element's <code><a href=#urlutils>URLUtils</a></code> interface's
+  <a href=#concept-uu-url title=concept-uu-url>url</a> is not null, then the user agent must set the element's
+  <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute to the <a href=#concept-url-serializer title=concept-url-serializer>serialization</a> of the element's <code><a href=#urlutils>URLUtils</a></code>
+  interface's <a href=#concept-uu-url title=concept-uu-url>url</a>; otherwise, it must set the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute to the element's <code><a href=#urlutils>URLUtils</a></code>
+  interface's <a href=#concept-uu-input title=concept-uu-input>input</a>.</p>
+
   </div>
 
 
@@ -55066,7 +55089,7 @@
       component to <var title="">query</var>.</p>
 
       <p>Let <var title="">destination</var> be a new <a href=#url>URL</a> formed by applying the
-      <a href=#url-serializer>URL serializer</a> algorithm to <var title="">parsed action</var>.</p>
+      <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a> algorithm to <var title="">parsed action</var>.</p>
 
       <p><a href=#navigate>Navigate</a><!--DONAV form--> <var title="">target browsing context</var> to <var title="">destination</var>. If <var title="">replace</var> is true, then <var title="">target
       browsing context</var> must be navigated with <a href=#replacement-enabled>replacement enabled</a>.</p>
@@ -57958,8 +57981,7 @@
     the browsing context name. If these rules result in the creation of a new <a href=#browsing-context>browsing
     context</a>, set <var title="">replace</var> to true.</p> <!-- c.f. concept-fs-target -->
 
-    <p>Otherwise, let <var title=">target</var> be the <span>browsing context</span> that <var
-    title=">subject</var> itself is in.</p>
+    <p>Otherwise, let <var title="">target</var> be the <a href=#browsing-context>browsing context</a> that <var title="">subject</var> itself is in.</p>
 
    </li>
 
@@ -64777,7 +64799,7 @@
   [Replaceable] readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-self title=dom-self>self</a>;
   [Unforgeable] readonly attribute <a href=#document>Document</a> <a href=#dom-document-0 title=dom-document>document</a>;
            attribute DOMString <a href=#dom-name title=dom-name>name</a>; <!-- not [Replaceable] per WebKit and IE8 -->
-  [PutForwards=<a href=#dom-location-href title=dom-location-href>href</a>, Unforgeable] readonly attribute <a href=#location>Location</a> <a href=#dom-location title=dom-location>location</a>;
+  [PutForwards=<a href=#dom-url-href title=dom-url-href>href</a>, Unforgeable] readonly attribute <a href=#location>Location</a> <a href=#dom-location title=dom-location>location</a>;
   readonly attribute <a href=#history-0>History</a> <a href=#dom-history title=dom-history>history</a>;
   [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-locationbar title=dom-window-locationbar>locationbar</a>;
   [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-menubar title=dom-window-menubar>menubar</a>;
@@ -66298,7 +66320,7 @@
   algorithms defined in this specification, e.g. during <a href=#traverse-the-history title="traverse the history">session history traversal</a>.</p>
 
   <p class=note>The <a href=#current-entry>current entry</a> is usually an entry
-  for the <a href=#dom-location-href title=dom-location-href>location</a> of the
+  for the <a href="#the-document's-address" title="the document's address">address</a> of the
   <code><a href=#document>Document</a></code>. However, it can also be one of the entries
   for <a href=#state-object title="state object">state objects</a> added to the
   history by that document.</p>
@@ -66776,27 +66798,16 @@
   context</a>'s session history to be changed, by adding or replacing entries in the <code title=dom-history><a href=#dom-history>history</a></code> object.</p>
 
   <pre class=idl>[Unforgeable] interface <dfn id=location>Location</dfn> {
-  stringifier attribute DOMString <a href=#dom-location-href title=dom-location-href>href</a>;
   void <a href=#dom-location-assign title=dom-location-assign>assign</a>(DOMString url);
   void <a href=#dom-location-replace title=dom-location-replace>replace</a>(DOMString url);
   void <a href=#dom-location-reload title=dom-location-reload>reload</a>();
 };
 <a href=#location>Location</a> implements <a href=#urlutils>URLUtils</a>;</pre>
 
-  <dl class=domintro><dt><var title="">location</var> . <code title=dom-location-href><a href=#dom-location-href>href</a></code> [ = <var title="">value</var> ]</dt>
+  <dl class=domintro><dt><var title="">location</var> . <code title=dom-location-assign><a href=#dom-location-assign>assign</a></code>(<var title="">url</var>)</dt>
 
    <dd>
 
-    <p>Returns the current page's location.</p>
-
-    <p>Can be set, to navigate to another page.</p>
-
-   </dd>
-
-   <dt><var title="">location</var> . <code title=dom-location-assign><a href=#dom-location-assign>assign</a></code>(<var title="">url</var>)</dt>
-
-   <dd>
-
     <p>Navigates to the given page.</p>
 
    </dd>
@@ -66822,14 +66833,6 @@
   <p>The <i>relevant <code><a href=#document>Document</a></code></i> is the <code><a href=#location>Location</a></code> object's associated
   <code><a href=#document>Document</a></code> object's <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active document</a>.</p>
 
-  <p>The <dfn id=dom-location-href title=dom-location-href><code>href</code></dfn> attribute must return <a href="#the-document's-address" title="the document's address">the address</a> of the <i>relevant <code><a href=#document>Document</a></code></i>, as
-  an <a href=#absolute-url>absolute URL</a>.</p>
-
-  <p>On setting, if the <code><a href=#location>Location</a></code> object's <i>relevant <code><a href=#document>Document</a></code></i> has
-  <a href=#completely-loaded>completely loaded</a>, then the user agent must act as if the <code title=dom-location-assign><a href=#dom-location-assign>assign()</a></code> method had been called with the new value as its
-  argument. Otherwise, the user agent must act as if the <code title=dom-location-replace><a href=#dom-location-replace>replace()</a></code> method had been called with the new value as its
-  argument.</p> <!--DONAV location.href, defined in terms of the paragraphs below-->
-
   <p>When the <dfn id=dom-location-assign title=dom-location-assign><code>assign(<var title="">url</var>)</code></dfn>
   method is invoked, the UA must <a href=#resolve-a-url title="resolve a url">resolve</a> the argument, relative
   to the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base URL">base URL</a>, and if that is
@@ -66899,18 +66902,50 @@
   user agent may instead perform <a href=#an-overridden-reload>an overridden reload</a> rather than the navigation
   described in this paragraph.</p>
 
-  <p>The <code><a href=#location>Location</a></code> interface also supports the <code><a href=#urlutils>URLUtils</a></code> interface. <span class=impl>The <a href=#concept-uu-input title=concept-uu-input>input</a> is <a href="#the-document's-address" title="the document's
-  address">the address</a> of the <i>relevant <code><a href=#document>Document</a></code></i> (same as the <code title=dom-location-href><a href=#dom-location-href>href</a></code> attribute), as an <a href=#absolute-url>absolute URL</a>; the <a href=#concept-uu-base title=concept-uu-base>base</a> is the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base
-  URL">base URL</a> (which can be different each time members on the interface are invoked); the
-  <a href=#concept-uu-query-encoding title=concept-uu-query-encoding>query encoding</a> is the <a href="#document's-character-encoding">document's character
-  encoding</a>; and the <a href=#concept-uu-update title=concept-uu-update>update steps</a> are the same as
-  setting the <code title=dom-location-href><a href=#dom-location-href>href</a></code> attribute to the new output
-  value.</span></p>
+  <hr></div>
 
-  </div>
+  <!-- concept-uu -->
 
+  <p>The <code><a href=#location>Location</a></code> interface also supports the <code><a href=#urlutils>URLUtils</a></code> interface. <a href=#refsURL>[URL]</a></p>
 
+  <div class=impl>
 
+  <p>When the object is created, and whenever the <a href="#the-document's-address" title="the document's address">the
+  address</a> of the <i>relevant <code><a href=#document>Document</a></code></i> changes, the user agent must invoke
+  the element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-set-the-input title=concept-uu-set-the-input>set the
+  input</a> algorithm with <a href="#the-document's-address" title="the document's address">the address</a> of the
+  <i>relevant <code><a href=#document>Document</a></code></i> as the given value.</p>
+
+  <p>The element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-get-the-base title=concept-uu-get-the-base>get the
+  base</a> algorithm must return the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base
+  URL">base URL</a>, if there is one, or null otherwise.</p>
+
+  <p>The element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-query-encoding title=concept-uu-query-encoding>query
+  encoding</a> is the <a href="#document's-character-encoding">document's character encoding</a>.</p>
+
+  <p>When the element's <code><a href=#urlutils>URLUtils</a></code> interface invokes its <a href=#concept-uu-update title=concept-uu-update>update steps</a>, the user agent must run the following steps:</p>
+
+  <ol><li>
+
+    <p>If the object's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-url title=concept-uu-url>url</a> is
+    not null, then let <var title="">URL</var> be the <a href=#concept-url-serializer title=concept-url-serializer>serialization</a> of the object's <code><a href=#urlutils>URLUtils</a></code>
+    interface's <a href=#concept-uu-url title=concept-uu-url>url</a>.</p>
+
+    <p>Otherwise, let <var title="">URL</var> be the object's <code><a href=#urlutils>URLUtils</a></code> interface's
+    <a href=#concept-uu-input title=concept-uu-input>input</a>.</p>
+
+   </li>
+
+   <li><p>If the <code><a href=#location>Location</a></code> object's <i>relevant <code><a href=#document>Document</a></code></i> has
+   <a href=#completely-loaded>completely loaded</a>, then act as if the <code title=dom-location-assign><a href=#dom-location-assign>assign()</a></code> method had been called with the new value as its
+   argument. Otherwise, act as if the <code title=dom-location-replace><a href=#dom-location-replace>replace()</a></code> method had
+   been called with the new value as its argument.</li>
+   <!--DONAV location.href, defined in terms of the paragraphs far above-->
+
+  </ol></div>
+
+
+
 <!--ADD-TOPIC:Security-->
   <div class=impl>
 
@@ -66923,7 +66958,7 @@
   <a href=#active-document>active document</a>'s <a href=#effective-script-origin>effective script origin</a>, with the following
   exceptions:</p>
 
-  <ul><li>The <code title=dom-location-href><a href=#dom-location-href>href</a></code> setter, if the <a href=#entry-script>entry script</a>'s
+  <ul><li>The <code title=dom-url-href><a href=#dom-url-href>href</a></code> setter, if the <a href=#entry-script>entry script</a>'s
    <a href="#script's-browsing-context">script's browsing context</a> is <a href=#allowed-to-navigate>allowed to navigate</a> the <a href=#browsing-context>browsing
    context</a> with which the <code><a href=#location>Location</a></code> object is associated
 
@@ -67580,7 +67615,7 @@
   an <code><a href=#the-html-element>html</a></code> element with an attribute <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code>
   whose value is not the empty string, then, as soon as the element is <a href=#insert-an-element-into-a-document title="insert an
   element into a document">inserted into the document</a>, the user agent must <a href=#resolve-a-url title="resolve a url">resolve</a> the value of that attribute relative to that element, and if
-  that is successful, must apply the <a href=#url-serializer>URL serializer</a> algorithm to the resulting
+  that is successful, must apply the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a> algorithm to the resulting
   <a href=#parsed-url>parsed URL</a> with the <i>exclude fragment flag</i> set to obtain <var title="">manifest
   URL</var>, and then run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
   algorithm</a> with <var title="">manifest URL</var> as the manifest URL, passing in the
@@ -69090,7 +69125,7 @@
   <p><a href=#relative-url title="relative URL">Relative URLs</a> must be given relative to the manifest's own
   URL. All URLs in the manifest must have the same <a href=#concept-url-scheme title=concept-url-scheme>scheme</a> as
   the manifest itself (either explicitly or implicitly, through the use of <a href=#relative-url title="relative
-  url">relative URLs</a>). <a href=#refsURL>[URL]</a></p>
+  URL">relative URLs</a>). <a href=#refsURL>[URL]</a></p>
 
   <p>URLs in manifests must not have fragment identifiers (i.e. the U+0023 NUMBER SIGN character
   isn't allowed in URLs in manifests).</p>
@@ -69241,7 +69276,7 @@
       <p>If the resulting <a href=#parsed-url>parsed URL</a> has a different <a href=#concept-url-scheme title=concept-url-scheme>scheme</a> component than <var title="">base URL</var> (the
       manifest's URL), then jump back to the step labeled "start of line".</p>
 
-      <p>Let <var title="">new URL</var> be the result of applying the <a href=#url-serializer>URL serializer</a>
+      <p>Let <var title="">new URL</var> be the result of applying the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a>
       algorithm to the resulting <a href=#parsed-url>parsed URL</a>, with the <i>exclude fragment flag</i>
       set.</p>
 
@@ -69264,11 +69299,11 @@
       <var title="">part two</var> does not have the <a href=#same-origin>same origin</a> as the manifest's URL,
       then jump back to the step labeled "start of line".</p> <!-- SECURITY -->
 
-      <p>Let <var title="">part one</var> be the result of applying the <a href=#url-serializer>URL serializer</a>
+      <p>Let <var title="">part one</var> be the result of applying the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a>
       algorithm to the first resulting <a href=#parsed-url>parsed URL</a>, with the <i>exclude fragment
       flag</i> set.</p>
 
-      <p>Let <var title="">part two</var> be the result of applying the <a href=#url-serializer>URL serializer</a>
+      <p>Let <var title="">part two</var> be the result of applying the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a>
       algorithm to the second resulting <a href=#parsed-url>parsed URL</a>, with the <i>exclude fragment
       flag</i> set.</p>
 
@@ -69298,7 +69333,7 @@
       <p>If the resulting <a href=#parsed-url>parsed URL</a> has a different <a href=#concept-url-scheme title=concept-url-scheme>scheme</a> component than <var title="">base URL</var> (the
       manifest's URL), then jump back to the step labeled "start of line".</p>
 
-      <p>Let <var title="">new URL</var> be the result of applying the <a href=#url-serializer>URL serializer</a>
+      <p>Let <var title="">new URL</var> be the result of applying the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a>
       algorithm to the resulting <a href=#parsed-url>parsed URL</a>, with the <i>exclude fragment flag</i>
       set.</p>
 
@@ -69577,7 +69612,7 @@
       algorithm to the resource's <a href=#url>URL</a> results in a <a href=#parsed-url>parsed URL</a> that has a
       non-null <a href=#concept-url-fragment title=concept-url-fragment>fragment</a> component, the <a href=#url>URL</a>
       used for the entry in <var title="">cache</var> must instead be the <a href=#absolute-url>absolute URL</a>
-      obtained from applying the <a href=#url-serializer>URL serializer</a> algorith, to the <a href=#parsed-url>parsed
+      obtained from applying the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a> algorith, to the <a href=#parsed-url>parsed
       URL</a> with the <i>exclude fragment flag</i> set (application caches never include
       fragment identifiers).</p>
 
@@ -70725,7 +70760,7 @@
    <dd>
 
     <p>A <a href=#url>URL</a>, set when the script is created, used to resolve <a href=#relative-url title="relative
-    url">relative URLs</a>. <span id=sbu-not-copy title="">If the base URL is set from another
+    URL">relative URLs</a>. <span id=sbu-not-copy title="">If the base URL is set from another
     source, e.g. a <a href=#document-base-url>document base URL</a>, then the <a href="#script's-base-url">script's base URL</a> must
     follow the source, so that if the source's changes, so does the script's.</span></p>
 
@@ -77807,7 +77842,7 @@
 
   <p>User agents should filter potentially active (scripted) content (e.g. HTML) when it is dragged
   and when it is dropped, using a whitelist of known-safe features. Similarly, <a href=#relative-url title="relative
-  url">relative URLs</a> should be turned into absolute URLs to avoid references changing in
+  URL">relative URLs</a> should be turned into absolute URLs to avoid references changing in
   unexpected ways. This specification does not specify how this is performed.</p>
 
   <div class=example>
@@ -79913,22 +79948,22 @@
 
   <h4 id=worker-locations><span class=secno>9.3.4 </span>Worker locations</h4>
 
-  <pre class=idl>interface <dfn id=workerlocation>WorkerLocation</dfn> {
-  stringifier readonly attribute DOMString <a href=#dom-workerlocation-href title=dom-WorkerLocation-href>href</a>;
-};
+  <pre class=idl>interface <dfn id=workerlocation>WorkerLocation</dfn> { };
 <a href=#workerlocation>WorkerLocation</a> implements <a href=#urlutilsreadonly>URLUtilsReadOnly</a>;</pre>
 
   <p>A <code><a href=#workerlocation>WorkerLocation</a></code> object represents an <a href=#absolute-url>absolute URL</a> set at its
   creation.</p>
 
-  <p>The <dfn id=dom-workerlocation-href title=dom-WorkerLocation-href><code>href</code></dfn> attribute must return the
-  <a href=#absolute-url>absolute URL</a> that the object represents.</p>
+  <p>The <code><a href=#workerlocation>WorkerLocation</a></code> interface supports the <code><a href=#urlutilsreadonly>URLUtilsReadOnly</a></code>
+  interface. <a href=#refsURL>[URL]</a></p>
 
-  <p>The <code><a href=#workerlocation>WorkerLocation</a></code> interface also supports the <code><a href=#urlutilsreadonly>URLUtilsReadOnly</a></code>
-  interface. The <a href=#concept-uu-input title=concept-uu-input>input</a> is the <a href=#absolute-url>absolute URL</a> that
-  the object represents (same as the <code title=dom-WorkerLocation-href><a href=#dom-workerlocation-href>href</a></code>
-  attribute). <a href=#refsURL>[URL]</a></p>
+  <p>When the object is created, the user agent must invoke the element's
+  <code><a href=#urlutilsreadonly>URLUtilsReadOnly</a></code> interface's <a href=#concept-uu-set-the-input title=concept-uu-set-the-input>set the
+  input</a> algorithm with the <a href=#absolute-url>absolute URL</a> that the <code><a href=#workerlocation>WorkerLocation</a></code>
+  object represents as the given value.</p>
 
+  <p>The element's <code><a href=#urlutilsreadonly>URLUtilsReadOnly</a></code> interface's <a href=#concept-uu-get-the-base title=concept-uu-get-the-base>get the base</a> algorithm must return null.</p>
+
   <p>The <code><a href=#workerlocation>WorkerLocation</a></code> interface must only be <a href=#expose title=expose>exposed</a> if
   the <a href=#javascript-global-environment>JavaScript global environment</a> is a <a href=#worker-environment>worker environment</a>.</p>
 
@@ -81542,9 +81577,7 @@
 
    </li>
 
-   <li><p>If the resulting <a href=#parsed-url>parsed URL</a> does not have a <a href=#concept-url-scheme title=concept-url-scheme>scheme</a> component whose value, when <a href=#converted-to-ascii-lowercase>converted to ASCII
-   lowercase</a>, is either "<code title="">ws</code>" or "<code title="">wss</code>", then fail
-   this algorithm.</li>
+   <li><p>If the resulting <a href=#parsed-url>parsed URL</a> does not have a <a href=#concept-url-scheme title=concept-url-scheme>scheme</a> component whose value is either "<code title="">ws</code>" or "<code title="">wss</code>", then fail this algorithm.</li>
 
    <li><p>If the resulting <a href=#parsed-url>parsed URL</a> has a non-null <a href=#concept-url-fragment title=concept-url-fragment>fragment</a> component, then fail this algorithm.</li>
 
@@ -81552,8 +81585,8 @@
    <a href=#parsed-url>parsed URL</a> is "<code title="">ws</code>", set <var title="">secure</var> to false;
    otherwise, the <a href=#concept-url-scheme title=concept-url-scheme>scheme</a> component is "<code title="">wss</code>", set <var title="">secure</var> to true.</li>
 
-   <li><p>Let <var title="">host</var> be the value of the resulting <a href=#parsed-url>parsed URL</a>'s <a href=#concept-url-host title=concept-url-host>host</a> component, <a href=#converted-to-ascii-lowercase>converted to ASCII
-   lowercase</a>.</li> <!-- at this point this is Punycode-encoded already -->
+   <li><p>Let <var title="">host</var> be the value of the resulting <a href=#parsed-url>parsed URL</a>'s <a href=#concept-url-host title=concept-url-host>host</a> component.</li> <!-- at this point this is
+   Punycode-encoded and lowercased already -->
 
    <li><p>If the resulting <a href=#parsed-url>parsed URL</a> has a <a href=#concept-url-port title=concept-url-port>port</a>
    component that is not the empty string, then let <var title="">port</var> be that component's
@@ -88312,7 +88345,7 @@
     url">resolve</a> the value of that attribute to an
     <a href=#absolute-url>absolute URL</a>, relative to the newly created element,
     and if that is successful, run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
-    algorithm</a> with the result of applying the <a href=#url-serializer>URL serializer</a> algorithm to
+    algorithm</a> with the result of applying the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a> algorithm to
     the resulting <a href=#parsed-url>parsed URL</a> with the <i>exclude fragment flag</i> set; otherwise, if there is no such attribute, or its value is
     the empty string, or resolving its value fails, run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
     algorithm</a> with no manifest. The algorithm must be passed

Modified: index
===================================================================
--- index	2013-04-08 20:41:30 UTC (rev 7794)
+++ index	2013-04-09 18:18:32 UTC (rev 7795)
@@ -248,7 +248,7 @@
 
   <header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
    <hgroup><h1 class=allcaps>HTML</h1>
-    <h2 class="no-num no-toc">Living Standard — Last Updated 8 April 2013</h2>
+    <h2 class="no-num no-toc">Living Standard — Last Updated 9 April 2013</h2>
    </hgroup><dl><dt><strong>Web developer edition:</strong></dt>
     <dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
     <dt>Multiple-page version:</dt>
@@ -1997,7 +1997,7 @@
   ways:</p>
 
   <pre>var a = <a href=#document title=Document>document</a>.<a href=#dom-document-links title=dom-document-links>links</a>[0]; // obtain the first link in the document
-a.<a href=#dom-a-href title=dom-a-href>href</a> = 'sample.html'; // change the destination URL of the link
+a.<a href=#dom-url-href title=dom-url-href>href</a> = 'sample.html'; // change the destination URL of the link
 a.<a href=#dom-url-protocol title=dom-url-protocol>protocol</a> = 'https'; // change just the scheme part of the URL
 a.setAttribute('href', 'http://example.com/'); // change the content attribute directly</pre>
 
@@ -3432,17 +3432,20 @@
      <li>The <dfn id=concept-url-query title=concept-url-query>query</dfn> component of a <a href=#parsed-url>parsed URL</a>
      <li>The <dfn id=concept-url-fragment title=concept-url-fragment>fragment</dfn> component of a <a href=#parsed-url>parsed URL</a>
      <li><dfn id=concept-url-parse-error title=concept-url-parse-error>Parse errors</dfn> from the <a href=#url-parser>URL parser</a>
-     <li>The <dfn id=url-serializer>URL serializer</dfn>
+     <li>The <dfn id=concept-url-serializer title=concept-url-serializer>URL serializer</dfn>
      <li><dfn id=default-encode-set>Default encode set</dfn>
      <li><dfn id=percent-encode>Percent encode</dfn>
      <li><dfn id=utf-8-percent-encode>UTF-8 percent encode</dfn>
      <li><dfn id=urlutils><code>URLUtils</code></dfn> interface
      <li><dfn id=urlutilsreadonly><code>URLUtilsReadOnly</code></dfn> interface
+     <li><dfn id=dom-url-href title=dom-url-href><code>href</code> attribute</dfn>
      <li><dfn id=dom-url-protocol title=dom-url-protocol><code>protocol</code> attribute</dfn>
-     <li><dfn id=concept-uu-base title=concept-uu-base>Base</dfn> for <code><a href=#urlutils>URLUtils</a></code>
-     <li><dfn id=concept-uu-input title=concept-uu-input>Input</dfn> for <code><a href=#urlutils>URLUtils</a></code>
-     <li><dfn id=concept-uu-query-encoding title=concept-uu-query-encoding>Query encoding</dfn> for <code><a href=#urlutils>URLUtils</a></code>
-     <li><dfn id=concept-uu-update title=concept-uu-update>Update steps</dfn> for <code><a href=#urlutils>URLUtils</a></code>
+     <li>The <dfn id=concept-uu-get-the-base title=concept-uu-get-the-base>get the base</dfn> hook for <code><a href=#urlutils>URLUtils</a></code>
+     <li>The <dfn id=concept-uu-update title=concept-uu-update>update steps</dfn> hook for <code><a href=#urlutils>URLUtils</a></code>
+     <li>The <dfn id=concept-uu-set-the-input title=concept-uu-set-the-input>set the input</dfn> algorithm for <code><a href=#urlutils>URLUtils</a></code>
+     <li>The <dfn id=concept-uu-query-encoding title=concept-uu-query-encoding>query encoding</dfn> of an <code><a href=#urlutils>URLUtils</a></code> object
+     <li>The <dfn id=concept-uu-input title=concept-uu-input>input</dfn> of an <code><a href=#urlutils>URLUtils</a></code> object
+     <li>The <dfn id=concept-uu-url title=concept-uu-url>url</dfn> of an <code><a href=#urlutils>URLUtils</a></code> object
     </ul></dd>
 
 
@@ -6565,7 +6568,7 @@
 
    <li><p>Let <var title="">parsed URL</var> be the result of the <a href=#url-parser>URL parser</a>.</li>
 
-   <li><p>Let <var title="">serialized URL</var> be the result of apply the <a href=#url-serializer>URL
+   <li><p>Let <var title="">serialized URL</var> be the result of apply the <a href=#concept-url-serializer title=concept-url-serializer>URL
    serializer</a> to <var title="">parsed URL</var>.</li>
 
    <li><p>Return <var title="">serialized URL</var> as the <dfn id=resulting-absolute-url>resulting absolute URL</dfn> and
@@ -6739,14 +6742,14 @@
 
    <li>
 
-    <p>Apply the <a href=#url-parser>URL parser</a> to <var title="">referrer</var> and let <var title="">parsed referrer</var> be the <a href=#resulting-parsed-url>resulting parsed URL</a>.</p>
+    <p><i>Clean referrer</i>: Apply the <a href=#url-parser>URL parser</a> to <var title="">referrer</var> and let <var title="">parsed referrer</var> be the <a href=#resulting-parsed-url>resulting parsed URL</a>.</p>
 
    </li>
 
    <li>
 
-    <p><i>Clean referrer</i>: Let <var title="">referrer</var> be the result of applying the
-    <a href=#url-serializer>URL serializer</a> to <var title="">parsed referrer</var>, with the <i>exclude fragment
+    <p>Let <var title="">referrer</var> be the result of applying the
+    <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a> to <var title="">parsed referrer</var>, with the <i>exclude fragment
     flag</i> set.</p> <!-- RFC2616 says "The URI MUST NOT include a fragment." (section 14.36) -->
 
    </li>
@@ -8327,7 +8330,7 @@
 [OverrideBuiltins]
 partial /*sealed*/ interface <dfn id=document>Document</dfn> {
   // <a href=#resource-metadata-management>resource metadata management</a>
-  [PutForwards=<a href=#dom-location-href title=dom-location-href>href</a>, Unforgeable] readonly attribute <a href=#location>Location</a>? <a href=#dom-document-location title=dom-document-location>location</a>;
+  [PutForwards=<a href=#dom-url-href title=dom-url-href>href</a>, Unforgeable] readonly attribute <a href=#location>Location</a>? <a href=#dom-document-location title=dom-document-location>location</a>;
            attribute DOMString <a href=#dom-document-domain title=dom-document-domain>domain</a>;
   readonly attribute DOMString <a href=#dom-document-referrer title=dom-document-referrer>referrer</a>;
            attribute DOMString <a href=#dom-document-cookie title=dom-document-cookie>cookie</a>;
@@ -9503,7 +9506,7 @@
    <code><a href=#the-abbr-element>abbr</a></code>, or <code><a href=#the-title-element>title</a></code> element, then: if the element has a <code title="">title</code> attribute, <!-- not attr-title --> return the value of that attribute,
    otherwise, return the empty string.</li> <!-- note: <code>input</code> doesn't do this -->
 
-   <li><p>Otherwise, if the element has a <code title="attr-title=">title</code> attribute, then
+   <li><p>Otherwise, if the element has a <code title=attr-title><a href=#attr-title>title</a></code> attribute, then
    return its value.</li>
 
    <li><p>Otherwise, if the element has a parent element, then return the parent element's
@@ -19004,7 +19007,6 @@
    <dt><a href=#element-dfn-dom title=element-dfn-dom>DOM interface</a>:</dt><!--TOPIC:DOM APIs-->
    <dd>
 <pre class=idl>interface <dfn id=htmlanchorelement>HTMLAnchorElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
-  stringifier attribute DOMString <a href=#dom-a-href title=dom-a-href>href</a>;
            attribute DOMString <a href=#dom-a-target title=dom-a-target>target</a>;
            attribute DOMString <a href=#dom-a-download title=dom-a-download>download</a>;
            attribute DOMString <a href=#dom-a-ping title=dom-a-ping>ping</a>;
@@ -19115,7 +19117,7 @@
 
   </dl><div class=impl>
 
-  <p>The IDL attributes <dfn id=dom-a-href title=dom-a-href><code>href</code></dfn>, <dfn id=dom-a-download title=dom-a-download><code>download</code></dfn>, <dfn id=dom-a-ping title=dom-a-ping><code>ping</code></dfn>, <dfn id=dom-a-target title=dom-a-target><code>target</code></dfn>,
+  <p>The IDL attributes <dfn id=dom-a-download title=dom-a-download><code>download</code></dfn>, <dfn id=dom-a-ping title=dom-a-ping><code>ping</code></dfn>, <dfn id=dom-a-target title=dom-a-target><code>target</code></dfn>,
   <dfn id=dom-a-rel title=dom-a-rel><code>rel</code></dfn>, <dfn id=dom-a-hreflang title=dom-a-hreflang><code>hreflang</code></dfn>, and <dfn id=dom-a-type title=dom-a-type><code>type</code></dfn>, must <a href=#reflect>reflect</a> the respective content
   attributes of the same name.</p>
 
@@ -19126,13 +19128,24 @@
   same value as the <code><a href=#textcontent>textContent</a></code> IDL attribute on the element, and on setting, must act
   as if the <code><a href=#textcontent>textContent</a></code> IDL attribute on the element had been set to the new value.</p>
 
-  <p>The <code><a href=#the-a-element>a</a></code> element also supports the <code><a href=#urlutils>URLUtils</a></code> interface. The <a href=#concept-uu-input title=concept-uu-input>input</a> is the value of the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute, if there is such an attribute, or the
-  empty string otherwise; the <a href=#concept-uu-base title=concept-uu-base>base</a> is <a href="#the-element's-base-url">the element's base
-  URL</a>; the <a href=#concept-uu-query-encoding title=concept-uu-query-encoding>query encoding</a> being the
-  <a href="#document's-character-encoding">document's character encoding</a>; and the <a href=#concept-uu-update title=concept-uu-update>update
-  steps</a> being the same as setting the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code>
-  content attribute to the new output value.</p>
+  <hr><!-- concept-uu --><p>The <code><a href=#the-a-element>a</a></code> element also supports the <code><a href=#urlutils>URLUtils</a></code> interface. <a href=#refsURL>[URL]</a></p>
 
+  <p>When the element is created, and whenever the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute is set, changed, or removed, the user
+  agent must invoke the element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-set-the-input title=concept-uu-set-the-input>set the input</a> algorithm with the value of the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute, if any, or the empty string otherwise,
+  as the given value.</p>
+
+  <p>The element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-get-the-base title=concept-uu-get-the-base>get the
+  base</a> algorithm must simply return <a href="#the-element's-base-url">the element's base URL</a>.</p>
+
+  <p>The element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-query-encoding title=concept-uu-query-encoding>query
+  encoding</a> is the <a href="#document's-character-encoding">document's character encoding</a>.</p>
+
+  <p>When the element's <code><a href=#urlutils>URLUtils</a></code> interface invokes its <a href=#concept-uu-update title=concept-uu-update>update steps</a>, if the element's <code><a href=#urlutils>URLUtils</a></code> interface's
+  <a href=#concept-uu-url title=concept-uu-url>url</a> is not null, then the user agent must set the element's
+  <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute to the <a href=#concept-url-serializer title=concept-url-serializer>serialization</a> of the element's <code><a href=#urlutils>URLUtils</a></code>
+  interface's <a href=#concept-uu-url title=concept-uu-url>url</a>; otherwise, it must set the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute to the element's <code><a href=#urlutils>URLUtils</a></code>
+  interface's <a href=#concept-uu-input title=concept-uu-input>input</a>.</p>
+
   </div>
 <!--TOPIC:HTML-->
 
@@ -38934,7 +38947,6 @@
            attribute DOMString <a href=#dom-area-alt title=dom-area-alt>alt</a>;
            attribute DOMString <a href=#dom-area-coords title=dom-area-coords>coords</a>;
            attribute DOMString <a href=#dom-area-shape title=dom-area-shape>shape</a>;
-  stringifier attribute DOMString <a href=#dom-area-href title=dom-area-href>href</a>;
            attribute DOMString <a href=#dom-area-target title=dom-area-target>target</a>;
            attribute DOMString <a href=#dom-area-download title=dom-area-download>download</a>;
            attribute DOMString <a href=#dom-area-ping title=dom-area-ping>ping</a>;
@@ -39087,7 +39099,7 @@
    the <code><a href=#the-area-element>area</a></code> element, if any, and as determined by the <code title=attr-hyperlink-download><a href=#attr-hyperlink-download>download</a></code> attribute and any expressed user
    preference.</li>
 
-  </ol><p>The IDL attributes <dfn id=dom-area-alt title=dom-area-alt><code>alt</code></dfn>, <dfn id=dom-area-coords title=dom-area-coords><code>coords</code></dfn>, <dfn id=dom-area-target title=dom-area-target><code>target</code></dfn>, <dfn id=dom-area-download title=dom-area-download><code>download</code></dfn>, <dfn id=dom-area-href title=dom-area-href><code>href</code></dfn>, <dfn id=dom-area-ping title=dom-area-ping><code>ping</code></dfn>, <dfn id=dom-area-rel title=dom-area-rel><code>rel</code></dfn>,
+  </ol><p>The IDL attributes <dfn id=dom-area-alt title=dom-area-alt><code>alt</code></dfn>, <dfn id=dom-area-coords title=dom-area-coords><code>coords</code></dfn>, <dfn id=dom-area-target title=dom-area-target><code>target</code></dfn>, <dfn id=dom-area-download title=dom-area-download><code>download</code></dfn>, <dfn id=dom-area-ping title=dom-area-ping><code>ping</code></dfn>, <dfn id=dom-area-rel title=dom-area-rel><code>rel</code></dfn>,
   <dfn id=dom-area-hreflang title=dom-area-hreflang><code>hreflang</code></dfn>, and <dfn id=dom-area-type title=dom-area-type><code>type</code></dfn>, each must <a href=#reflect>reflect</a> the respective
   content attributes of the same name.</p>
 
@@ -39097,13 +39109,24 @@
   <p>The IDL attribute <dfn id=dom-area-rellist title=dom-area-rellist><code>relList</code></dfn> must
   <a href=#reflect>reflect</a> the <code title=attr-hyperlink-rel><a href=#attr-hyperlink-rel>rel</a></code> content attribute.</p>
 
-  <p>The <code><a href=#the-area-element>area</a></code> element also supports the <code><a href=#urlutils>URLUtils</a></code> interface. The <a href=#concept-uu-input title=concept-uu-input>input</a> is
-  the value of the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute, if there is such an
-  attribute, or the empty string otherwise; the <a href=#concept-uu-base title=concept-uu-base>base</a>
-  is <a href="#the-element's-base-url">the element's base URL</a>; the <a href=#concept-uu-query-encoding title=concept-uu-query-encoding>query encoding</a>
-  being the <a href="#document's-character-encoding">document's character encoding</a>; and the <a href=#concept-uu-update title=concept-uu-update>update steps</a> being the same as setting the element's
-  <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute to the new output value.</p>
+  <hr><!-- concept-uu --><p>The <code><a href=#the-area-element>area</a></code> element also supports the <code><a href=#urlutils>URLUtils</a></code> interface. <a href=#refsURL>[URL]</a></p>
 
+  <p>When the element is created, and whenever the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute is set, changed, or removed, the user
+  agent must invoke the element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-set-the-input title=concept-uu-set-the-input>set the input</a> algorithm with the value of the <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute, if any, or the empty string otherwise,
+  as the given value.</p>
+
+  <p>The element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-get-the-base title=concept-uu-get-the-base>get the
+  base</a> algorithm must simply return <a href="#the-element's-base-url">the element's base URL</a>.</p>
+
+  <p>The element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-query-encoding title=concept-uu-query-encoding>query
+  encoding</a> is the <a href="#document's-character-encoding">document's character encoding</a>.</p>
+
+  <p>When the element's <code><a href=#urlutils>URLUtils</a></code> interface invokes its <a href=#concept-uu-update title=concept-uu-update>update steps</a>, if the element's <code><a href=#urlutils>URLUtils</a></code> interface's
+  <a href=#concept-uu-url title=concept-uu-url>url</a> is not null, then the user agent must set the element's
+  <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute to the <a href=#concept-url-serializer title=concept-url-serializer>serialization</a> of the element's <code><a href=#urlutils>URLUtils</a></code>
+  interface's <a href=#concept-uu-url title=concept-uu-url>url</a>; otherwise, it must set the element's <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> content attribute to the element's <code><a href=#urlutils>URLUtils</a></code>
+  interface's <a href=#concept-uu-input title=concept-uu-input>input</a>.</p>
+
   </div>
 
 
@@ -55066,7 +55089,7 @@
       component to <var title="">query</var>.</p>
 
       <p>Let <var title="">destination</var> be a new <a href=#url>URL</a> formed by applying the
-      <a href=#url-serializer>URL serializer</a> algorithm to <var title="">parsed action</var>.</p>
+      <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a> algorithm to <var title="">parsed action</var>.</p>
 
       <p><a href=#navigate>Navigate</a><!--DONAV form--> <var title="">target browsing context</var> to <var title="">destination</var>. If <var title="">replace</var> is true, then <var title="">target
       browsing context</var> must be navigated with <a href=#replacement-enabled>replacement enabled</a>.</p>
@@ -57958,8 +57981,7 @@
     the browsing context name. If these rules result in the creation of a new <a href=#browsing-context>browsing
     context</a>, set <var title="">replace</var> to true.</p> <!-- c.f. concept-fs-target -->
 
-    <p>Otherwise, let <var title=">target</var> be the <span>browsing context</span> that <var
-    title=">subject</var> itself is in.</p>
+    <p>Otherwise, let <var title="">target</var> be the <a href=#browsing-context>browsing context</a> that <var title="">subject</var> itself is in.</p>
 
    </li>
 
@@ -64777,7 +64799,7 @@
   [Replaceable] readonly attribute <a href=#windowproxy>WindowProxy</a> <a href=#dom-self title=dom-self>self</a>;
   [Unforgeable] readonly attribute <a href=#document>Document</a> <a href=#dom-document-0 title=dom-document>document</a>;
            attribute DOMString <a href=#dom-name title=dom-name>name</a>; <!-- not [Replaceable] per WebKit and IE8 -->
-  [PutForwards=<a href=#dom-location-href title=dom-location-href>href</a>, Unforgeable] readonly attribute <a href=#location>Location</a> <a href=#dom-location title=dom-location>location</a>;
+  [PutForwards=<a href=#dom-url-href title=dom-url-href>href</a>, Unforgeable] readonly attribute <a href=#location>Location</a> <a href=#dom-location title=dom-location>location</a>;
   readonly attribute <a href=#history-0>History</a> <a href=#dom-history title=dom-history>history</a>;
   [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-locationbar title=dom-window-locationbar>locationbar</a>;
   [Replaceable] readonly attribute <a href=#barprop>BarProp</a> <a href=#dom-window-menubar title=dom-window-menubar>menubar</a>;
@@ -66298,7 +66320,7 @@
   algorithms defined in this specification, e.g. during <a href=#traverse-the-history title="traverse the history">session history traversal</a>.</p>
 
   <p class=note>The <a href=#current-entry>current entry</a> is usually an entry
-  for the <a href=#dom-location-href title=dom-location-href>location</a> of the
+  for the <a href="#the-document's-address" title="the document's address">address</a> of the
   <code><a href=#document>Document</a></code>. However, it can also be one of the entries
   for <a href=#state-object title="state object">state objects</a> added to the
   history by that document.</p>
@@ -66776,27 +66798,16 @@
   context</a>'s session history to be changed, by adding or replacing entries in the <code title=dom-history><a href=#dom-history>history</a></code> object.</p>
 
   <pre class=idl>[Unforgeable] interface <dfn id=location>Location</dfn> {
-  stringifier attribute DOMString <a href=#dom-location-href title=dom-location-href>href</a>;
   void <a href=#dom-location-assign title=dom-location-assign>assign</a>(DOMString url);
   void <a href=#dom-location-replace title=dom-location-replace>replace</a>(DOMString url);
   void <a href=#dom-location-reload title=dom-location-reload>reload</a>();
 };
 <a href=#location>Location</a> implements <a href=#urlutils>URLUtils</a>;</pre>
 
-  <dl class=domintro><dt><var title="">location</var> . <code title=dom-location-href><a href=#dom-location-href>href</a></code> [ = <var title="">value</var> ]</dt>
+  <dl class=domintro><dt><var title="">location</var> . <code title=dom-location-assign><a href=#dom-location-assign>assign</a></code>(<var title="">url</var>)</dt>
 
    <dd>
 
-    <p>Returns the current page's location.</p>
-
-    <p>Can be set, to navigate to another page.</p>
-
-   </dd>
-
-   <dt><var title="">location</var> . <code title=dom-location-assign><a href=#dom-location-assign>assign</a></code>(<var title="">url</var>)</dt>
-
-   <dd>
-
     <p>Navigates to the given page.</p>
 
    </dd>
@@ -66822,14 +66833,6 @@
   <p>The <i>relevant <code><a href=#document>Document</a></code></i> is the <code><a href=#location>Location</a></code> object's associated
   <code><a href=#document>Document</a></code> object's <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active document</a>.</p>
 
-  <p>The <dfn id=dom-location-href title=dom-location-href><code>href</code></dfn> attribute must return <a href="#the-document's-address" title="the document's address">the address</a> of the <i>relevant <code><a href=#document>Document</a></code></i>, as
-  an <a href=#absolute-url>absolute URL</a>.</p>
-
-  <p>On setting, if the <code><a href=#location>Location</a></code> object's <i>relevant <code><a href=#document>Document</a></code></i> has
-  <a href=#completely-loaded>completely loaded</a>, then the user agent must act as if the <code title=dom-location-assign><a href=#dom-location-assign>assign()</a></code> method had been called with the new value as its
-  argument. Otherwise, the user agent must act as if the <code title=dom-location-replace><a href=#dom-location-replace>replace()</a></code> method had been called with the new value as its
-  argument.</p> <!--DONAV location.href, defined in terms of the paragraphs below-->
-
   <p>When the <dfn id=dom-location-assign title=dom-location-assign><code>assign(<var title="">url</var>)</code></dfn>
   method is invoked, the UA must <a href=#resolve-a-url title="resolve a url">resolve</a> the argument, relative
   to the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base URL">base URL</a>, and if that is
@@ -66899,18 +66902,50 @@
   user agent may instead perform <a href=#an-overridden-reload>an overridden reload</a> rather than the navigation
   described in this paragraph.</p>
 
-  <p>The <code><a href=#location>Location</a></code> interface also supports the <code><a href=#urlutils>URLUtils</a></code> interface. <span class=impl>The <a href=#concept-uu-input title=concept-uu-input>input</a> is <a href="#the-document's-address" title="the document's
-  address">the address</a> of the <i>relevant <code><a href=#document>Document</a></code></i> (same as the <code title=dom-location-href><a href=#dom-location-href>href</a></code> attribute), as an <a href=#absolute-url>absolute URL</a>; the <a href=#concept-uu-base title=concept-uu-base>base</a> is the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base
-  URL">base URL</a> (which can be different each time members on the interface are invoked); the
-  <a href=#concept-uu-query-encoding title=concept-uu-query-encoding>query encoding</a> is the <a href="#document's-character-encoding">document's character
-  encoding</a>; and the <a href=#concept-uu-update title=concept-uu-update>update steps</a> are the same as
-  setting the <code title=dom-location-href><a href=#dom-location-href>href</a></code> attribute to the new output
-  value.</span></p>
+  <hr></div>
 
-  </div>
+  <!-- concept-uu -->
 
+  <p>The <code><a href=#location>Location</a></code> interface also supports the <code><a href=#urlutils>URLUtils</a></code> interface. <a href=#refsURL>[URL]</a></p>
 
+  <div class=impl>
 
+  <p>When the object is created, and whenever the <a href="#the-document's-address" title="the document's address">the
+  address</a> of the <i>relevant <code><a href=#document>Document</a></code></i> changes, the user agent must invoke
+  the element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-set-the-input title=concept-uu-set-the-input>set the
+  input</a> algorithm with <a href="#the-document's-address" title="the document's address">the address</a> of the
+  <i>relevant <code><a href=#document>Document</a></code></i> as the given value.</p>
+
+  <p>The element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-get-the-base title=concept-uu-get-the-base>get the
+  base</a> algorithm must return the <a href=#entry-script>entry script</a>'s <a href="#script's-base-url" title="script's base
+  URL">base URL</a>, if there is one, or null otherwise.</p>
+
+  <p>The element's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-query-encoding title=concept-uu-query-encoding>query
+  encoding</a> is the <a href="#document's-character-encoding">document's character encoding</a>.</p>
+
+  <p>When the element's <code><a href=#urlutils>URLUtils</a></code> interface invokes its <a href=#concept-uu-update title=concept-uu-update>update steps</a>, the user agent must run the following steps:</p>
+
+  <ol><li>
+
+    <p>If the object's <code><a href=#urlutils>URLUtils</a></code> interface's <a href=#concept-uu-url title=concept-uu-url>url</a> is
+    not null, then let <var title="">URL</var> be the <a href=#concept-url-serializer title=concept-url-serializer>serialization</a> of the object's <code><a href=#urlutils>URLUtils</a></code>
+    interface's <a href=#concept-uu-url title=concept-uu-url>url</a>.</p>
+
+    <p>Otherwise, let <var title="">URL</var> be the object's <code><a href=#urlutils>URLUtils</a></code> interface's
+    <a href=#concept-uu-input title=concept-uu-input>input</a>.</p>
+
+   </li>
+
+   <li><p>If the <code><a href=#location>Location</a></code> object's <i>relevant <code><a href=#document>Document</a></code></i> has
+   <a href=#completely-loaded>completely loaded</a>, then act as if the <code title=dom-location-assign><a href=#dom-location-assign>assign()</a></code> method had been called with the new value as its
+   argument. Otherwise, act as if the <code title=dom-location-replace><a href=#dom-location-replace>replace()</a></code> method had
+   been called with the new value as its argument.</li>
+   <!--DONAV location.href, defined in terms of the paragraphs far above-->
+
+  </ol></div>
+
+
+
 <!--ADD-TOPIC:Security-->
   <div class=impl>
 
@@ -66923,7 +66958,7 @@
   <a href=#active-document>active document</a>'s <a href=#effective-script-origin>effective script origin</a>, with the following
   exceptions:</p>
 
-  <ul><li>The <code title=dom-location-href><a href=#dom-location-href>href</a></code> setter, if the <a href=#entry-script>entry script</a>'s
+  <ul><li>The <code title=dom-url-href><a href=#dom-url-href>href</a></code> setter, if the <a href=#entry-script>entry script</a>'s
    <a href="#script's-browsing-context">script's browsing context</a> is <a href=#allowed-to-navigate>allowed to navigate</a> the <a href=#browsing-context>browsing
    context</a> with which the <code><a href=#location>Location</a></code> object is associated
 
@@ -67580,7 +67615,7 @@
   an <code><a href=#the-html-element>html</a></code> element with an attribute <code title=attr-html-manifest><a href=#attr-html-manifest>manifest</a></code>
   whose value is not the empty string, then, as soon as the element is <a href=#insert-an-element-into-a-document title="insert an
   element into a document">inserted into the document</a>, the user agent must <a href=#resolve-a-url title="resolve a url">resolve</a> the value of that attribute relative to that element, and if
-  that is successful, must apply the <a href=#url-serializer>URL serializer</a> algorithm to the resulting
+  that is successful, must apply the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a> algorithm to the resulting
   <a href=#parsed-url>parsed URL</a> with the <i>exclude fragment flag</i> set to obtain <var title="">manifest
   URL</var>, and then run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
   algorithm</a> with <var title="">manifest URL</var> as the manifest URL, passing in the
@@ -69090,7 +69125,7 @@
   <p><a href=#relative-url title="relative URL">Relative URLs</a> must be given relative to the manifest's own
   URL. All URLs in the manifest must have the same <a href=#concept-url-scheme title=concept-url-scheme>scheme</a> as
   the manifest itself (either explicitly or implicitly, through the use of <a href=#relative-url title="relative
-  url">relative URLs</a>). <a href=#refsURL>[URL]</a></p>
+  URL">relative URLs</a>). <a href=#refsURL>[URL]</a></p>
 
   <p>URLs in manifests must not have fragment identifiers (i.e. the U+0023 NUMBER SIGN character
   isn't allowed in URLs in manifests).</p>
@@ -69241,7 +69276,7 @@
       <p>If the resulting <a href=#parsed-url>parsed URL</a> has a different <a href=#concept-url-scheme title=concept-url-scheme>scheme</a> component than <var title="">base URL</var> (the
       manifest's URL), then jump back to the step labeled "start of line".</p>
 
-      <p>Let <var title="">new URL</var> be the result of applying the <a href=#url-serializer>URL serializer</a>
+      <p>Let <var title="">new URL</var> be the result of applying the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a>
       algorithm to the resulting <a href=#parsed-url>parsed URL</a>, with the <i>exclude fragment flag</i>
       set.</p>
 
@@ -69264,11 +69299,11 @@
       <var title="">part two</var> does not have the <a href=#same-origin>same origin</a> as the manifest's URL,
       then jump back to the step labeled "start of line".</p> <!-- SECURITY -->
 
-      <p>Let <var title="">part one</var> be the result of applying the <a href=#url-serializer>URL serializer</a>
+      <p>Let <var title="">part one</var> be the result of applying the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a>
       algorithm to the first resulting <a href=#parsed-url>parsed URL</a>, with the <i>exclude fragment
       flag</i> set.</p>
 
-      <p>Let <var title="">part two</var> be the result of applying the <a href=#url-serializer>URL serializer</a>
+      <p>Let <var title="">part two</var> be the result of applying the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a>
       algorithm to the second resulting <a href=#parsed-url>parsed URL</a>, with the <i>exclude fragment
       flag</i> set.</p>
 
@@ -69298,7 +69333,7 @@
       <p>If the resulting <a href=#parsed-url>parsed URL</a> has a different <a href=#concept-url-scheme title=concept-url-scheme>scheme</a> component than <var title="">base URL</var> (the
       manifest's URL), then jump back to the step labeled "start of line".</p>
 
-      <p>Let <var title="">new URL</var> be the result of applying the <a href=#url-serializer>URL serializer</a>
+      <p>Let <var title="">new URL</var> be the result of applying the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a>
       algorithm to the resulting <a href=#parsed-url>parsed URL</a>, with the <i>exclude fragment flag</i>
       set.</p>
 
@@ -69577,7 +69612,7 @@
       algorithm to the resource's <a href=#url>URL</a> results in a <a href=#parsed-url>parsed URL</a> that has a
       non-null <a href=#concept-url-fragment title=concept-url-fragment>fragment</a> component, the <a href=#url>URL</a>
       used for the entry in <var title="">cache</var> must instead be the <a href=#absolute-url>absolute URL</a>
-      obtained from applying the <a href=#url-serializer>URL serializer</a> algorith, to the <a href=#parsed-url>parsed
+      obtained from applying the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a> algorith, to the <a href=#parsed-url>parsed
       URL</a> with the <i>exclude fragment flag</i> set (application caches never include
       fragment identifiers).</p>
 
@@ -70725,7 +70760,7 @@
    <dd>
 
     <p>A <a href=#url>URL</a>, set when the script is created, used to resolve <a href=#relative-url title="relative
-    url">relative URLs</a>. <span id=sbu-not-copy title="">If the base URL is set from another
+    URL">relative URLs</a>. <span id=sbu-not-copy title="">If the base URL is set from another
     source, e.g. a <a href=#document-base-url>document base URL</a>, then the <a href="#script's-base-url">script's base URL</a> must
     follow the source, so that if the source's changes, so does the script's.</span></p>
 
@@ -77807,7 +77842,7 @@
 
   <p>User agents should filter potentially active (scripted) content (e.g. HTML) when it is dragged
   and when it is dropped, using a whitelist of known-safe features. Similarly, <a href=#relative-url title="relative
-  url">relative URLs</a> should be turned into absolute URLs to avoid references changing in
+  URL">relative URLs</a> should be turned into absolute URLs to avoid references changing in
   unexpected ways. This specification does not specify how this is performed.</p>
 
   <div class=example>
@@ -79913,22 +79948,22 @@
 
   <h4 id=worker-locations><span class=secno>9.3.4 </span>Worker locations</h4>
 
-  <pre class=idl>interface <dfn id=workerlocation>WorkerLocation</dfn> {
-  stringifier readonly attribute DOMString <a href=#dom-workerlocation-href title=dom-WorkerLocation-href>href</a>;
-};
+  <pre class=idl>interface <dfn id=workerlocation>WorkerLocation</dfn> { };
 <a href=#workerlocation>WorkerLocation</a> implements <a href=#urlutilsreadonly>URLUtilsReadOnly</a>;</pre>
 
   <p>A <code><a href=#workerlocation>WorkerLocation</a></code> object represents an <a href=#absolute-url>absolute URL</a> set at its
   creation.</p>
 
-  <p>The <dfn id=dom-workerlocation-href title=dom-WorkerLocation-href><code>href</code></dfn> attribute must return the
-  <a href=#absolute-url>absolute URL</a> that the object represents.</p>
+  <p>The <code><a href=#workerlocation>WorkerLocation</a></code> interface supports the <code><a href=#urlutilsreadonly>URLUtilsReadOnly</a></code>
+  interface. <a href=#refsURL>[URL]</a></p>
 
-  <p>The <code><a href=#workerlocation>WorkerLocation</a></code> interface also supports the <code><a href=#urlutilsreadonly>URLUtilsReadOnly</a></code>
-  interface. The <a href=#concept-uu-input title=concept-uu-input>input</a> is the <a href=#absolute-url>absolute URL</a> that
-  the object represents (same as the <code title=dom-WorkerLocation-href><a href=#dom-workerlocation-href>href</a></code>
-  attribute). <a href=#refsURL>[URL]</a></p>
+  <p>When the object is created, the user agent must invoke the element's
+  <code><a href=#urlutilsreadonly>URLUtilsReadOnly</a></code> interface's <a href=#concept-uu-set-the-input title=concept-uu-set-the-input>set the
+  input</a> algorithm with the <a href=#absolute-url>absolute URL</a> that the <code><a href=#workerlocation>WorkerLocation</a></code>
+  object represents as the given value.</p>
 
+  <p>The element's <code><a href=#urlutilsreadonly>URLUtilsReadOnly</a></code> interface's <a href=#concept-uu-get-the-base title=concept-uu-get-the-base>get the base</a> algorithm must return null.</p>
+
   <p>The <code><a href=#workerlocation>WorkerLocation</a></code> interface must only be <a href=#expose title=expose>exposed</a> if
   the <a href=#javascript-global-environment>JavaScript global environment</a> is a <a href=#worker-environment>worker environment</a>.</p>
 
@@ -81542,9 +81577,7 @@
 
    </li>
 
-   <li><p>If the resulting <a href=#parsed-url>parsed URL</a> does not have a <a href=#concept-url-scheme title=concept-url-scheme>scheme</a> component whose value, when <a href=#converted-to-ascii-lowercase>converted to ASCII
-   lowercase</a>, is either "<code title="">ws</code>" or "<code title="">wss</code>", then fail
-   this algorithm.</li>
+   <li><p>If the resulting <a href=#parsed-url>parsed URL</a> does not have a <a href=#concept-url-scheme title=concept-url-scheme>scheme</a> component whose value is either "<code title="">ws</code>" or "<code title="">wss</code>", then fail this algorithm.</li>
 
    <li><p>If the resulting <a href=#parsed-url>parsed URL</a> has a non-null <a href=#concept-url-fragment title=concept-url-fragment>fragment</a> component, then fail this algorithm.</li>
 
@@ -81552,8 +81585,8 @@
    <a href=#parsed-url>parsed URL</a> is "<code title="">ws</code>", set <var title="">secure</var> to false;
    otherwise, the <a href=#concept-url-scheme title=concept-url-scheme>scheme</a> component is "<code title="">wss</code>", set <var title="">secure</var> to true.</li>
 
-   <li><p>Let <var title="">host</var> be the value of the resulting <a href=#parsed-url>parsed URL</a>'s <a href=#concept-url-host title=concept-url-host>host</a> component, <a href=#converted-to-ascii-lowercase>converted to ASCII
-   lowercase</a>.</li> <!-- at this point this is Punycode-encoded already -->
+   <li><p>Let <var title="">host</var> be the value of the resulting <a href=#parsed-url>parsed URL</a>'s <a href=#concept-url-host title=concept-url-host>host</a> component.</li> <!-- at this point this is
+   Punycode-encoded and lowercased already -->
 
    <li><p>If the resulting <a href=#parsed-url>parsed URL</a> has a <a href=#concept-url-port title=concept-url-port>port</a>
    component that is not the empty string, then let <var title="">port</var> be that component's
@@ -88312,7 +88345,7 @@
     url">resolve</a> the value of that attribute to an
     <a href=#absolute-url>absolute URL</a>, relative to the newly created element,
     and if that is successful, run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
-    algorithm</a> with the result of applying the <a href=#url-serializer>URL serializer</a> algorithm to
+    algorithm</a> with the result of applying the <a href=#concept-url-serializer title=concept-url-serializer>URL serializer</a> algorithm to
     the resulting <a href=#parsed-url>parsed URL</a> with the <i>exclude fragment flag</i> set; otherwise, if there is no such attribute, or its value is
     the empty string, or resolving its value fails, run the <a href=#concept-appcache-init title=concept-appcache-init>application cache selection
     algorithm</a> with no manifest. The algorithm must be passed

Modified: source
===================================================================
--- source	2013-04-08 20:41:30 UTC (rev 7794)
+++ source	2013-04-09 18:18:32 UTC (rev 7795)
@@ -709,7 +709,7 @@
   ways:</p>
 
   <pre>var a = <span title="Document">document</span>.<span title="dom-document-links">links</span>[0]; // obtain the first link in the document
-a.<span title="dom-a-href">href</span> = 'sample.html'; // change the destination URL of the link
+a.<span title="dom-url-href">href</span> = 'sample.html'; // change the destination URL of the link
 a.<span title="dom-url-protocol">protocol</span> = 'https'; // change just the scheme part of the URL
 a.setAttribute('href', 'http://example.com/'); // change the content attribute directly</pre>
 
@@ -2237,17 +2237,20 @@
      <li>The <dfn title="concept-url-query">query</dfn> component of a <span>parsed URL</span>
      <li>The <dfn title="concept-url-fragment">fragment</dfn> component of a <span>parsed URL</span>
      <li><dfn title="concept-url-parse-error">Parse errors</dfn> from the <span>URL parser</span>
-     <li>The <dfn>URL serializer</dfn>
+     <li>The <dfn title="concept-url-serializer">URL serializer</dfn>
      <li><dfn>Default encode set</dfn>
      <li><dfn>Percent encode</dfn>
      <li><dfn>UTF-8 percent encode</dfn>
      <li><dfn><code>URLUtils</code></dfn> interface
      <li><dfn><code>URLUtilsReadOnly</code></dfn> interface
+     <li><dfn title="dom-url-href"><code>href</code> attribute</dfn>
      <li><dfn title="dom-url-protocol"><code>protocol</code> attribute</dfn>
-     <li><dfn title="concept-uu-base">Base</dfn> for <code>URLUtils</code>
-     <li><dfn title="concept-uu-input">Input</dfn> for <code>URLUtils</code>
-     <li><dfn title="concept-uu-query-encoding">Query encoding</dfn> for <code>URLUtils</code>
-     <li><dfn title="concept-uu-update">Update steps</dfn> for <code>URLUtils</code>
+     <li>The <dfn title="concept-uu-get-the-base">get the base</dfn> hook for <code>URLUtils</code>
+     <li>The <dfn title="concept-uu-update">update steps</dfn> hook for <code>URLUtils</code>
+     <li>The <dfn title="concept-uu-set-the-input">set the input</dfn> algorithm for <code>URLUtils</code>
+     <li>The <dfn title="concept-uu-query-encoding">query encoding</dfn> of an <code>URLUtils</code> object
+     <li>The <dfn title="concept-uu-input">input</dfn> of an <code>URLUtils</code> object
+     <li>The <dfn title="concept-uu-url">url</dfn> of an <code>URLUtils</code> object
     </ul>
 
    </dd>
@@ -6007,7 +6010,7 @@
 
    <li><p>Let <var title="">parsed URL</var> be the result of the <span>URL parser</span>.</p></li>
 
-   <li><p>Let <var title="">serialized URL</var> be the result of apply the <span>URL
+   <li><p>Let <var title="">serialized URL</var> be the result of apply the <span title="concept-url-serializer">URL
    serializer</span> to <var title="">parsed URL</var>.</p></li>
 
    <li><p>Return <var title="">serialized URL</var> as the <dfn>resulting absolute URL</dfn> and
@@ -6201,15 +6204,15 @@
 
    <li>
 
-    <p>Apply the <span>URL parser</span> to <var title="">referrer</var> and let <var
+    <p><i>Clean referrer</i>: Apply the <span>URL parser</span> to <var title="">referrer</var> and let <var
     title="">parsed referrer</var> be the <span>resulting parsed URL</span>.</p>
 
    </li>
 
    <li>
 
-    <p><i>Clean referrer</i>: Let <var title="">referrer</var> be the result of applying the
-    <span>URL serializer</span> to <var title="">parsed referrer</var>, with the <i>exclude fragment
+    <p>Let <var title="">referrer</var> be the result of applying the
+    <span title="concept-url-serializer">URL serializer</span> to <var title="">parsed referrer</var>, with the <i>exclude fragment
     flag</i> set.</p> <!-- RFC2616 says "The URI MUST NOT include a fragment." (section 14.36) -->
 
    </li>
@@ -8036,7 +8039,7 @@
 [OverrideBuiltins]
 partial /*sealed*/ interface <dfn>Document</dfn> {
   // <span>resource metadata management</span>
-  [PutForwards=<span title="dom-location-href">href</span>, Unforgeable] readonly attribute <span>Location</span>? <span title="dom-document-location">location</span>;
+  [PutForwards=<span title="dom-url-href">href</span>, Unforgeable] readonly attribute <span>Location</span>? <span title="dom-document-location">location</span>;
            attribute DOMString <span title="dom-document-domain">domain</span>;
   readonly attribute DOMString <span title="dom-document-referrer">referrer</span>;
            attribute DOMString <span title="dom-document-cookie">cookie</span>;
@@ -9394,7 +9397,7 @@
    title="">title</code> attribute, <!-- not attr-title --> return the value of that attribute,
    otherwise, return the empty string.</p></li> <!-- note: <code>input</code> doesn't do this -->
 
-   <li><p>Otherwise, if the element has a <code title="attr-title=">title</code> attribute, then
+   <li><p>Otherwise, if the element has a <code title="attr-title">title</code> attribute, then
    return its value.</p></li>
 
    <li><p>Otherwise, if the element has a parent element, then return the parent element's
@@ -19794,7 +19797,6 @@
    <dt><span title="element-dfn-dom">DOM interface</span>:</dt><!--TOPIC:DOM APIs-->
    <dd>
 <pre class="idl">interface <dfn>HTMLAnchorElement</dfn> : <span>HTMLElement</span> {
-  stringifier attribute DOMString <span title="dom-a-href">href</span>;
            attribute DOMString <span title="dom-a-target">target</span>;
            attribute DOMString <span title="dom-a-download">download</span>;
            attribute DOMString <span title="dom-a-ping">ping</span>;
@@ -19929,8 +19931,7 @@
 
   <div class="impl">
 
-  <p>The IDL attributes <dfn title="dom-a-href"><code>href</code></dfn>, <dfn
-  title="dom-a-download"><code>download</code></dfn>, <dfn
+  <p>The IDL attributes <dfn title="dom-a-download"><code>download</code></dfn>, <dfn
   title="dom-a-ping"><code>ping</code></dfn>, <dfn title="dom-a-target"><code>target</code></dfn>,
   <dfn title="dom-a-rel"><code>rel</code></dfn>, <dfn
   title="dom-a-hreflang"><code>hreflang</code></dfn>, and <dfn
@@ -19944,15 +19945,33 @@
   same value as the <code>textContent</code> IDL attribute on the element, and on setting, must act
   as if the <code>textContent</code> IDL attribute on the element had been set to the new value.</p>
 
-  <p>The <code>a</code> element also supports the <code>URLUtils</code> interface. The <span
-  title="concept-uu-input">input</span> is the value of the element's <code
-  title="attr-hyperlink-href">href</code> content attribute, if there is such an attribute, or the
-  empty string otherwise; the <span title="concept-uu-base">base</span> is <span>the element's base
-  URL</span>; the <span title="concept-uu-query-encoding">query encoding</span> being the
-  <span>document's character encoding</span>; and the <span title="concept-uu-update">update
-  steps</span> being the same as setting the element's <code title="attr-hyperlink-href">href</code>
-  content attribute to the new output value.</p>
+  <hr><!-- concept-uu -->
 
+  <p>The <code>a</code> element also supports the <code>URLUtils</code> interface. <a
+  href="#refsURL">[URL]</a></p>
+
+  <p>When the element is created, and whenever the element's <code
+  title="attr-hyperlink-href">href</code> content attribute is set, changed, or removed, the user
+  agent must invoke the element's <code>URLUtils</code> interface's <span
+  title="concept-uu-set-the-input">set the input</span> algorithm with the value of the <code
+  title="attr-hyperlink-href">href</code> content attribute, if any, or the empty string otherwise,
+  as the given value.</p>
+
+  <p>The element's <code>URLUtils</code> interface's <span title="concept-uu-get-the-base">get the
+  base</span> algorithm must simply return <span>the element's base URL</span>.</p>
+
+  <p>The element's <code>URLUtils</code> interface's <span title="concept-uu-query-encoding">query
+  encoding</span> is the <span>document's character encoding</span>.</p>
+
+  <p>When the element's <code>URLUtils</code> interface invokes its <span
+  title="concept-uu-update">update steps</span>, if the element's <code>URLUtils</code> interface's
+  <span title="concept-uu-url">url</span> is not null, then the user agent must set the element's
+  <code title="attr-hyperlink-href">href</code> content attribute to the <span
+  title="concept-url-serializer">serialization</span> of the element's <code>URLUtils</code>
+  interface's <span title="concept-uu-url">url</span>; otherwise, it must set the element's <code
+  title="attr-hyperlink-href">href</code> content attribute to the element's <code>URLUtils</code>
+  interface's <span title="concept-uu-input">input</span>.</p>
+
   </div>
 <!--TOPIC:HTML-->
 
@@ -46957,7 +46976,6 @@
            attribute DOMString <span title="dom-area-alt">alt</span>;
            attribute DOMString <span title="dom-area-coords">coords</span>;
            attribute DOMString <span title="dom-area-shape">shape</span>;
-  stringifier attribute DOMString <span title="dom-area-href">href</span>;
            attribute DOMString <span title="dom-area-target">target</span>;
            attribute DOMString <span title="dom-area-download">download</span>;
            attribute DOMString <span title="dom-area-ping">ping</span>;
@@ -47147,7 +47165,6 @@
   title="dom-area-coords"><code>coords</code></dfn>, <dfn
   title="dom-area-target"><code>target</code></dfn>, <dfn
   title="dom-area-download"><code>download</code></dfn>, <dfn
-  title="dom-area-href"><code>href</code></dfn>, <dfn
   title="dom-area-ping"><code>ping</code></dfn>, <dfn title="dom-area-rel"><code>rel</code></dfn>,
   <dfn title="dom-area-hreflang"><code>hreflang</code></dfn>, and <dfn
   title="dom-area-type"><code>type</code></dfn>, each must <span>reflect</span> the respective
@@ -47159,15 +47176,33 @@
   <p>The IDL attribute <dfn title="dom-area-rellist"><code>relList</code></dfn> must
   <span>reflect</span> the <code title="attr-hyperlink-rel">rel</code> content attribute.</p>
 
-  <p>The <code>area</code> element also supports the <code>URLUtils</code> interface. The <span title="concept-uu-input">input</span> is
-  the value of the element's <code
-  title="attr-hyperlink-href">href</code> content attribute, if there is such an
-  attribute, or the empty string otherwise; the <span title="concept-uu-base">base</span>
-  is <span>the element's base URL</span>; the <span title="concept-uu-query-encoding">query encoding</span>
-  being the <span>document's character encoding</span>; and the <span
-  title="concept-uu-update">update steps</span> being the same as setting the element's
-  <code title="attr-hyperlink-href">href</code> content attribute to the new output value.</p>
+  <hr><!-- concept-uu -->
 
+  <p>The <code>area</code> element also supports the <code>URLUtils</code> interface. <a
+  href="#refsURL">[URL]</a></p>
+
+  <p>When the element is created, and whenever the element's <code
+  title="attr-hyperlink-href">href</code> content attribute is set, changed, or removed, the user
+  agent must invoke the element's <code>URLUtils</code> interface's <span
+  title="concept-uu-set-the-input">set the input</span> algorithm with the value of the <code
+  title="attr-hyperlink-href">href</code> content attribute, if any, or the empty string otherwise,
+  as the given value.</p>
+
+  <p>The element's <code>URLUtils</code> interface's <span title="concept-uu-get-the-base">get the
+  base</span> algorithm must simply return <span>the element's base URL</span>.</p>
+
+  <p>The element's <code>URLUtils</code> interface's <span title="concept-uu-query-encoding">query
+  encoding</span> is the <span>document's character encoding</span>.</p>
+
+  <p>When the element's <code>URLUtils</code> interface invokes its <span
+  title="concept-uu-update">update steps</span>, if the element's <code>URLUtils</code> interface's
+  <span title="concept-uu-url">url</span> is not null, then the user agent must set the element's
+  <code title="attr-hyperlink-href">href</code> content attribute to the <span
+  title="concept-url-serializer">serialization</span> of the element's <code>URLUtils</code>
+  interface's <span title="concept-uu-url">url</span>; otherwise, it must set the element's <code
+  title="attr-hyperlink-href">href</code> content attribute to the element's <code>URLUtils</code>
+  interface's <span title="concept-uu-input">input</span>.</p>
+
   </div>
 
 
@@ -65304,7 +65339,7 @@
       component to <var title="">query</var>.</p>
 
       <p>Let <var title="">destination</var> be a new <span>URL</span> formed by applying the
-      <span>URL serializer</span> algorithm to <var title="">parsed action</var>.</p>
+      <span title="concept-url-serializer">URL serializer</span> algorithm to <var title="">parsed action</var>.</p>
 
       <p><span>Navigate</span><!--DONAV form--> <var title="">target browsing context</var> to <var
       title="">destination</var>. If <var title="">replace</var> is true, then <var title="">target
@@ -67045,7 +67080,7 @@
   title="event-show">show</code> at <var title="">menu</var>, using the <code>RelatedEvent</code>
   interface, with the <code title="dom-RelatedEvent-relatedTarget">relatedTarget</code> attribute
   initialized to <var title="">subject</var>. The event must be cancelable. <!-- v2: include
-  modifier key information --></p></li>
+  modifier key information --></p>
 
   <p>If <em>this</em> event (the <code title="event-show">show</code> event) is not canceled, then
   the user agent must <span title="construct and show a menu">construct and show</span> the menu for
@@ -68749,7 +68784,7 @@
     the browsing context name. If these rules result in the creation of a new <span>browsing
     context</span>, set <var title="">replace</var> to true.</p> <!-- c.f. concept-fs-target -->
 
-    <p>Otherwise, let <var title=">target</var> be the <span>browsing context</span> that <var
+    <p>Otherwise, let <var title="">target</var> be the <span>browsing context</span> that <var
     title="">subject</var> itself is in.</p>
 
    </li>
@@ -76780,7 +76815,7 @@
   [Replaceable] readonly attribute <span>WindowProxy</span> <span title="dom-self">self</span>;
   [Unforgeable] readonly attribute <span>Document</span> <span title="dom-document">document</span>;
            attribute DOMString <span title="dom-name">name</span>; <!-- not [Replaceable] per WebKit and IE8 -->
-  [PutForwards=<span title="dom-location-href">href</span>, Unforgeable] readonly attribute <span>Location</span> <span title="dom-location">location</span>;
+  [PutForwards=<span title="dom-url-href">href</span>, Unforgeable] readonly attribute <span>Location</span> <span title="dom-location">location</span>;
   readonly attribute <span>History</span> <span title="dom-history">history</span>;
   [Replaceable] readonly attribute <span>BarProp</span> <span title="dom-window-locationbar">locationbar</span>;
   [Replaceable] readonly attribute <span>BarProp</span> <span title="dom-window-menubar">menubar</span>;
@@ -78544,7 +78579,7 @@
   title="traverse the history">session history traversal</span>.</p>
 
   <p class="note">The <span>current entry</span> is usually an entry
-  for the <span title="dom-location-href">location</span> of the
+  for the <span title="the document's address">address</span> of the
   <code>Document</code>. However, it can also be one of the entries
   for <span title="state object">state objects</span> added to the
   history by that document.</p>
@@ -79070,7 +79105,6 @@
   title="dom-history">history</code> object.</p>
 
   <pre class="idl">[Unforgeable] interface <dfn>Location</dfn> {
-  stringifier attribute DOMString <span title="dom-location-href">href</span>;
   void <span title="dom-location-assign">assign</span>(DOMString url);
   void <span title="dom-location-replace">replace</span>(DOMString url);
   void <span title="dom-location-reload">reload</span>();
@@ -79079,16 +79113,6 @@
 
   <dl class="domintro">
 
-   <dt><var title="">location</var> . <code title="dom-location-href">href</code> [ = <var title="">value</var> ]</dt>
-
-   <dd>
-
-    <p>Returns the current page's location.</p>
-
-    <p>Can be set, to navigate to another page.</p>
-
-   </dd>
-
    <dt><var title="">location</var> . <code title="dom-location-assign">assign</code>(<var title="">url</var>)</dt>
 
    <dd>
@@ -79120,17 +79144,6 @@
   <p>The <i>relevant <code>Document</code></i> is the <code>Location</code> object's associated
   <code>Document</code> object's <span>browsing context</span>'s <span>active document</span>.</p>
 
-  <p>The <dfn title="dom-location-href"><code>href</code></dfn> attribute must return <span
-  title="the document's address">the address</span> of the <i>relevant <code>Document</code></i>, as
-  an <span>absolute URL</span>.</p>
-
-  <p>On setting, if the <code>Location</code> object's <i>relevant <code>Document</code></i> has
-  <span>completely loaded</span>, then the user agent must act as if the <code
-  title="dom-location-assign">assign()</code> method had been called with the new value as its
-  argument. Otherwise, the user agent must act as if the <code
-  title="dom-location-replace">replace()</code> method had been called with the new value as its
-  argument.</p> <!--DONAV location.href, defined in terms of the paragraphs below-->
-
   <p>When the <dfn title="dom-location-assign"><code>assign(<var title="">url</var>)</code></dfn>
   method is invoked, the UA must <span title="resolve a url">resolve</span> the argument, relative
   to the <span>entry script</span>'s <span title="script's base URL">base URL</span>, and if that is
@@ -79208,21 +79221,60 @@
   user agent may instead perform <span>an overridden reload</span> rather than the navigation
   described in this paragraph.</p>
 
-  <p>The <code>Location</code> interface also supports the <code>URLUtils</code> interface. <span
-  class="impl">The <span title="concept-uu-input">input</span> is <span title="the document's
-  address">the address</span> of the <i>relevant <code>Document</code></i> (same as the <code
-  title="dom-location-href">href</code> attribute), as an <span>absolute URL</span>; the <span
-  title="concept-uu-base">base</span> is the <span>entry script</span>'s <span title="script's base
-  URL">base URL</span> (which can be different each time members on the interface are invoked); the
-  <span title="concept-uu-query-encoding">query encoding</span> is the <span>document's character
-  encoding</span>; and the <span title="concept-uu-update">update steps</span> are the same as
-  setting the <code title="dom-location-href">href</code> attribute to the new output
-  value.</span></p>
+  <hr>
 
   </div>
 
+  <!-- concept-uu -->
 
+  <p>The <code>Location</code> interface also supports the <code>URLUtils</code> interface. <a
+  href="#refsURL">[URL]</a></p>
 
+  <div class="impl">
+
+  <p>When the object is created, and whenever the <span title="the document's address">the
+  address</span> of the <i>relevant <code>Document</code></i> changes, the user agent must invoke
+  the element's <code>URLUtils</code> interface's <span title="concept-uu-set-the-input">set the
+  input</span> algorithm with <span title="the document's address">the address</span> of the
+  <i>relevant <code>Document</code></i> as the given value.</p>
+
+  <p>The element's <code>URLUtils</code> interface's <span title="concept-uu-get-the-base">get the
+  base</span> algorithm must return the <span>entry script</span>'s <span title="script's base
+  URL">base URL</span>, if there is one, or null otherwise.</p>
+
+  <p>The element's <code>URLUtils</code> interface's <span title="concept-uu-query-encoding">query
+  encoding</span> is the <span>document's character encoding</span>.</p>
+
+  <p>When the element's <code>URLUtils</code> interface invokes its <span
+  title="concept-uu-update">update steps</span>, the user agent must run the following steps:</p>
+
+  <ol>
+
+   <li>
+
+    <p>If the object's <code>URLUtils</code> interface's <span title="concept-uu-url">url</span> is
+    not null, then let <var title="">URL</var> be the <span
+    title="concept-url-serializer">serialization</span> of the object's <code>URLUtils</code>
+    interface's <span title="concept-uu-url">url</span>.</p>
+
+    <p>Otherwise, let <var title="">URL</var> be the object's <code>URLUtils</code> interface's
+    <span title="concept-uu-input">input</span>.</p>
+
+   </li>
+
+   <li><p>If the <code>Location</code> object's <i>relevant <code>Document</code></i> has
+   <span>completely loaded</span>, then act as if the <code
+   title="dom-location-assign">assign()</code> method had been called with the new value as its
+   argument. Otherwise, act as if the <code title="dom-location-replace">replace()</code> method had
+   been called with the new value as its argument.</p></li>
+   <!--DONAV location.href, defined in terms of the paragraphs far above-->
+
+  </ol>
+
+  </div>
+
+
+
 <!--ADD-TOPIC:Security-->
   <div class="impl">
 
@@ -79237,7 +79289,7 @@
 
   <ul>
 
-   <li>The <code title="dom-location-href">href</code> setter, if the <span>entry script</span>'s
+   <li>The <code title="dom-url-href">href</code> setter, if the <span>entry script</span>'s
    <span>script's browsing context</span> is <span>allowed to navigate</span> the <span>browsing
    context</span> with which the <code>Location</code> object is associated
 
@@ -79965,7 +80017,7 @@
   whose value is not the empty string, then, as soon as the element is <span title="insert an
   element into a document">inserted into the document</span>, the user agent must <span
   title="resolve a url">resolve</span> the value of that attribute relative to that element, and if
-  that is successful, must apply the <span>URL serializer</span> algorithm to the resulting
+  that is successful, must apply the <span title="concept-url-serializer">URL serializer</span> algorithm to the resulting
   <span>parsed URL</span> with the <i>exclude fragment flag</i> set to obtain <var title="">manifest
   URL</var>, and then run the <span title="concept-appcache-init">application cache selection
   algorithm</span> with <var title="">manifest URL</var> as the manifest URL, passing in the
@@ -81711,7 +81763,7 @@
   <p><span title="relative URL">Relative URLs</span> must be given relative to the manifest's own
   URL. All URLs in the manifest must have the same <span title="concept-url-scheme">scheme</span> as
   the manifest itself (either explicitly or implicitly, through the use of <span title="relative
-  url">relative URLs</span>). <a href="#refsURL">[URL]</a></p>
+  URL">relative URLs</span>). <a href="#refsURL">[URL]</a></p>
 
   <p>URLs in manifests must not have fragment identifiers (i.e. the U+0023 NUMBER SIGN character
   isn't allowed in URLs in manifests).</p>
@@ -81882,7 +81934,7 @@
       title="concept-url-scheme">scheme</span> component than <var title="">base URL</var> (the
       manifest's URL), then jump back to the step labeled "start of line".</p>
 
-      <p>Let <var title="">new URL</var> be the result of applying the <span>URL serializer</span>
+      <p>Let <var title="">new URL</var> be the result of applying the <span title="concept-url-serializer">URL serializer</span>
       algorithm to the resulting <span>parsed URL</span>, with the <i>exclude fragment flag</i>
       set.</p>
 
@@ -81906,11 +81958,11 @@
       <var title="">part two</var> does not have the <span>same origin</span> as the manifest's URL,
       then jump back to the step labeled "start of line".</p> <!-- SECURITY -->
 
-      <p>Let <var title="">part one</var> be the result of applying the <span>URL serializer</span>
+      <p>Let <var title="">part one</var> be the result of applying the <span title="concept-url-serializer">URL serializer</span>
       algorithm to the first resulting <span>parsed URL</span>, with the <i>exclude fragment
       flag</i> set.</p>
 
-      <p>Let <var title="">part two</var> be the result of applying the <span>URL serializer</span>
+      <p>Let <var title="">part two</var> be the result of applying the <span title="concept-url-serializer">URL serializer</span>
       algorithm to the second resulting <span>parsed URL</span>, with the <i>exclude fragment
       flag</i> set.</p>
 
@@ -81942,7 +81994,7 @@
       title="concept-url-scheme">scheme</span> component than <var title="">base URL</var> (the
       manifest's URL), then jump back to the step labeled "start of line".</p>
 
-      <p>Let <var title="">new URL</var> be the result of applying the <span>URL serializer</span>
+      <p>Let <var title="">new URL</var> be the result of applying the <span title="concept-url-serializer">URL serializer</span>
       algorithm to the resulting <span>parsed URL</span>, with the <i>exclude fragment flag</i>
       set.</p>
 
@@ -82277,7 +82329,7 @@
       algorithm to the resource's <span>URL</span> results in a <span>parsed URL</span> that has a
       non-null <span title="concept-url-fragment">fragment</span> component, the <span>URL</span>
       used for the entry in <var title="">cache</var> must instead be the <span>absolute URL</span>
-      obtained from applying the <span>URL serializer</span> algorith, to the <span>parsed
+      obtained from applying the <span title="concept-url-serializer">URL serializer</span> algorith, to the <span>parsed
       URL</span> with the <i>exclude fragment flag</i> set (application caches never include
       fragment identifiers).</p>
 
@@ -83613,7 +83665,7 @@
    <dd>
 
     <p>A <span>URL</span>, set when the script is created, used to resolve <span title="relative
-    url">relative URLs</span>. <span id="sbu-not-copy" title="">If the base URL is set from another
+    URL">relative URLs</span>. <span id="sbu-not-copy" title="">If the base URL is set from another
     source, e.g. a <span>document base URL</span>, then the <span>script's base URL</span> must
     follow the source, so that if the source's changes, so does the script's.</span></p>
 
@@ -91871,7 +91923,7 @@
 
   <p>User agents should filter potentially active (scripted) content (e.g. HTML) when it is dragged
   and when it is dropped, using a whitelist of known-safe features. Similarly, <span title="relative
-  url">relative URLs</span> should be turned into absolute URLs to avoid references changing in
+  URL">relative URLs</span> should be turned into absolute URLs to avoid references changing in
   unexpected ways. This specification does not specify how this is performed.</p>
 
   <div class="example">
@@ -93566,22 +93618,23 @@
 
   <h4>Worker locations</h4>
 
-  <pre class="idl">interface <dfn>WorkerLocation</dfn> {
-  stringifier readonly attribute DOMString <span title="dom-WorkerLocation-href">href</span>;
-};
+  <pre class="idl">interface <dfn>WorkerLocation</dfn> { };
 <span>WorkerLocation</span> implements <span>URLUtilsReadOnly</span>;</pre>
 
   <p>A <code>WorkerLocation</code> object represents an <span>absolute URL</span> set at its
   creation.</p>
 
-  <p>The <dfn title="dom-WorkerLocation-href"><code>href</code></dfn> attribute must return the
-  <span>absolute URL</span> that the object represents.</p>
+  <p>The <code>WorkerLocation</code> interface supports the <code>URLUtilsReadOnly</code>
+  interface. <a href="#refsURL">[URL]</a></p>
 
-  <p>The <code>WorkerLocation</code> interface also supports the <code>URLUtilsReadOnly</code>
-  interface. The <span title="concept-uu-input">input</span> is the <span>absolute URL</span> that
-  the object represents (same as the <code title="dom-WorkerLocation-href">href</code>
-  attribute). <a href="#refsURL">[URL]</a></p>
+  <p>When the object is created, the user agent must invoke the element's
+  <code>URLUtilsReadOnly</code> interface's <span title="concept-uu-set-the-input">set the
+  input</span> algorithm with the <span>absolute URL</span> that the <code>WorkerLocation</code>
+  object represents as the given value.</p>
 
+  <p>The element's <code>URLUtilsReadOnly</code> interface's <span
+  title="concept-uu-get-the-base">get the base</span> algorithm must return null.</p>
+
   <p>The <code>WorkerLocation</code> interface must only be <span title="expose">exposed</span> if
   the <span>JavaScript global environment</span> is a <span>worker environment</span>.</p>
 
@@ -95493,9 +95546,8 @@
    </li>
 
    <li><p>If the resulting <span>parsed URL</span> does not have a <span
-   title="concept-url-scheme">scheme</span> component whose value, when <span>converted to ASCII
-   lowercase</span>, is either "<code title="">ws</code>" or "<code title="">wss</code>", then fail
-   this algorithm.</p></li>
+   title="concept-url-scheme">scheme</span> component whose value is either "<code
+   title="">ws</code>" or "<code title="">wss</code>", then fail this algorithm.</p></li>
 
    <li><p>If the resulting <span>parsed URL</span> has a non-null <span
    title="concept-url-fragment">fragment</span> component, then fail this algorithm.</p></li>
@@ -95506,8 +95558,8 @@
    title="">wss</code>", set <var title="">secure</var> to true.</p></li>
 
    <li><p>Let <var title="">host</var> be the value of the resulting <span>parsed URL</span>'s <span
-   title="concept-url-host">host</span> component, <span>converted to ASCII
-   lowercase</span>.</p></li> <!-- at this point this is Punycode-encoded already -->
+   title="concept-url-host">host</span> component.</p></li> <!-- at this point this is
+   Punycode-encoded and lowercased already -->
 
    <li><p>If the resulting <span>parsed URL</span> has a <span title="concept-url-port">port</span>
    component that is not the empty string, then let <var title="">port</var> be that component's
@@ -103267,7 +103319,7 @@
     <span>absolute URL</span>, relative to the newly created element,
     and if that is successful, run the <span
     title="concept-appcache-init">application cache selection
-    algorithm</span> with the result of applying the <span>URL serializer</span> algorithm to
+    algorithm</span> with the result of applying the <span title="concept-url-serializer">URL serializer</span> algorithm to
     the resulting <span>parsed URL</span> with the <i>exclude fragment flag</i> set; otherwise, if there is no such attribute, or its value is
     the empty string, or resolving its value fails, run the <span
     title="concept-appcache-init">application cache selection




More information about the Commit-Watchers mailing list