Skip to content

Commit

Permalink
[giow] (3) Make nested browsing contexts delay the load event of thei…
Browse files Browse the repository at this point in the history
…r parent while they're loading

Fixing https://www.w3.org/Bugs/Public/show_bug.cgi?id=24214
Affected topics: HTML

git-svn-id: http://svn.whatwg.org/webapps@8407 340c8d12-0b0e-0410-8428-c7bf67bfef74
  • Loading branch information
Hixie committed Jan 17, 2014
1 parent 522c6ed commit 027a574
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 21 deletions.
35 changes: 28 additions & 7 deletions complete.html
Expand Up @@ -23648,6 +23648,15 @@ <h4 id=the-embed-element><span class=secno>4.7.3 </span>The <dfn><code>embed</co
agents should convey the danger of overriding the sandbox to the user if an option to do so is
provided.</p>

<p>When an <code><a href=#the-embed-element>embed</a></code> element represents a <a href=#nested-browsing-context>nested browsing context</a>: if the
<code><a href=#the-embed-element>embed</a></code> element's <a href=#nested-browsing-context>nested browsing context</a>'s <a href=#active-document>active document</a>
is not <a href=#ready-for-post-load-tasks>ready for post-load tasks</a>, and when anything is <a href=#delay-the-load-event title="delay the load
event">delaying the load event</a> of the <code><a href=#the-embed-element>embed</a></code> element's <a href=#browsing-context>browsing
context</a>'s <a href=#active-document>active document</a>, and when the <code><a href=#the-embed-element>embed</a></code> element's
<a href=#browsing-context>browsing context</a> is in the <a href=#delaying-load-events-mode>delaying <code title=event-load>load</code>
events mode</a>, the <code><a href=#the-embed-element>embed</a></code> must <a href=#delay-the-load-event>delay the load event</a> of its
document.</p>

<p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> mentioned in this
section is the <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>

Expand Down Expand Up @@ -24315,6 +24324,15 @@ <h4 id=the-object-element><span class=secno>4.7.4 </span>The <dfn><code>object</
targeting multiple user agents with different capabilities, with the user agent picking the first
one it supports.</p>

<p>When an <code><a href=#the-object-element>object</a></code> element represents a <a href=#nested-browsing-context>nested browsing context</a>: if the
<code><a href=#the-object-element>object</a></code> element's <a href=#nested-browsing-context>nested browsing context</a>'s <a href=#active-document>active document</a>
is not <a href=#ready-for-post-load-tasks>ready for post-load tasks</a>, and when anything is <a href=#delay-the-load-event title="delay the load
event">delaying the load event</a> of the <code><a href=#the-object-element>object</a></code> element's <a href=#browsing-context>browsing
context</a>'s <a href=#active-document>active document</a>, and when the <code><a href=#the-object-element>object</a></code> element's
<a href=#browsing-context>browsing context</a> is in the <a href=#delaying-load-events-mode>delaying <code title=event-load>load</code>
events mode</a>, the <code><a href=#the-object-element>object</a></code> must <a href=#delay-the-load-event>delay the load event</a> of its
document.</p>

<p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> mentioned in this
section is the <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>

Expand Down Expand Up @@ -64212,8 +64230,9 @@ <h4 id=nested-browsing-contexts><span class=secno>6.1.1 </span>Nested browsing c
<p>A <a href=#nested-browsing-context>nested browsing context</a> can have a <a href=#seamless-browsing-context-flag>seamless browsing context flag</a>
set, if it is embedded through an <code><a href=#the-iframe-element>iframe</a></code> element with a <code title=attr-iframe-seamless><a href=#attr-iframe-seamless>seamless</a></code> attribute.</p>

<!--CLEANUP-->
<p>A <a href=#nested-browsing-context>nested browsing context</a> can be put into a <dfn id=delaying-load-events-mode>delaying <code title=event-load>load</code> events mode</dfn>. This is used when it is <a href=#navigate title=navigate>navigated</a>, to <a href=#delay-the-load-event>delay the load event</a> of the <a href=#browsing-context-container>browsing
context container</a> <code><a href=#the-iframe-element>iframe</a></code> element before the new <code><a href=#document>Document</a></code> is
context container</a> before the new <code><a href=#document>Document</a></code> is
created.</p>

