[html5] r7379 - [giow] (3) Make <iframe> and <frame> more similar in processing model. (This is [...]
whatwg at whatwg.org
whatwg at whatwg.org
Wed Sep 19 15:17:03 PDT 2012
Author: ianh
Date: 2012-09-19 15:17:02 -0700 (Wed, 19 Sep 2012)
New Revision: 7379
Modified:
complete.html
index
source
Log:
[giow] (3) Make <iframe> and <frame> more similar in processing model. (This is largely untested, so let me know if <frame> has more crazy than this.)
Fixing https://www.w3.org/Bugs/Public/show_bug.cgi?id=17075
Affected topics: HTML
Modified: complete.html
===================================================================
--- complete.html 2012-09-19 22:02:08 UTC (rev 7378)
+++ complete.html 2012-09-19 22:17:02 UTC (rev 7379)
@@ -26530,6 +26530,8 @@
<p class=note>This happens without any <code title=event-unload>unload</code> events firing (the <a href=#nested-browsing-context>nested
browsing context</a> and its <code><a href=#document>Document</a></code> are <em title="a browsing context is discarded">discarded</em>, not <em title="unload a document">unloaded</em>).</p>
+ <!-- START of section that's very similar to <frame> -->
+
<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, changed, or
removed, the user agent must <a href=#process-the-iframe-attributes>process the <code>iframe</code>
@@ -26550,7 +26552,7 @@
is specified</dt>
<dd><p><a href=#navigate>Navigate</a><!--DONAV iframe--> the element's
- <a href=#browsing-context>browsing context</a> to a resource whose
+ <a href=#child-browsing-context>child browsing context</a> to a resource whose
<a href=#content-type>Content-Type</a> is <code><a href=#text/html>text/html</a></code>, whose
<a href=#url>URL</a> is <code><a href=#about:srcdoc>about:srcdoc</a></code>, and whose data
consists of the value of the attribute. The resulting
@@ -26593,7 +26595,7 @@
<li>
<p><a href=#navigate>Navigate</a><!--DONAV iframe--> the element's
- <a href=#browsing-context>browsing context</a> to <var title="">url</var>.</p>
+ <a href=#child-browsing-context>child browsing context</a> to <var title="">url</var>.</p>
</li>
@@ -26607,22 +26609,24 @@
browsing context</a>.</p>
<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
+ <a href=#child-browsing-context>child 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>
- <code><a href=#document>Document</a></code> created when the <a href=#browsing-context>browsing context</a>
- was created, 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> <!-- see also the note near
- similar text for the location.assign() method -->
+ <p>Similarly, if the <a href=#child-browsing-context>child 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> <code><a href=#document>Document</a></code> created when the
+ <a href=#child-browsing-context>child browsing context</a> was created, 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> <!-- see also the note near similar text for the
+ location.assign() method -->
</div>
+ <!-- END of section that's very similar to <frame> -->
+
<p class=note>If, when the element is created, the <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute is not set, and
the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute is either
also not set or set but its value cannot be <a href=#resolve-a-url title="resolve a
@@ -100562,23 +100566,99 @@
browsing context</a> similar to the <code><a href=#the-iframe-element>iframe</a></code> element,
but rendered within a <code><a href=#frameset>frameset</a></code> element.</p>
- <p>When the browsing context is created, if a <code title=attr-frame-src>src</code> attribute is present, the user
- agent must <a href=#resolve-a-url title="resolve a url">resolve</a> the value of
- that attribute, relative to the element, and if that is successful,
- must then <a href=#navigate>navigate</a><!--DONAV frame--> the element's
- browsing context to the resulting <a href=#absolute-url>absolute URL</a>, with
- <a href=#replacement-enabled>replacement enabled</a>, and with the <code><a href=#frame>frame</a></code>
- element's document's <a href=#browsing-context>browsing context</a> as the
- <a href=#source-browsing-context>source browsing context</a>.</p>
+ <!-- START of section that's very similar to <iframe> -->
- <p>Whenever the <code title=attr-frame-src>src</code> attribute is
- set, the user agent must <a href=#resolve-a-url title="resolve a url">resolve</a>
- the value of that attribute, relative to the element, and if that is
- successful, the nested <a href=#browsing-context>browsing context</a> must be <a href=#navigate title=navigate>navigated</a><!--DONAV frame--> to the resulting
- <a href=#absolute-url>absolute URL</a>, with the <code><a href=#frame>frame</a></code> element's
+ <p>A <code><a href=#frame>frame</a></code> element is said to be an <dfn id=active-frame-element>active
+ <code>frame</code> element</dfn> when it is <a href=#in-a-document>in a
+ <code>Document</code></a> and its <span>parent element</span>, if
+ any, is a <code><a href=#frameset>frameset</a></code> element.</p>
+
+ <p>When a <code><a href=#frame>frame</a></code> element is created as an <a href=#active-frame-element>active
+ <code>frame</code> element</a>, or becomes a <a href=#active-frame-element>active
+ <code>frame</code> element</a> after not having been one, the
+ user agent must create a <a href=#nested-browsing-context>nested browsing context</a>, and
+ then <a href=#process-the-frame-attributes>process the <code>frame</code> attributes</a> for the
+ first time.</p>
+
+ <p>When a <code><a href=#frame>frame</a></code> element stops being an <a href=#active-frame-element>active
+ <code>frame</code> element</a>, the user agent must <a href=#a-browsing-context-is-discarded title="a browsing context is discarded">discard</a> the
+ <a href=#nested-browsing-context>nested browsing context</a>.</p>
+
+ <p>Whenever a <code><a href=#frame>frame</a></code> element with a <a href=#nested-browsing-context>nested
+ browsing context</a> has its <code title=attr-frame-src>src</code> attribute set, changed, or
+ removed, the user agent must <a href=#process-the-frame-attributes>process the <code>frame</code>
+ attributes</a>.</p> <!-- It doesn't happen when the base URL is
+ changed, though. -->
+
+ <p>When the user agent is to <dfn id=process-the-frame-attributes>process the <code>frame</code>
+ attributes</dfn>, it must run the first appropriate steps from the
+ following list:</p>
+
+ <dl class=switch><dt>If the element has no <code title=attr-frame-src>src</code> attribute specified, and the
+ user agent is processing the <code><a href=#frame>frame</a></code>'s attributes for
+ the first time</dt>
+
+ <dd>
+
+ <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=#frame>frame</a></code> element.</p>
+
+ </dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <ol><li>
+
+ <p>If the value of the <code title=attr-frame-src>src</code>
+ attribute is the empty string, let <var title="">url</var> be
+ the string "<code><a href=#about:blank>about:blank</a></code>".</p>
+
+ <p>Otherwise, <a href=#resolve-a-url title="resolve a url">resolve</a> the
+ value of the <code title=attr-frame-src>src</code> attribute,
+ relative to the <code><a href=#frame>frame</a></code> element.</p>
+
+ <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>
+
+ </li>
+
+ <li>
+
+ <p><a href=#navigate>Navigate</a><!--DONAV frame--> the element's
+ <a href=#child-browsing-context>child 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-frame-attributes>process the <code>frame</code> attributes</a>
+ algorithm must be completed as an <a href=#explicit-self-navigation-override>explicit self-navigation
+ override</a> and with the <code><a href=#frame>frame</a></code> element's
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=#active-document>active document</a> of the element's
+ <a href=#child-browsing-context>child 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=#child-browsing-context>child 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-frame-attributes>process the <code>frame</code>
+ attributes</a> algorithm was invoked, and that was the
+ <code><a href=#about:blank>about:blank</a></code> <code><a href=#document>Document</a></code> created when the
+ <a href=#child-browsing-context>child browsing context</a> was created, 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> <!-- see also the note near similar text for the
+ location.assign() method -->
+
+ <!-- END of section that's very similar to <iframe> -->
+
<p>When the browsing context is created, if a <code title=attr-frame-name>name</code> attribute is present, the
<a href=#browsing-context-name>browsing context name</a> must be set to the value of this
attribute; otherwise, the <a href=#browsing-context-name>browsing context name</a> must be
Modified: index
===================================================================
--- index 2012-09-19 22:02:08 UTC (rev 7378)
+++ index 2012-09-19 22:17:02 UTC (rev 7379)
@@ -26530,6 +26530,8 @@
<p class=note>This happens without any <code title=event-unload>unload</code> events firing (the <a href=#nested-browsing-context>nested
browsing context</a> and its <code><a href=#document>Document</a></code> are <em title="a browsing context is discarded">discarded</em>, not <em title="unload a document">unloaded</em>).</p>
+ <!-- START of section that's very similar to <frame> -->
+
<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, changed, or
removed, the user agent must <a href=#process-the-iframe-attributes>process the <code>iframe</code>
@@ -26550,7 +26552,7 @@
is specified</dt>
<dd><p><a href=#navigate>Navigate</a><!--DONAV iframe--> the element's
- <a href=#browsing-context>browsing context</a> to a resource whose
+ <a href=#child-browsing-context>child browsing context</a> to a resource whose
<a href=#content-type>Content-Type</a> is <code><a href=#text/html>text/html</a></code>, whose
<a href=#url>URL</a> is <code><a href=#about:srcdoc>about:srcdoc</a></code>, and whose data
consists of the value of the attribute. The resulting
@@ -26593,7 +26595,7 @@
<li>
<p><a href=#navigate>Navigate</a><!--DONAV iframe--> the element's
- <a href=#browsing-context>browsing context</a> to <var title="">url</var>.</p>
+ <a href=#child-browsing-context>child browsing context</a> to <var title="">url</var>.</p>
</li>
@@ -26607,22 +26609,24 @@
browsing context</a>.</p>
<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
+ <a href=#child-browsing-context>child 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>
- <code><a href=#document>Document</a></code> created when the <a href=#browsing-context>browsing context</a>
- was created, 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> <!-- see also the note near
- similar text for the location.assign() method -->
+ <p>Similarly, if the <a href=#child-browsing-context>child 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> <code><a href=#document>Document</a></code> created when the
+ <a href=#child-browsing-context>child browsing context</a> was created, 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> <!-- see also the note near similar text for the
+ location.assign() method -->
</div>
+ <!-- END of section that's very similar to <frame> -->
+
<p class=note>If, when the element is created, the <code title=attr-iframe-srcdoc><a href=#attr-iframe-srcdoc>srcdoc</a></code> attribute is not set, and
the <code title=attr-iframe-src><a href=#attr-iframe-src>src</a></code> attribute is either
also not set or set but its value cannot be <a href=#resolve-a-url title="resolve a
@@ -100562,23 +100566,99 @@
browsing context</a> similar to the <code><a href=#the-iframe-element>iframe</a></code> element,
but rendered within a <code><a href=#frameset>frameset</a></code> element.</p>
- <p>When the browsing context is created, if a <code title=attr-frame-src>src</code> attribute is present, the user
- agent must <a href=#resolve-a-url title="resolve a url">resolve</a> the value of
- that attribute, relative to the element, and if that is successful,
- must then <a href=#navigate>navigate</a><!--DONAV frame--> the element's
- browsing context to the resulting <a href=#absolute-url>absolute URL</a>, with
- <a href=#replacement-enabled>replacement enabled</a>, and with the <code><a href=#frame>frame</a></code>
- element's document's <a href=#browsing-context>browsing context</a> as the
- <a href=#source-browsing-context>source browsing context</a>.</p>
+ <!-- START of section that's very similar to <iframe> -->
- <p>Whenever the <code title=attr-frame-src>src</code> attribute is
- set, the user agent must <a href=#resolve-a-url title="resolve a url">resolve</a>
- the value of that attribute, relative to the element, and if that is
- successful, the nested <a href=#browsing-context>browsing context</a> must be <a href=#navigate title=navigate>navigated</a><!--DONAV frame--> to the resulting
- <a href=#absolute-url>absolute URL</a>, with the <code><a href=#frame>frame</a></code> element's
+ <p>A <code><a href=#frame>frame</a></code> element is said to be an <dfn id=active-frame-element>active
+ <code>frame</code> element</dfn> when it is <a href=#in-a-document>in a
+ <code>Document</code></a> and its <span>parent element</span>, if
+ any, is a <code><a href=#frameset>frameset</a></code> element.</p>
+
+ <p>When a <code><a href=#frame>frame</a></code> element is created as an <a href=#active-frame-element>active
+ <code>frame</code> element</a>, or becomes a <a href=#active-frame-element>active
+ <code>frame</code> element</a> after not having been one, the
+ user agent must create a <a href=#nested-browsing-context>nested browsing context</a>, and
+ then <a href=#process-the-frame-attributes>process the <code>frame</code> attributes</a> for the
+ first time.</p>
+
+ <p>When a <code><a href=#frame>frame</a></code> element stops being an <a href=#active-frame-element>active
+ <code>frame</code> element</a>, the user agent must <a href=#a-browsing-context-is-discarded title="a browsing context is discarded">discard</a> the
+ <a href=#nested-browsing-context>nested browsing context</a>.</p>
+
+ <p>Whenever a <code><a href=#frame>frame</a></code> element with a <a href=#nested-browsing-context>nested
+ browsing context</a> has its <code title=attr-frame-src>src</code> attribute set, changed, or
+ removed, the user agent must <a href=#process-the-frame-attributes>process the <code>frame</code>
+ attributes</a>.</p> <!-- It doesn't happen when the base URL is
+ changed, though. -->
+
+ <p>When the user agent is to <dfn id=process-the-frame-attributes>process the <code>frame</code>
+ attributes</dfn>, it must run the first appropriate steps from the
+ following list:</p>
+
+ <dl class=switch><dt>If the element has no <code title=attr-frame-src>src</code> attribute specified, and the
+ user agent is processing the <code><a href=#frame>frame</a></code>'s attributes for
+ the first time</dt>
+
+ <dd>
+
+ <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=#frame>frame</a></code> element.</p>
+
+ </dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <ol><li>
+
+ <p>If the value of the <code title=attr-frame-src>src</code>
+ attribute is the empty string, let <var title="">url</var> be
+ the string "<code><a href=#about:blank>about:blank</a></code>".</p>
+
+ <p>Otherwise, <a href=#resolve-a-url title="resolve a url">resolve</a> the
+ value of the <code title=attr-frame-src>src</code> attribute,
+ relative to the <code><a href=#frame>frame</a></code> element.</p>
+
+ <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>
+
+ </li>
+
+ <li>
+
+ <p><a href=#navigate>Navigate</a><!--DONAV frame--> the element's
+ <a href=#child-browsing-context>child 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-frame-attributes>process the <code>frame</code> attributes</a>
+ algorithm must be completed as an <a href=#explicit-self-navigation-override>explicit self-navigation
+ override</a> and with the <code><a href=#frame>frame</a></code> element's
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=#active-document>active document</a> of the element's
+ <a href=#child-browsing-context>child 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=#child-browsing-context>child 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-frame-attributes>process the <code>frame</code>
+ attributes</a> algorithm was invoked, and that was the
+ <code><a href=#about:blank>about:blank</a></code> <code><a href=#document>Document</a></code> created when the
+ <a href=#child-browsing-context>child browsing context</a> was created, 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> <!-- see also the note near similar text for the
+ location.assign() method -->
+
+ <!-- END of section that's very similar to <iframe> -->
+
<p>When the browsing context is created, if a <code title=attr-frame-name>name</code> attribute is present, the
<a href=#browsing-context-name>browsing context name</a> must be set to the value of this
attribute; otherwise, the <a href=#browsing-context-name>browsing context name</a> must be
Modified: source
===================================================================
--- source 2012-09-19 22:02:08 UTC (rev 7378)
+++ source 2012-09-19 22:17:02 UTC (rev 7379)
@@ -28576,6 +28576,8 @@
title="a browsing context is discarded">discarded</em>, not <em
title="unload a document">unloaded</em>).</p>
+ <!-- START of section that's very similar to <frame> -->
+
<p>Whenever an <code>iframe</code> element with a <span>nested
browsing context</span> has its <code
title="attr-iframe-srcdoc">srcdoc</code> attribute set, changed, or
@@ -28600,7 +28602,7 @@
is specified</dt>
<dd><p><span>Navigate</span><!--DONAV iframe--> the element's
- <span>browsing context</span> to a resource whose
+ <span>child browsing context</span> to a resource whose
<span>Content-Type</span> is <code>text/html</code>, whose
<span>URL</span> is <code>about:srcdoc</code>, and whose data
consists of the value of the attribute. The resulting
@@ -28647,7 +28649,8 @@
<li>
<p><span>Navigate</span><!--DONAV iframe--> the element's
- <span>browsing context</span> to <var title="">url</var>.</p>
+ <span>child browsing context</span> to <var
+ title="">url</var>.</p>
</li>
@@ -28665,25 +28668,28 @@
browsing context</span>.</p>
<p>Furthermore, if the <span>active document</span> of the element's
- <span>browsing context</span> before such a <span
+ <span>child 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>
- <code>Document</code> created when the <span>browsing context</span>
- was created, then any <span title="navigate">navigation</span>
- required of the user agent in that algorithm must be completed with
- <span>replacement enabled</span>.</p> <!-- see also the note near
- similar text for the location.assign() method -->
+ <p>Similarly, if the <span>child 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> <code>Document</code> created when the
+ <span>child browsing context</span> was created, then any <span
+ title="navigate">navigation</span> required of the user agent in
+ that algorithm must be completed with <span>replacement
+ enabled</span>.</p> <!-- see also the note near similar text for the
+ location.assign() method -->
</div>
+ <!-- END of section that's very similar to <frame> -->
+
<p class="note">If, when the element is created, the <code
title="attr-iframe-srcdoc">srcdoc</code> attribute is not set, and
the <code title="attr-iframe-src">src</code> attribute is either
@@ -117301,25 +117307,116 @@
browsing context</span> similar to the <code>iframe</code> element,
but rendered within a <code>frameset</code> element.</p>
- <p>When the browsing context is created, if a <code
- title="attr-frame-src">src</code> attribute is present, the user
- agent must <span title="resolve a url">resolve</span> the value of
- that attribute, relative to the element, and if that is successful,
- must then <span>navigate</span><!--DONAV frame--> the element's
- browsing context to the resulting <span>absolute URL</span>, with
- <span>replacement enabled</span>, and with the <code>frame</code>
- element's document's <span>browsing context</span> as the
- <span>source browsing context</span>.</p>
+ <!-- START of section that's very similar to <iframe> -->
- <p>Whenever the <code title="attr-frame-src">src</code> attribute is
- set, the user agent must <span title="resolve a url">resolve</span>
- the value of that attribute, relative to the element, and if that is
- successful, the nested <span>browsing context</span> must be <span
- title="navigate">navigated</span><!--DONAV frame--> to the resulting
- <span>absolute URL</span>, with the <code>frame</code> element's
+ <p>A <code>frame</code> element is said to be an <dfn>active
+ <code>frame</code> element</dfn> when it is <span>in a
+ <code>Document</code></span> and its <span>parent element</span>, if
+ any, is a <code>frameset</code> element.</p>
+
+ <p>When a <code>frame</code> element is created as an <span>active
+ <code>frame</code> element</span>, or becomes a <span>active
+ <code>frame</code> element</span> after not having been one, the
+ user agent must create a <span>nested browsing context</span>, and
+ then <span>process the <code>frame</code> attributes</span> for the
+ first time.</p>
+
+ <p>When a <code>frame</code> element stops being an <span>active
+ <code>frame</code> element</span>, the user agent must <span
+ title="a browsing context is discarded">discard</span> the
+ <span>nested browsing context</span>.</p>
+
+ <p>Whenever a <code>frame</code> element with a <span>nested
+ browsing context</span> has its <code
+ title="attr-frame-src">src</code> attribute set, changed, or
+ removed, the user agent must <span>process the <code>frame</code>
+ attributes</span>.</p> <!-- It doesn't happen when the base URL is
+ changed, though. -->
+
+ <p>When the user agent is to <dfn>process the <code>frame</code>
+ attributes</dfn>, it must run the first appropriate steps from the
+ following list:</p>
+
+ <dl class="switch">
+
+ <dt>If the element has no <code
+ title="attr-frame-src">src</code> attribute specified, and the
+ user agent is processing the <code>frame</code>'s attributes for
+ the first time</dt>
+
+ <dd>
+
+ <p><span>Queue a task</span> to <span>fire a simple event</span>
+ named <code title="event-load">load</code> at the
+ <code>frame</code> element.</p>
+
+ </dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>
+
+ <ol>
+
+ <li>
+
+ <p>If the value of the <code title="attr-frame-src">src</code>
+ attribute is the empty string, let <var title="">url</var> be
+ the string "<code>about:blank</code>".</p>
+
+ <p>Otherwise, <span title="resolve a url">resolve</span> the
+ value of the <code title="attr-frame-src">src</code> attribute,
+ relative to the <code>frame</code> element.</p>
+
+ <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>
+
+ </li>
+
+ <li>
+
+ <p><span>Navigate</span><!--DONAV frame--> the element's
+ <span>child browsing context</span> to <var
+ title="">url</var>.</p>
+
+ </li>
+
+ </ol>
+
+ </dd>
+
+ </dl>
+
+ <p>Any <span title="navigate">navigation</span> required of the user
+ agent in the <span>process the <code>frame</code> attributes</span>
+ algorithm must be completed as an <span>explicit self-navigation
+ override</span> and with the <code>frame</code> element's
document's <span>browsing context</span> as the <span>source
browsing context</span>.</p>
+ <p>Furthermore, if the <span>active document</span> of the element's
+ <span>child 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>child browsing context</span>'s
+ <span>session history</span> contained only one
+ <code>Document</code> when the <span>process the <code>frame</code>
+ attributes</span> algorithm was invoked, and that was the
+ <code>about:blank</code> <code>Document</code> created when the
+ <span>child browsing context</span> was created, then any <span
+ title="navigate">navigation</span> required of the user agent in
+ that algorithm must be completed with <span>replacement
+ enabled</span>.</p> <!-- see also the note near similar text for the
+ location.assign() method -->
+
+ <!-- END of section that's very similar to <iframe> -->
+
<p>When the browsing context is created, if a <code
title="attr-frame-name">name</code> attribute is present, the
<span>browsing context name</span> must be set to the value of this
More information about the Commit-Watchers
mailing list