[html5] r7378 - [giow] (3) Attempt to make <iframe> loading more closely match reality. See test [...]

whatwg at whatwg.org whatwg at whatwg.org
Wed Sep 19 15:02:10 PDT 2012


Author: ianh
Date: 2012-09-19 15:02:08 -0700 (Wed, 19 Sep 2012)
New Revision: 7378

Modified:
   complete.html
   index
   source
Log:
[giow] (3) Attempt to make <iframe> loading more closely match reality. See tests in bug.
Fixing https://www.w3.org/Bugs/Public/show_bug.cgi?id=18664
Affected topics: HTML

Modified: complete.html
===================================================================
--- complete.html	2012-09-19 00:16:35 UTC (rev 7377)
+++ complete.html	2012-09-19 22:02:08 UTC (rev 7378)
@@ -26558,54 +26558,47 @@
    <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code>
    document</a>.</dd>
 
-   <dt>If the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code>
-   attribute is specified but the <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute is not</dt>
+   <dt>Otherwise, if the element has no <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute specified, and the
+   user agent is processing the <code><a href=#the-iframe-element>iframe</a></code>'s attributes for
+   the first time</dt>
 
    <dd>
 
-    <ol><li><p>If the value of the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute is the empty string,
-     jump to the <i title="">empty</i> step below.</li>
+    <p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
+    named <code title=event-load>load</code> at the
+    <code><a href=#the-iframe-element>iframe</a></code> element.</p>
 
-     <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>
+   </dd>
 
-     <li><p>If that is not successful, then jump to the <i title="">empty</i> step below.</li>
+   <dt>Otherwise</dt>
 
-     <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 jump to
-     the <i title="">empty</i> step below. (In cases other than the
-     first time, <code><a href=#about:blank>about:blank</a></code> is loaded
-     normally.)</li>
+   <dd>
 
-     <li><p><a href=#navigate>Navigate</a><!--DONAV iframe--> the element's
-     <a href=#browsing-context>browsing context</a> to the resulting <a href=#absolute-url>absolute
-     URL</a>.</li>
+    <ol><li>
 
-    </ol><p><i>Empty</i>: When the steps above require the user agent to
-    jump to the <i title="">empty</i> step, if the user agent is
-    processing this <code><a href=#the-iframe-element>iframe</a></code>'s attributes for the first
-    time, then the user agent must <a href=#queue-a-task>queue a task</a> to
-    <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-load>load</code> at the <code><a href=#the-iframe-element>iframe</a></code> element.
-    (After jumping to this step, the above steps are not resumed.)
-    <span class=note>No <code title=event-load>load</code> event
-    is fired at the <code><a href=#about:blank>about:blank</a></code> document
-    itself.</span></p>
+      <p>If the value of the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code>
+      attribute is the empty string, let <var title="">url</var> be
+      the string "<code><a href=#about:blank>about:blank</a></code>".</p>
 
-   </dd>
+      <p>Otherwise, <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.</p>
 
-   <dt>Otherwise</dt>
+      <p>If that is not successful, then let <var title="">url</var>
+      be the string "<code><a href=#about:blank>about:blank</a></code>". Otherwise, let <var title="">url</var> be the resulting <a href=#absolute-url>absolute
+      URL</a>.</p>
 
-   <dd>
+     </li>
 
-    <p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
-    named <code title=event-load>load</code> at the
-    <code><a href=#the-iframe-element>iframe</a></code> element.</p>
+     <li>
 
-   </dd>
+      <p><a href=#navigate>Navigate</a><!--DONAV iframe--> the element's
+      <a href=#browsing-context>browsing context</a> to <var title="">url</var>.</p>
+      
+     </li>
 
+    </ol></dd>
+
   </dl><p>Any <a href=#navigate title=navigate>navigation</a> required of the user
   agent in the <a href=#process-the-iframe-attributes>process the <code>iframe</code> attributes</a>
   algorithm must be completed as an <a href=#explicit-self-navigation-override>explicit self-navigation
@@ -26613,7 +26606,12 @@
   document's <a href=#browsing-context>browsing context</a> as the <a href=#source-browsing-context>source
   browsing context</a>.</p>
 