<!--(There's no current way for this to happen, since removing an iframe from a document discards its browsing context)
Expand Down Expand Up @@ -67205,8 +67224,9 @@ <h4 id=navigating-across-documents><span class=secno>6.6.1 </span>Navigating acr
<code title=event-load>load</code> events mode</a> when this <a href=#navigate title=navigate>navigation</a> algorithm later <a href=#concept-navigate-mature title=concept-navigate-mature>matures</a>, or when it terminates (whether due to having
run all the steps, or being canceled, or being aborted), whichever happens first.</p>

<!-- this is what makes <iframe> elements delay the load event of their parent browsing context
when their child browsing context is in between this step and the step that starts the parser. -->
<!-- this is what makes <iframe> elements, <embed> elements, <object> elements, etc, delay the
load event of their parent browsing context when their child browsing context is in between this
step and the step that starts the parser. -->

</li>

Expand Down Expand Up @@ -96814,10 +96834,11 @@ <h4 id=frames><span class=secno>15.3.3 </span>Frames</h4>
<p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> above is the
<a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>

<p>When there is an <a href=#active-parser>active parser</a> in the <code><a href=#frame>frame</a></code>, and when anything in the
<code><a href=#frame>frame</a></code> is <a href=#delay-the-load-event title="delay the load event">delaying the load event</a> of the
<code><a href=#frame>frame</a></code>'s <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active document</a>, the
<code><a href=#frame>frame</a></code> must <a href=#delay-the-load-event>delay the load event</a> of its document.</p>
<p>When a <code><a href=#frame>frame</a></code> element's <a href=#nested-browsing-context>nested browsing context</a>'s <a href=#active-document>active
document</a> is not <a href=#ready-for-post-load-tasks>ready for post-load tasks</a>, and when anything is <a href=#delay-the-load-event title="delay the load event">delaying the load event</a> of the <code><a href=#frame>frame</a></code> element's
<a href=#browsing-context>browsing context</a>'s <a href=#active-document>active document</a>, and when the <code><a href=#frame>frame</a></code>
element's <a href=#browsing-context>browsing context</a> is in the <a href=#delaying-load-events-mode>delaying <code title=event-load>load</code> events mode</a>, the <code><a href=#frame>frame</a></code> must <a href=#delay-the-load-event>delay the
load event</a> of its document.</p>

<!-- END of section that's very similar to <iframe> -->

Expand Down
35 changes: 28 additions & 7 deletions index
Expand Up @@ -23648,6 +23648,15 @@ href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
agents should convey the danger of overriding the sandbox to the user if an option to do so is
provided.</p>

<p>When an <code><a href=#the-embed-element>embed</a></code> element represents a <a href=#nested-browsing-context>nested browsing context</a>: if the
<code><a href=#the-embed-element>embed</a></code> element's <a href=#nested-browsing-context>nested browsing context</a>'s <a href=#active-document>active document</a>
is not <a href=#ready-for-post-load-tasks>ready for post-load tasks</a>, and when anything is <a href=#delay-the-load-event title="delay the load
event">delaying the load event</a> of the <code><a href=#the-embed-element>embed</a></code> element's <a href=#browsing-context>browsing
context</a>'s <a href=#active-document>active document</a>, and when the <code><a href=#the-embed-element>embed</a></code> element's
<a href=#browsing-context>browsing context</a> is in the <a href=#delaying-load-events-mode>delaying <code title=event-load>load</code>
events mode</a>, the <code><a href=#the-embed-element>embed</a></code> must <a href=#delay-the-load-event>delay the load event</a> of its
document.</p>

<p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> mentioned in this
section is the <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>

Expand Down Expand Up @@ -24315,6 +24324,15 @@ href="?audio"&gt;audio&lt;/a&gt; test instead.)&lt;/p&gt;</pre>
targeting multiple user agents with different capabilities, with the user agent picking the first
one it supports.</p>

<p>When an <code><a href=#the-object-element>object</a></code> element represents a <a href=#nested-browsing-context>nested browsing context</a>: if the
<code><a href=#the-object-element>object</a></code> element's <a href=#nested-browsing-context>nested browsing context</a>'s <a href=#active-document>active document</a>
is not <a href=#ready-for-post-load-tasks>ready for post-load tasks</a>, and when anything is <a href=#delay-the-load-event title="delay the load
event">delaying the load event</a> of the <code><a href=#the-object-element>object</a></code> element's <a href=#browsing-context>browsing
context</a>'s <a href=#active-document>active document</a>, and when the <code><a href=#the-object-element>object</a></code> element's
<a href=#browsing-context>browsing context</a> is in the <a href=#delaying-load-events-mode>delaying <code title=event-load>load</code>
events mode</a>, the <code><a href=#the-object-element>object</a></code> must <a href=#delay-the-load-event>delay the load event</a> of its
document.</p>

