[html5] r4628 - [giow] (2) Make about:blank loading async, but make <iframe> and <object> not na [...]

whatwg at whatwg.org whatwg at whatwg.org
Wed Jan 27 00:31:58 PST 2010


Author: ianh
Date: 2010-01-27 00:31:56 -0800 (Wed, 27 Jan 2010)
New Revision: 4628

Modified:
   complete.html
   index
   source
Log:
[giow] (2) Make about:blank loading async, but make <iframe> and <object> not navigate to it if that's their starting point.

Modified: complete.html
===================================================================
--- complete.html	2010-01-27 01:49:13 UTC (rev 4627)
+++ complete.html	2010-01-27 08:31:56 UTC (rev 4628)
@@ -5121,12 +5121,8 @@
   the following steps must be run. (When a <em>URL</em> is to be
   fetched, the URL identifies a resource to be obtained.)</p>
 
-  <ol><li><p>If the resource is identified by the <a href=#url>URL</a>
-   <dfn id=about:blank><code>about:blank</code></dfn>, then return the empty string
-   and abort these steps.</li>
+  <ol><li>
 
-   <li>
-
     <p>Generate the <i>address of the resource from which Request-URIs
     are obtained</i> as required by HTTP for the <code title=http-referer>Referer</code> (sic) header from <a href="#the-document's-current-address">the
     document's current address</a> of the appropriate
@@ -5184,6 +5180,11 @@
     explicitly initiated from an <i title="">origin</i>, then <i title="">the origin that initiated the HTTP request</i> is <i title="">origin</i>. Otherwise, this is <i title="">a request from
     a "privacy-sensitive" context</i>. <a href=#refsORIGIN>[ORIGIN]</a></p>
 
+    <p>If the resource is identified by the <a href=#url>URL</a>
+    <dfn id=about:blank><code>about:blank</code></dfn>, then the resource is
+    immediately available and consists of the empty string, with no
+    metadata.</p>
+
    </li>
 
    <li>
@@ -19624,7 +19625,8 @@
   <p>When an <code><a href=#the-iframe-element>iframe</a></code> element is first <a href=#insert-an-element-into-a-document title="insert
   an element into a document">inserted into a document</a>, the
   user agent must create a <a href=#nested-browsing-context>nested browsing context</a>, and
-  then <a href=#process-the-iframe-attributes>process the <code>iframe</code> attributes</a>.</p>
+  then <a href=#process-the-iframe-attributes>process the <code>iframe</code> attributes</a> for the
+  first time.</p>
 
   <p>Whenever an <code><a href=#the-iframe-element>iframe</a></code> element with a <a href=#nested-browsing-context>nested
   browsing context</a> has its <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute set or changed,
@@ -19656,12 +19658,25 @@
 
    <dd>
 
-    <ol><li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the value of
+    <ol><!--
+     <li><p>If the value of the <code
+     title="attr-iframe-src">src</code> attribute is the empty string,
+     and the user agent is processing this <code>iframe</code>'s
+     attributes for the first time, then abort these steps.</p></li>
+--><li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the value of
      the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute, relative
      to the <code><a href=#the-iframe-element>iframe</a></code> element.</li>
 
-     <li><p>If that is successful, <a href=#navigate>navigate</a> the element's
-     <a href=#browsing-context>browsing context</a> to the resulting <a href=#absolute-url>absolute
+     <li><p>If that is not successful, abort these steps.</li>
+
+     <li><p>If the resulting <a href=#absolute-url>absolute URL</a> is an
+     <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string
+     "<code><a href=#about:blank>about:blank</a></code>", and the user agent is processing this
+     <code><a href=#the-iframe-element>iframe</a></code>'s attributes for the first time, then abort
+     these steps.</li>
+
+     <li><p><a href=#navigate>Navigate</a> the element's <a href=#browsing-context>browsing
+     context</a> to the resulting <a href=#absolute-url>absolute
      URL</a>.</li>
 
     </ol></dd>