-  <p>Furthermore, if the <a href=#browsing-context>browsing context</a>'s <a href=#session-history>session
+  <p>Furthermore, if the <a href=#active-document>active document</a> of the element's
+  <a href=#browsing-context>browsing context</a> before such a <a href=#navigate title=navigate>navigation</a> was not <a href=#completely-loaded>completely
+  loaded</a> at the time of the new <a href=#navigate title=navigate>navigation</a>, then the <a href=#navigate title=navigate>navigation</a> must be completed with
+  <a href=#replacement-enabled>replacement enabled</a>.</p>
+
+  <p>Similarly, if the <a href=#browsing-context>browsing context</a>'s <a href=#session-history>session
   history</a> contained only one <code><a href=#document>Document</a></code> when the
   <a href=#process-the-iframe-attributes>process the <code>iframe</code> attributes</a> algorithm
   was invoked, and that was the <code><a href=#about:blank>about:blank</a></code>
@@ -67225,10 +67223,11 @@
   <p>When a <a href=#browsing-context>browsing context</a> is first created, it must be
   created with a single <code><a href=#document>Document</a></code> in its session history,
   whose <a href="#the-document's-address" title="the document's address">address</a> is
-  <code><a href=#about:blank>about:blank</a></code>, which is marked as being an <a href=#html-documents title="HTML documents">HTML document</a>, and whose <a href="#document's-character-encoding" title="document's character encoding">character encoding</a> is
-  UTF-8. The <code><a href=#document>Document</a></code> must have a single child
-  <code><a href=#the-html-element>html</a></code> node, which itself has a single child
-  <code><a href=#the-body-element>body</a></code> node.</p>
+  <code><a href=#about:blank>about:blank</a></code>, which is marked as being an <a href=#html-documents title="HTML documents">HTML document</a>, whose <a href="#document's-character-encoding" title="document's character encoding">character encoding</a> is
+  UTF-8, and which is both <a href=#ready-for-post-load-tasks>ready for post-load tasks</a> and
+  <a href=#completely-loaded>completely loaded</a> immediately. The
+  <code><a href=#document>Document</a></code> must have a single child <code><a href=#the-html-element>html</a></code>
+  node, which itself has a single child <code><a href=#the-body-element>body</a></code> node.</p>
 
   <p class=note>If the <a href=#browsing-context>browsing context</a> is created
   specifically to be immediately navigated, then that initial

Modified: index
===================================================================
--- index	2012-09-19 00:16:35 UTC (rev 7377)
+++ index	2012-09-19 22:02:08 UTC (rev 7378)
@@ -26558,54 +26558,47 @@
    <code>iframe</code> <code title=attr-iframe-srcdoc>srcdoc</code>
    document</a>.</dd>
 
-   <dt>If the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code>
-   attribute is specified but the <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute is not</dt>
+   <dt>Otherwise, if the element has no <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute specified, and the
+   user agent is processing the <code><a href=#the-iframe-element>iframe</a></code>'s attributes for
+   the first time</dt>
 
    <dd>
 
-    <ol><li><p>If the value of the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute is the empty string,
-     jump to the <i title="">empty</i> step below.</li>
+    <p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
+    named <code title=event-load>load</code> at the
+    <code><a href=#the-iframe-element>iframe</a></code> element.</p>
 
-     <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>
+   </dd>
 
-     <li><p>If that is not successful, then jump to the <i title="">empty</i> step below.</li>
+   <dt>Otherwise</dt>
 
-     <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 jump to
-     the <i title="">empty</i> step below. (In cases other than the
-     first time, <code><a href=#about:blank>about:blank</a></code> is loaded
-     normally.)</li>
+   <dd>
 
-     <li><p><a href=#navigate>Navigate</a><!--DONAV iframe--> the element's
-     <a href=#browsing-context>browsing context</a> to the resulting <a href=#absolute-url>absolute
-     URL</a>.</li>
+    <ol><li>
 
-    </ol><p><i>Empty</i>: When the steps above require the user agent to
-    jump to the <i title="">empty</i> step, if the user agent is
-    processing this <code><a href=#the-iframe-element>iframe</a></code>'s attributes for the first
-    time, then the user agent must <a href=#queue-a-task>queue a task</a> to
-    <a href=#fire-a-simple-event>fire a simple event</a> named <code title=event-load>load</code> at the <code><a href=#the-iframe-element>iframe</a></code> element.
-    (After jumping to this step, the above steps are not resumed.)
-    <span class=note>No <code title=event-load>load</code> event
-    is fired at the <code><a href=#about:blank>about:blank</a></code> document
-    itself.</span></p>
+      <p>If the value of the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code>
+      attribute is the empty string, let <var title="">url</var> be
+      the string "<code><a href=#about:blank>about:blank</a></code>".</p>
 