<p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> mentioned in this
section is the <a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>

Expand Down Expand Up @@ -64212,8 +64230,9 @@ END:VCARD</pre>
<p>A <a href=#nested-browsing-context>nested browsing context</a> can have a <a href=#seamless-browsing-context-flag>seamless browsing context flag</a>
set, if it is embedded through an <code><a href=#the-iframe-element>iframe</a></code> element with a <code title=attr-iframe-seamless><a href=#attr-iframe-seamless>seamless</a></code> attribute.</p>

<!--CLEANUP-->
<p>A <a href=#nested-browsing-context>nested browsing context</a> can be put into a <dfn id=delaying-load-events-mode>delaying <code title=event-load>load</code> events mode</dfn>. This is used when it is <a href=#navigate title=navigate>navigated</a>, to <a href=#delay-the-load-event>delay the load event</a> of the <a href=#browsing-context-container>browsing
context container</a> <code><a href=#the-iframe-element>iframe</a></code> element before the new <code><a href=#document>Document</a></code> is
context container</a> before the new <code><a href=#document>Document</a></code> is
created.</p>

<!--(There's no current way for this to happen, since removing an iframe from a document discards its browsing context)
Expand Down Expand Up @@ -67205,8 +67224,9 @@ State: &lt;OUTPUT NAME=I&gt;1&lt;/OUTPUT&gt; &lt;INPUT VALUE="Increment" TYPE=BU
<code title=event-load>load</code> events mode</a> when this <a href=#navigate title=navigate>navigation</a> algorithm later <a href=#concept-navigate-mature title=concept-navigate-mature>matures</a>, or when it terminates (whether due to having
run all the steps, or being canceled, or being aborted), whichever happens first.</p>

<!-- this is what makes <iframe> elements delay the load event of their parent browsing context
when their child browsing context is in between this step and the step that starts the parser. -->
<!-- this is what makes <iframe> elements, <embed> elements, <object> elements, etc, delay the
load event of their parent browsing context when their child browsing context is in between this
step and the step that starts the parser. -->

</li>

Expand Down Expand Up @@ -96814,10 +96834,11 @@ if (s = prompt('What is your name?')) {
<p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> above is the
<a href=#dom-manipulation-task-source>DOM manipulation task source</a>.</p>

<p>When there is an <a href=#active-parser>active parser</a> in the <code><a href=#frame>frame</a></code>, and when anything in the
<code><a href=#frame>frame</a></code> is <a href=#delay-the-load-event title="delay the load event">delaying the load event</a> of the
<code><a href=#frame>frame</a></code>'s <a href=#browsing-context>browsing context</a>'s <a href=#active-document>active document</a>, the
<code><a href=#frame>frame</a></code> must <a href=#delay-the-load-event>delay the load event</a> of its document.</p>
<p>When a <code><a href=#frame>frame</a></code> element's <a href=#nested-browsing-context>nested browsing context</a>'s <a href=#active-document>active
document</a> is not <a href=#ready-for-post-load-tasks>ready for post-load tasks</a>, and when anything is <a href=#delay-the-load-event title="delay the load event">delaying the load event</a> of the <code><a href=#frame>frame</a></code> element's
<a href=#browsing-context>browsing context</a>'s <a href=#active-document>active document</a>, and when the <code><a href=#frame>frame</a></code>
element's <a href=#browsing-context>browsing context</a> is in the <a href=#delaying-load-events-mode>delaying <code title=event-load>load</code> events mode</a>, the <code><a href=#frame>frame</a></code> must <a href=#delay-the-load-event>delay the
load event</a> of its document.</p>

<!-- END of section that's very similar to <iframe> -->

Expand Down
37 changes: 30 additions & 7 deletions source
Expand Up @@ -24951,6 +24951,15 @@ href="?audio">audio&lt;/a> test instead.)&lt;/p></pre>
agents should convey the danger of overriding the sandbox to the user if an option to do so is
provided.</p>