@@ -19673,11 +19688,12 @@
   browsing context</a>.</p>
 
   <p>Furthermore, if the <a href=#process-the-iframe-attributes>process the <code>iframe</code>
-  attributes</a> algorithm was invoked as a result of the element
-  being <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted into
-  a document</a>, then any <a href=#navigate title=navigate>navigation</a>
-  required of the user agent in that algorithm must be completed with
-  <a href=#replacement-enabled>replacement enabled</a>.</p>
+  attributes</a> algorithm was invoked for the first time for this
+  element (i.e. as a result of the element being <a href=#insert-an-element-into-a-document title="insert
+  an element into a document">inserted into a document</a>), then
+  any <a href=#navigate title=navigate>navigation</a> required of the user
+  agent in that algorithm must be completed with <a href=#replacement-enabled>replacement
+  enabled</a>.</p>
 
   </div>
 
@@ -20632,6 +20648,9 @@
 
    <li>
 
+    <!-- what if it's not in the document? if that should prevent
+    plugin instantiation, then here just skip to the last step -->
+
     <p>If the <code title=attr-object-classid><a href=#attr-object-classid>classid</a></code>
     attribute is present, and has a value that isn't the empty string,
     then: if the user agent can find a <a href=#plugin>plugin</a> suitable
@@ -20672,7 +20691,7 @@
    -->
 
    <li><p>If the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute
-   is present, then:</p>
+   is present and its value is not the empty string, then:</p>
 
     <ol><li><p>If the <code title=attr-object-type><a href=#attr-object-type>type</a></code>
      attribute is present and its value is not a type that the user
@@ -20681,24 +20700,26 @@
      step in the overall set of steps (fallback) without fetching the
      content to examine its real type.</li>
 
+     <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the
+     <a href=#url>URL</a> specified by the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute, relative to the
+     element.</li>
+
+     <li><p>If that failed, <a href=#fire-a-simple-event>fire a simple event</a> named
+     <code title=event-error>error</code> at the element, then jump
+     to the last step in the overall set of steps (fallback).</li>
+
      <li>
 
-      <p><a href=#resolve-a-url title="resolve a url">Resolve</a> the
-      <a href=#url>URL</a> specified by the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute, relative to the
-      element.</p>
+      <p><a href=#fetch>Fetch</a> the resulting <a href=#absolute-url>absolute URL</a>,
+      from the element's <a href=#browsing-context-scope-origin>browsing context scope origin</a> if
+      it has one<!-- potentially http-origin privacy sensitive
+      -->.</p>
 
-      <p>If that is successful, <a href=#fetch>fetch</a> the resulting
-      <a href=#absolute-url>absolute URL</a>, from the element's <a href=#browsing-context-scope-origin>browsing
-      context scope origin</a> if it has one<!-- potentially
-      http-origin privacy sensitive -->.</p>
+      <!-- similar text in various places --> <p>Fetching the resource
+      must <a href=#delay-the-load-event>delay the load event</a> of the element's document
+      until the <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a task">queued</a> by the <a href=#networking-task-source>networking task
+      source</a> once the resource has been <a href=#fetch title=fetch>fetched</a> (defined next) has been run.</p>
 
-      <!-- similar text in various places -->
-      <p>Fetching the resource must <a href=#delay-the-load-event>delay the load event</a>
-      of the element's document until the <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a
-      task">queued</a> by the <a href=#networking-task-source>networking task source</a>
-      once the resource has been <a href=#fetch title=fetch>fetched</a>
-      (defined next) has been run.</p>
-
      </li>
 
      <li><p>If the resource is not yet available (e.g. because the
@@ -20712,12 +20733,10 @@
      to consider a resource "available" whenever enough data has been
      obtained to begin processing the resource.</li>
 
-     <li><p>If the load failed (e.g. the <a href=#url>URL</a> could not be
-     <a href=#resolve-a-url title="resolve a url">resolved</a>, there was an HTTP
-     404 error, there was a DNS error), <a href=#fire-a-simple-event>fire a simple
-     event</a> named <code title=event-error>error</code> at the
-     element, then jump to the last step in the overall set of steps
-     (fallback).</li>
+     <li><p>If the load failed (e.g. there was an HTTP 404 error,
+     there was a DNS error), <a href=#fire-a-simple-event>fire a simple event</a> named
+     <code title=event-error>error</code> at the element, then jump
+     to the last step in the overall set of steps (fallback).</li>
 
      <li><p>Determine the <var title="">resource type</var>, as follows:</p>
 
@@ -20857,11 +20876,12 @@
 
         <p>The <code><a href=#the-object-element>object</a></code> element must be associated with a
         <a href=#nested-browsing-context>nested browsing context</a>, if it does not already
-        have one. The element's <a href=#nested-browsing-context>nested browsing context</a>
-        must then be <a href=#navigate title=navigate>navigated</a> to the
-        given resource, with <a href=#replacement-enabled>replacement enabled</a>, and
-        with the <code><a href=#the-object-element>object</a></code> element's document's
-        <a href=#browsing-context>browsing context</a> as the <a href=#source-browsing-context>source browsing
+        have one. If the <a href=#url>URL</a> of the given resource is not
+        <code><a href=#about:blank>about:blank</a></code>, the element's <a href=#nested-browsing-context>nested browsing
+        context</a> must then be <a href=#navigate title=navigate>navigated</a> to that resource, with
+        <a href=#replacement-enabled>replacement enabled</a>, and with the
+        <code><a href=#the-object-element>object</a></code> element's document's <a href=#browsing-context>browsing
+        context</a> as the <a href=#source-browsing-context>source browsing
         context</a>. (The <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute of the
         <code><a href=#the-object-element>object</a></code> element doesn't get updated if the
         browsing context gets further navigated to other
@@ -56658,11 +56678,7 @@
 
    <li>
 
-    <p>If fetching the resource is synchronous (i.e. for
-    <code><a href=#about:blank>about:blank</a></code>), then this must be synchronous, but if
-    fetching the resource depends on external resources, as it usually
-    does for URLs that use HTTP or other networking protocols, then at
-    this point the user agents must return to whatever algorithm
+    <p>At this point the user agents must return to whatever algorithm
     invoked the navigation steps and must continue these steps
     asynchronously.</p>
 

Modified: index
===================================================================
--- index	2010-01-27 01:49:13 UTC (rev 4627)
+++ index	2010-01-27 08:31:56 UTC (rev 4628)
@@ -5021,12 +5021,8 @@
   the following steps must be run. (When a <em>URL</em> is to be
   fetched, the URL identifies a resource to be obtained.)</p>
 
-  <ol><li><p>If the resource is identified by the <a href=#url>URL</a>
-   <dfn id=about:blank><code>about:blank</code></dfn>, then return the empty string
-   and abort these steps.</li>
+  <ol><li>
 
-   <li>
-
     <p>Generate the <i>address of the resource from which Request-URIs
     are obtained</i> as required by HTTP for the <code title=http-referer>Referer</code> (sic) header from <a href="#the-document's-current-address">the
     document's current address</a> of the appropriate
@@ -5084,6 +5080,11 @@
     explicitly initiated from an <i title="">origin</i>, then <i title="">the origin that initiated the HTTP request</i> is <i title="">origin</i>. Otherwise, this is <i title="">a request from
     a "privacy-sensitive" context</i>. <a href=#refsORIGIN>[ORIGIN]</a></p>
 
+    <p>If the resource is identified by the <a href=#url>URL</a>
+    <dfn id=about:blank><code>about:blank</code></dfn>, then the resource is
+    immediately available and consists of the empty string, with no
+    metadata.</p>
+
    </li>
 
    <li>
@@ -19524,7 +19525,8 @@
   <p>When an <code><a href=#the-iframe-element>iframe</a></code> element is first <a href=#insert-an-element-into-a-document title="insert
   an element into a document">inserted into a document</a>, the
   user agent must create a <a href=#nested-browsing-context>nested browsing context</a>, and
-  then <a href=#process-the-iframe-attributes>process the <code>iframe</code> attributes</a>.</p>
+  then <a href=#process-the-iframe-attributes>process the <code>iframe</code> attributes</a> for the
+  first time.</p>
 
   <p>Whenever an <code><a href=#the-iframe-element>iframe</a></code> element with a <a href=#nested-browsing-context>nested
   browsing context</a> has its <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute set or changed,
@@ -19556,12 +19558,25 @@
 
    <dd>
 
-    <ol><li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the value of
+    <ol><!--
+     <li><p>If the value of the <code
+     title="attr-iframe-src">src</code> attribute is the empty string,
+     and the user agent is processing this <code>iframe</code>'s
+     attributes for the first time, then abort these steps.</p></li>
+--><li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the value of
      the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute, relative
      to the <code><a href=#the-iframe-element>iframe</a></code> element.</li>
 
-     <li><p>If that is successful, <a href=#navigate>navigate</a> the element's
-     <a href=#browsing-context>browsing context</a> to the resulting <a href=#absolute-url>absolute
+     <li><p>If that is not successful, abort these steps.</li>
+
+     <li><p>If the resulting <a href=#absolute-url>absolute URL</a> is an
+     <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string
+     "<code><a href=#about:blank>about:blank</a></code>", and the user agent is processing this
+     <code><a href=#the-iframe-element>iframe</a></code>'s attributes for the first time, then abort
+     these steps.</li>
+
+     <li><p><a href=#navigate>Navigate</a> the element's <a href=#browsing-context>browsing
+     context</a> to the resulting <a href=#absolute-url>absolute
      URL</a>.</li>
 
     </ol></dd>
@@ -19573,11 +19588,12 @@
   browsing context</a>.</p>
 
   <p>Furthermore, if the <a href=#process-the-iframe-attributes>process the <code>iframe</code>
-  attributes</a> algorithm was invoked as a result of the element
-  being <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted into
-  a document</a>, then any <a href=#navigate title=navigate>navigation</a>
-  required of the user agent in that algorithm must be completed with
-  <a href=#replacement-enabled>replacement enabled</a>.</p>
+  attributes</a> algorithm was invoked for the first time for this
+  element (i.e. as a result of the element being <a href=#insert-an-element-into-a-document title="insert
+  an element into a document">inserted into a document</a>), then
+  any <a href=#navigate title=navigate>navigation</a> required of the user
+  agent in that algorithm must be completed with <a href=#replacement-enabled>replacement
+  enabled</a>.</p>
 
   </div>
 
@@ -20532,6 +20548,9 @@
 
    <li>
 
+    <!-- what if it's not in the document? if that should prevent
+    plugin instantiation, then here just skip to the last step -->
+
     <p>If the <code title=attr-object-classid><a href=#attr-object-classid>classid</a></code>
     attribute is present, and has a value that isn't the empty string,
     then: if the user agent can find a <a href=#plugin>plugin</a> suitable
@@ -20572,7 +20591,7 @@
    -->
 
    <li><p>If the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute
-   is present, then:</p>
+   is present and its value is not the empty string, then:</p>
 
     <ol><li><p>If the <code title=attr-object-type><a href=#attr-object-type>type</a></code>
      attribute is present and its value is not a type that the user
@@ -20581,24 +20600,26 @@
      step in the overall set of steps (fallback) without fetching the
      content to examine its real type.</li>
 
+     <li><p><a href=#resolve-a-url title="resolve a url">Resolve</a> the
+     <a href=#url>URL</a> specified by the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute, relative to the
+     element.</li>
+
+     <li><p>If that failed, <a href=#fire-a-simple-event>fire a simple event</a> named
+     <code title=event-error>error</code> at the element, then jump
+     to the last step in the overall set of steps (fallback).</li>
+
      <li>
 
-      <p><a href=#resolve-a-url title="resolve a url">Resolve</a> the
-      <a href=#url>URL</a> specified by the <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute, relative to the
-      element.</p>
+      <p><a href=#fetch>Fetch</a> the resulting <a href=#absolute-url>absolute URL</a>,
+      from the element's <a href=#browsing-context-scope-origin>browsing context scope origin</a> if
+      it has one<!-- potentially http-origin privacy sensitive
+      -->.</p>
 
-      <p>If that is successful, <a href=#fetch>fetch</a> the resulting
-      <a href=#absolute-url>absolute URL</a>, from the element's <a href=#browsing-context-scope-origin>browsing
-      context scope origin</a> if it has one<!-- potentially
-      http-origin privacy sensitive -->.</p>
+      <!-- similar text in various places --> <p>Fetching the resource
+      must <a href=#delay-the-load-event>delay the load event</a> of the element's document
+      until the <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a task">queued</a> by the <a href=#networking-task-source>networking task
+      source</a> once the resource has been <a href=#fetch title=fetch>fetched</a> (defined next) has been run.</p>
 
-      <!-- similar text in various places -->
-      <p>Fetching the resource must <a href=#delay-the-load-event>delay the load event</a>
-      of the element's document until the <a href=#concept-task title=concept-task>task</a> that is <a href=#queue-a-task title="queue a
-      task">queued</a> by the <a href=#networking-task-source>networking task source</a>
-      once the resource has been <a href=#fetch title=fetch>fetched</a>
-      (defined next) has been run.</p>
-
      </li>
 
      <li><p>If the resource is not yet available (e.g. because the
@@ -20612,12 +20633,10 @@
      to consider a resource "available" whenever enough data has been
      obtained to begin processing the resource.</li>
 
-     <li><p>If the load failed (e.g. the <a href=#url>URL</a> could not be
-     <a href=#resolve-a-url title="resolve a url">resolved</a>, there was an HTTP
-     404 error, there was a DNS error), <a href=#fire-a-simple-event>fire a simple
-     event</a> named <code title=event-error>error</code> at the
-     element, then jump to the last step in the overall set of steps
-     (fallback).</li>
+     <li><p>If the load failed (e.g. there was an HTTP 404 error,
+     there was a DNS error), <a href=#fire-a-simple-event>fire a simple event</a> named
+     <code title=event-error>error</code> at the element, then jump
+     to the last step in the overall set of steps (fallback).</li>
 
      <li><p>Determine the <var title="">resource type</var>, as follows:</p>
 
@@ -20757,11 +20776,12 @@
 
         <p>The <code><a href=#the-object-element>object</a></code> element must be associated with a
         <a href=#nested-browsing-context>nested browsing context</a>, if it does not already
-        have one. The element's <a href=#nested-browsing-context>nested browsing context</a>
-        must then be <a href=#navigate title=navigate>navigated</a> to the
-        given resource, with <a href=#replacement-enabled>replacement enabled</a>, and
-        with the <code><a href=#the-object-element>object</a></code> element's document's
-        <a href=#browsing-context>browsing context</a> as the <a href=#source-browsing-context>source browsing
+        have one. If the <a href=#url>URL</a> of the given resource is not
+        <code><a href=#about:blank>about:blank</a></code>, the element's <a href=#nested-browsing-context>nested browsing
+        context</a> must then be <a href=#navigate title=navigate>navigated</a> to that resource, with
+        <a href=#replacement-enabled>replacement enabled</a>, and with the
+        <code><a href=#the-object-element>object</a></code> element's document's <a href=#browsing-context>browsing
+        context</a> as the <a href=#source-browsing-context>source browsing
         context</a>. (The <code title=attr-object-data><a href=#attr-object-data>data</a></code> attribute of the
         <code><a href=#the-object-element>object</a></code> element doesn't get updated if the
         browsing context gets further navigated to other
@@ -56572,11 +56592,7 @@
 
    <li>
 
-    <p>If fetching the resource is synchronous (i.e. for
-    <code><a href=#about:blank>about:blank</a></code>), then this must be synchronous, but if
-    fetching the resource depends on external resources, as it usually
-    does for URLs that use HTTP or other networking protocols, then at
-    this point the user agents must return to whatever algorithm
+    <p>At this point the user agents must return to whatever algorithm
     invoked the navigation steps and must continue these steps
     asynchronously.</p>
 

Modified: source
===================================================================
--- source	2010-01-27 01:49:13 UTC (rev 4627)
+++ source	2010-01-27 08:31:56 UTC (rev 4628)
@@ -4669,10 +4669,6 @@
 
   <ol>
 
-   <li><p>If the resource is identified by the <span>URL</span>
-   <dfn><code>about:blank</code></dfn>, then return the empty string
-   and abort these steps.</p></li>
-
    <li>
 
     <p>Generate the <i>address of the resource from which Request-URIs
@@ -4745,6 +4741,11 @@
     a "privacy-sensitive" context</i>. <a
     href="#refsORIGIN">[ORIGIN]</a></p>
 
+    <p>If the resource is identified by the <span>URL</span>
+    <dfn><code>about:blank</code></dfn>, then the resource is
+    immediately available and consists of the empty string, with no
+    metadata.</p>
+
    </li>
 
    <li>
@@ -20866,7 +20867,8 @@
   <p>When an <code>iframe</code> element is first <span title="insert
   an element into a document">inserted into a document</span>, the
   user agent must create a <span>nested browsing context</span>, and
-  then <span>process the <code>iframe</code> attributes</span>.</p>
+  then <span>process the <code>iframe</code> attributes</span> for the
+  first time.</p>
 
   <p>Whenever an <code>iframe</code> element with a <span>nested
   browsing context</span> has its <code
@@ -20905,12 +20907,27 @@
 
     <ol>
 
+<!--
+     <li><p>If the value of the <code
+     title="attr-iframe-src">src</code> attribute is the empty string,
+     and the user agent is processing this <code>iframe</code>'s
+     attributes for the first time, then abort these steps.</p></li>
+-->
+
      <li><p><span title="resolve a url">Resolve</span> the value of
      the <code title="attr-iframe-src">src</code> attribute, relative
      to the <code>iframe</code> element.</p></li>
 
-     <li><p>If that is successful, <span>navigate</span> the element's
-     <span>browsing context</span> to the resulting <span>absolute
+     <li><p>If that is not successful, abort these steps.</p></li>
+
+     <li><p>If the resulting <span>absolute URL</span> is an
+     <span>ASCII case-insensitive</span> match for the string
+     "<code>about:blank</code>", and the user agent is processing this
+     <code>iframe</code>'s attributes for the first time, then abort
+     these steps.</p></li>
+
+     <li><p><span>Navigate</span> the element's <span>browsing
+     context</span> to the resulting <span>absolute
      URL</span>.</p></li>
 
     </ol>
@@ -20926,11 +20943,12 @@
   browsing context</span>.</p>
 
   <p>Furthermore, if the <span>process the <code>iframe</code>
-  attributes</span> algorithm was invoked as a result of the element
-  being <span title="insert an element into a document">inserted into
-  a document</span>, then any <span title="navigate">navigation</span>
-  required of the user agent in that algorithm must be completed with
-  <span>replacement enabled</span>.</p>
+  attributes</span> algorithm was invoked for the first time for this
+  element (i.e. as a result of the element being <span title="insert
+  an element into a document">inserted into a document</span>), then
+  any <span title="navigate">navigation</span> required of the user
+  agent in that algorithm must be completed with <span>replacement
+  enabled</span>.</p>
 
   </div>
 
@@ -22011,6 +22029,9 @@
 
    <li>
 
+    <!-- what if it's not in the document? if that should prevent
+    plugin instantiation, then here just skip to the last step -->
+
     <p>If the <code title="attr-object-classid">classid</code>
     attribute is present, and has a value that isn't the empty string,
     then: if the user agent can find a <span>plugin</span> suitable
@@ -22054,7 +22075,7 @@
    -->
 
    <li><p>If the <code title="attr-object-data">data</code> attribute
-   is present, then:</p>
+   is present and its value is not the empty string, then:</p>
 
     <ol>
 
@@ -22065,26 +22086,29 @@
      step in the overall set of steps (fallback) without fetching the
      content to examine its real type.</p></li>
 
+     <li><p><span title="resolve a url">Resolve</span> the
+     <span>URL</span> specified by the <code
+     title="attr-object-data">data</code> attribute, relative to the
+     element.</p></li>
+
+     <li><p>If that failed, <span>fire a simple event</span> named
+     <code title="event-error">error</code> at the element, then jump
+     to the last step in the overall set of steps (fallback).</p></li>
+
      <li>
 
-      <p><span title="resolve a url">Resolve</span> the
-      <span>URL</span> specified by the <code
-      title="attr-object-data">data</code> attribute, relative to the
-      element.</p>
+      <p><span>Fetch</span> the resulting <span>absolute URL</span>,
+      from the element's <span>browsing context scope origin</span> if
+      it has one<!-- potentially http-origin privacy sensitive
+      -->.</p>
 
-      <p>If that is successful, <span>fetch</span> the resulting
-      <span>absolute URL</span>, from the element's <span>browsing
-      context scope origin</span> if it has one<!-- potentially
-      http-origin privacy sensitive -->.</p>
+      <!-- similar text in various places --> <p>Fetching the resource
+      must <span>delay the load event</span> of the element's document
+      until the <span title="concept-task">task</span> that is <span
+      title="queue a task">queued</span> by the <span>networking task
+      source</span> once the resource has been <span
+      title="fetch">fetched</span> (defined next) has been run.</p>
 
-      <!-- similar text in various places -->
-      <p>Fetching the resource must <span>delay the load event</span>
-      of the element's document until the <span
-      title="concept-task">task</span> that is <span title="queue a
-      task">queued</span> by the <span>networking task source</span>
-      once the resource has been <span title="fetch">fetched</span>
-      (defined next) has been run.</p>
-
      </li>
 
      <li><p>If the resource is not yet available (e.g. because the
@@ -22098,12 +22122,10 @@
      to consider a resource "available" whenever enough data has been
      obtained to begin processing the resource.</p></li>
 
-     <li><p>If the load failed (e.g. the <span>URL</span> could not be
-     <span title="resolve a url">resolved</span>, there was an HTTP
-     404 error, there was a DNS error), <span>fire a simple
-     event</span> named <code title="event-error">error</code> at the
-     element, then jump to the last step in the overall set of steps
-     (fallback).</p></li>
+     <li><p>If the load failed (e.g. there was an HTTP 404 error,
+     there was a DNS error), <span>fire a simple event</span> named
+     <code title="event-error">error</code> at the element, then jump
+     to the last step in the overall set of steps (fallback).</p></li>
 
      <li><p>Determine the <var title="">resource type</var>, as follows:</p>
 
@@ -22259,11 +22281,13 @@
 
         <p>The <code>object</code> element must be associated with a
         <span>nested browsing context</span>, if it does not already
-        have one. The element's <span>nested browsing context</span>
-        must then be <span title="navigate">navigated</span> to the
-        given resource, with <span>replacement enabled</span>, and
-        with the <code>object</code> element's document's
-        <span>browsing context</span> as the <span>source browsing
+        have one. If the <span>URL</span> of the given resource is not
+        <code>about:blank</code>, the element's <span>nested browsing
+        context</span> must then be <span
+        title="navigate">navigated</span> to that resource, with
+        <span>replacement enabled</span>, and with the
+        <code>object</code> element's document's <span>browsing
+        context</span> as the <span>source browsing
         context</span>. (The <code
         title="attr-object-data">data</code> attribute of the
         <code>object</code> element doesn't get updated if the
@@ -64038,11 +64062,7 @@
 
    <li>
 
-    <p>If fetching the resource is synchronous (i.e. for
-    <code>about:blank</code>), then this must be synchronous, but if
-    fetching the resource depends on external resources, as it usually
-    does for URLs that use HTTP or other networking protocols, then at
-    this point the user agents must return to whatever algorithm
+    <p>At this point the user agents must return to whatever algorithm
     invoked the navigation steps and must continue these steps
     asynchronously.</p>
 




More information about the Commit-Watchers mailing list