-   </dd>
+      <p>Otherwise, <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.</p>
 
-   <dt>Otherwise</dt>
+      <p>If that is not successful, then let <var title="">url</var>
+      be the string "<code><a href=#about:blank>about:blank</a></code>". Otherwise, let <var title="">url</var> be the resulting <a href=#absolute-url>absolute
+      URL</a>.</p>
 
-   <dd>
+     </li>
 
-    <p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
-    named <code title=event-load>load</code> at the
-    <code><a href=#the-iframe-element>iframe</a></code> element.</p>
+     <li>
 
-   </dd>
+      <p><a href=#navigate>Navigate</a><!--DONAV iframe--> the element's
+      <a href=#browsing-context>browsing context</a> to <var title="">url</var>.</p>
+      
+     </li>
 
+    </ol></dd>
+
   </dl><p>Any <a href=#navigate title=navigate>navigation</a> required of the user
   agent in the <a href=#process-the-iframe-attributes>process the <code>iframe</code> attributes</a>
   algorithm must be completed as an <a href=#explicit-self-navigation-override>explicit self-navigation
@@ -26613,7 +26606,12 @@
   document's <a href=#browsing-context>browsing context</a> as the <a href=#source-browsing-context>source
   browsing context</a>.</p>
 
-  <p>Furthermore, if the <a href=#browsing-context>browsing context</a>'s <a href=#session-history>session
+  <p>Furthermore, if the <a href=#active-document>active document</a> of the element's
+  <a href=#browsing-context>browsing context</a> before such a <a href=#navigate title=navigate>navigation</a> was not <a href=#completely-loaded>completely
+  loaded</a> at the time of the new <a href=#navigate title=navigate>navigation</a>, then the <a href=#navigate title=navigate>navigation</a> must be completed with
+  <a href=#replacement-enabled>replacement enabled</a>.</p>
+
+  <p>Similarly, if the <a href=#browsing-context>browsing context</a>'s <a href=#session-history>session
   history</a> contained only one <code><a href=#document>Document</a></code> when the
   <a href=#process-the-iframe-attributes>process the <code>iframe</code> attributes</a> algorithm
   was invoked, and that was the <code><a href=#about:blank>about:blank</a></code>
@@ -67225,10 +67223,11 @@
   <p>When a <a href=#browsing-context>browsing context</a> is first created, it must be
   created with a single <code><a href=#document>Document</a></code> in its session history,
   whose <a href="#the-document's-address" title="the document's address">address</a> is
-  <code><a href=#about:blank>about:blank</a></code>, which is marked as being an <a href=#html-documents title="HTML documents">HTML document</a>, and whose <a href="#document's-character-encoding" title="document's character encoding">character encoding</a> is
-  UTF-8. The <code><a href=#document>Document</a></code> must have a single child
-  <code><a href=#the-html-element>html</a></code> node, which itself has a single child
-  <code><a href=#the-body-element>body</a></code> node.</p>
+  <code><a href=#about:blank>about:blank</a></code>, which is marked as being an <a href=#html-documents title="HTML documents">HTML document</a>, whose <a href="#document's-character-encoding" title="document's character encoding">character encoding</a> is
+  UTF-8, and which is both <a href=#ready-for-post-load-tasks>ready for post-load tasks</a> and
+  <a href=#completely-loaded>completely loaded</a> immediately. The
+  <code><a href=#document>Document</a></code> must have a single child <code><a href=#the-html-element>html</a></code>
+  node, which itself has a single child <code><a href=#the-body-element>body</a></code> node.</p>
 
   <p class=note>If the <a href=#browsing-context>browsing context</a> is created
   specifically to be immediately navigated, then that initial

Modified: source
===================================================================
--- source	2012-09-19 00:16:35 UTC (rev 7377)
+++ source	2012-09-19 22:02:08 UTC (rev 7378)
@@ -28608,60 +28608,51 @@
    <code>iframe</code> <code title="attr-iframe-srcdoc">srcdoc</code>
    document</span>.</p></dd>
 