<p>When an <code>embed</code> element represents a <span>nested browsing context</span>: if the
<code>embed</code> element's <span>nested browsing context</span>'s <span>active document</span>
is not <span>ready for post-load tasks</span>, and when anything is <span data-x="delay the load
event">delaying the load event</span> of the <code>embed</code> element's <span>browsing
context</span>'s <span>active document</span>, and when the <code>embed</code> element's
<span>browsing context</span> is in the <span>delaying <code data-x="event-load">load</code>
events mode</span>, the <code>embed</code> must <span>delay the load event</span> of its
document.</p>

<p>The <span>task source</span> for the <span data-x="concept-task">tasks</span> mentioned in this
section is the <span>DOM manipulation task source</span>.</p>

Expand Down Expand Up @@ -25684,6 +25693,15 @@ href="?audio">audio&lt;/a> test instead.)&lt;/p></pre>
targeting multiple user agents with different capabilities, with the user agent picking the first
one it supports.</p>

<p>When an <code>object</code> element represents a <span>nested browsing context</span>: if the
<code>object</code> element's <span>nested browsing context</span>'s <span>active document</span>
is not <span>ready for post-load tasks</span>, and when anything is <span data-x="delay the load
event">delaying the load event</span> of the <code>object</code> element's <span>browsing
context</span>'s <span>active document</span>, and when the <code>object</code> element's
<span>browsing context</span> is in the <span>delaying <code data-x="event-load">load</code>
events mode</span>, the <code>object</code> must <span>delay the load event</span> of its
document.</p>

<p>The <span>task source</span> for the <span data-x="concept-task">tasks</span> mentioned in this
section is the <span>DOM manipulation task source</span>.</p>

Expand Down Expand Up @@ -71491,10 +71509,11 @@ END:VCARD</pre>
set, if it is embedded through an <code>iframe</code> element with a <code
data-x="attr-iframe-seamless">seamless</code> attribute.</p>

<!--CLEANUP-->
<p>A <span>nested browsing context</span> can be put into a <dfn>delaying <code
data-x="event-load">load</code> events mode</dfn>. This is used when it is <span
data-x="navigate">navigated</span>, to <span>delay the load event</span> of the <span>browsing
context container</span> <code>iframe</code> element before the new <code>Document</code> is
context container</span> before the new <code>Document</code> is
created.</p>

<!--(There's no current way for this to happen, since removing an iframe from a document discards its browsing context)
Expand Down Expand Up @@ -74916,8 +74935,9 @@ State: &lt;OUTPUT NAME=I>1&lt;/OUTPUT> &lt;INPUT VALUE="Increment" TYPE=BUTTON O
data-x="concept-navigate-mature">matures</span>, or when it terminates (whether due to having
run all the steps, or being canceled, or being aborted), whichever happens first.</p>

<!-- this is what makes <iframe> elements delay the load event of their parent browsing context
when their child browsing context is in between this step and the step that starts the parser. -->
<!-- this is what makes <iframe> elements, <embed> elements, <object> elements, etc, delay the
load event of their parent browsing context when their child browsing context is in between this
step and the step that starts the parser. -->

</li>

Expand Down Expand Up @@ -107826,10 +107846,13 @@ if (s = prompt('What is your name?')) {
<p>The <span>task source</span> for the <span data-x="concept-task">tasks</span> above is the
<span>DOM manipulation task source</span>.</p>

<p>When there is an <span>active parser</span> in the <code>frame</code>, and when anything in the
<code>frame</code> is <span data-x="delay the load event">delaying the load event</span> of the
<code>frame</code>'s <span>browsing context</span>'s <span>active document</span>, the
<code>frame</code> must <span>delay the load event</span> of its document.</p>
<p>When a <code>frame</code> element's <span>nested browsing context</span>'s <span>active
document</span> is not <span>ready for post-load tasks</span>, and when anything is <span
data-x="delay the load event">delaying the load event</span> of the <code>frame</code> element's
<span>browsing context</span>'s <span>active document</span>, and when the <code>frame</code>
element's <span>browsing context</span> is in the <span>delaying <code
data-x="event-load">load</code> events mode</span>, the <code>frame</code> must <span>delay the
load event</span> of its document.</p>

<!-- END of section that's very similar to <iframe> -->

Expand Down

0 comments on commit 027a574

Please sign in to comment.