-   <dt>If the <code title="attr-iframe-src">src</code>
-   attribute is specified but the <code
-   title="attr-iframe-srcdoc">srcdoc</code> attribute is not</dt>
+   <dt>Otherwise, if the element has no <code
+   title="attr-iframe-src">src</code> attribute specified, and the
+   user agent is processing the <code>iframe</code>'s attributes for
+   the first time</dt>
 
    <dd>
 
-    <ol>
+    <p><span>Queue a task</span> to <span>fire a simple event</span>
+    named <code title="event-load">load</code> at the
+    <code>iframe</code> element.</p>
 
-     <li><p>If the value of the <code
-     title="attr-iframe-src">src</code> attribute is the empty string,
-     jump to the <i title="">empty</i> step below.</p></li>
+   </dd>
 
-     <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>
+   <dt>Otherwise</dt>
 
-     <li><p>If that is not successful, then jump to the <i
-     title="">empty</i> step below.</p></li>
+   <dd>
 
-     <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 jump to
-     the <i title="">empty</i> step below. (In cases other than the
-     first time, <code>about:blank</code> is loaded
-     normally.)</p></li>
+    <ol>
 
-     <li><p><span>Navigate</span><!--DONAV iframe--> the element's
-     <span>browsing context</span> to the resulting <span>absolute
-     URL</span>.</p></li>
+     <li>
 
-    </ol>
+      <p>If the value of the <code title="attr-iframe-src">src</code>
+      attribute is the empty string, let <var title="">url</var> be
+      the string "<code>about:blank</code>".</p>
 
-    <p><i>Empty</i>: When the steps above require the user agent to
-    jump to the <i title="">empty</i> step, if the user agent is
-    processing this <code>iframe</code>'s attributes for the first
-    time, then the user agent must <span>queue a task</span> to
-    <span>fire a simple event</span> named <code
-    title="event-load">load</code> at the <code>iframe</code> element.
-    (After jumping to this step, the above steps are not resumed.)
-    <span class="note">No <code title="event-load">load</code> event
-    is fired at the <code>about:blank</code> document
-    itself.</span></p>
+      <p>Otherwise, <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>
 
-   </dd>
+      <p>If that is not successful, then let <var title="">url</var>
+      be the string "<code>about:blank</code>". Otherwise, let <var
+      title="">url</var> be the resulting <span>absolute
+      URL</span>.</p>
 
-   <dt>Otherwise</dt>
+     </li>
 
-   <dd>
+     <li>
 
-    <p><span>Queue a task</span> to <span>fire a simple event</span>
-    named <code title="event-load">load</code> at the
-    <code>iframe</code> element.</p>
+      <p><span>Navigate</span><!--DONAV iframe--> the element's
+      <span>browsing context</span> to <var title="">url</var>.</p>
+      
+     </li>
 
+    </ol>
+
    </dd>
 
   </dl>
@@ -28673,7 +28664,15 @@
   document's <span>browsing context</span> as the <span>source
   browsing context</span>.</p>
 
-  <p>Furthermore, if the <span>browsing context</span>'s <span>session
+  <p>Furthermore, if the <span>active document</span> of the element's
+  <span>browsing context</span> before such a <span
+  title="navigate">navigation</span> was not <span>completely
+  loaded</span> at the time of the new <span
+  title="navigate">navigation</span>, then the <span
+  title="navigate">navigation</span> must be completed with
+  <span>replacement enabled</span>.</p>
+
+  <p>Similarly, if the <span>browsing context</span>'s <span>session
   history</span> contained only one <code>Document</code> when the
   <span>process the <code>iframe</code> attributes</span> algorithm
   was invoked, and that was the <code>about:blank</code>
@@ -78686,11 +78685,12 @@
   created with a single <code>Document</code> in its session history,
   whose <span title="the document's address">address</span> is
   <code>about:blank</code>, which is marked as being an <span
-  title="HTML documents">HTML document</span>, and whose <span
+  title="HTML documents">HTML document</span>, whose <span
   title="document's character encoding">character encoding</span> is
-  UTF-8. The <code>Document</code> must have a single child
-  <code>html</code> node, which itself has a single child
-  <code>body</code> node.</p>
+  UTF-8, and which is both <span>ready for post-load tasks</span> and
+  <span>completely loaded</span> immediately. The
+  <code>Document</code> must have a single child <code>html</code>
+  node, which itself has a single child <code>body</code> node.</p>
 
   <p class="note">If the <span>browsing context</span> is created
   specifically to be immediately navigated, then that initial




More information about the Commit-Watchers mailing list