[html5] r4493 - [giow] (0) Make onbeforeunload and onunload fire on descendant browsing contexts [...]

whatwg at whatwg.org whatwg at whatwg.org
Tue Jan 5 18:58:01 PST 2010


Author: ianh
Date: 2010-01-05 18:57:58 -0800 (Tue, 05 Jan 2010)
New Revision: 4493

Modified:
   complete.html
   index
   source
Log:
[giow] (0) Make onbeforeunload and onunload fire on descendant browsing contexts.
Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=8415

Modified: complete.html
===================================================================
--- complete.html	2010-01-06 00:38:19 UTC (rev 4492)
+++ complete.html	2010-01-06 02:57:58 UTC (rev 4493)
@@ -48929,7 +48929,24 @@
   context</a> gives the list of <dfn id=ancestor-browsing-context title="ancestor browsing
   context">ancestor browsing contexts</dfn>.</p>
 
-  <p>A <code>Document</code> is said to be <dfn id=fully-active>fully active</dfn>
+  <p>The <dfn id=list-of-the-descendant-browsing-contexts>list of the descendant browsing contexts</dfn> of a
+  <code>Document</code> <var title="">d</var> is the list returned by
+  the following algorithm:</p>
+
+  <ol><li><p>Let <var title="">list</var> be an empty list.</li>
+
+   <li><p>For each <a href=#child-browsing-context>child browsing context</a> of <var title="">d</var> that is <a href=#browsing-context-nested-through title="browsing context nested
+   through">nested through</a> an element that is <a href=#in-a-document title="in a
+   document">in the <code>Document</code></a> <var title="">d</var>, in the <a href=#tree-order>tree order</a> of the elements of
+   the elements nesting those <a href=#browsing-context title="browsing context">browsing
+   contexts</a>, append to the list <var title="">list</var> the
+   <a href=#list-of-the-descendant-browsing-contexts>list of the descendant browsing contexts</a> of the
+   <a href=#active-document>active document</a> of that <a href=#child-browsing-context>child browsing
+   context</a>.</li>
+
+   <li><p>Return the constructed <var title="">list</var>.</li>
+
+  </ol><hr><p>A <code>Document</code> is said to be <dfn id=fully-active>fully active</dfn>
   when it is the <a href=#active-document>active document</a> of its <a href=#browsing-context>browsing
   context</a>, and either its browsing context is a <a href=#top-level-browsing-context>top-level
   browsing context</a>, or the <code>Document</code> <a href=#browsing-context-nested-through title="browsing context nested through">through which</a> that
@@ -49650,12 +49667,14 @@
   <p>The <dfn id=dom-length title=dom-length><code>length</code></dfn> IDL
   attribute on the <code><a href=#window>Window</a></code> interface must return the
   number of <a href=#child-browsing-context title="child browsing context">child browsing
-  contexts</a> of the <a href=#active-document>active document</a> of that
-  <code><a href=#window>Window</a></code> object, if that <code><a href=#window>Window</a></code>'s
-  <a href=#browsing-context>browsing context</a> shares the same <a href=#event-loop>event
-  loop</a> as the <a href="#script's-browsing-context">script's browsing context</a> of the
-  <a href=#first-script>first script</a> accessing the IDL attribute; otherwise, it
-  must return zero.</p>
+  contexts</a> that are <a href=#browsing-context-nested-through title="browsing context nested
+  through">nested through</a> elements that are <a href=#in-a-document title="in a
+  document">in the <code>Document</code></a> that is the
+  <a href=#active-document>active document</a> of that <code><a href=#window>Window</a></code> object, if
+  that <code><a href=#window>Window</a></code>'s <a href=#browsing-context>browsing context</a> shares the
+  same <a href=#event-loop>event loop</a> as the <a href="#script's-browsing-context">script's browsing
+  context</a> of the <a href=#first-script>first script</a> accessing the IDL
+  attribute; otherwise, it must return zero.</p>
 
   <!-- in other words, frames are only accessible to same-thread processes -->
 
@@ -49667,9 +49686,10 @@
   <p>When a <code><a href=#window>Window</a></code> object is <dfn id=dom-window-item title=dom-window-item>indexed to retrieve an indexed
   property</dfn> <var title="">index</var>, the value returned must be
   the <var title="">index</var>th <a href=#child-browsing-context>child browsing context</a>
-  of the <code>Document</code>, sorted in the <a href=#tree-order>tree order</a>
-  of the elements nesting those <a href=#browsing-context title="browsing
-  context">browsing contexts</a>.</p>
+  of the <code>Document</code> that is nested through an element that
+  is <a href=#in-a-document title="in a document">in the <code>Document</code></a>,
+  sorted in the <a href=#tree-order>tree order</a> of the elements nesting those
+  <a href=#browsing-context title="browsing context">browsing contexts</a>.</p>
 
   <p>These properties are the <dfn id=dynamic-nested-browsing-context-properties>dynamic nested browsing context
   properties</dfn>.</p>
@@ -49776,9 +49796,12 @@
   <p>When a <a href=#browsing-context>browsing context</a> is to <dfn id=discard-a-document>discard a
   <code>Document</code></dfn>, that means that it is to lose the
   strong reference from the <code>Document</code>'s <a href=#browsing-context>browsing
-  context</a> to the <code>Document</code>, and that any <a href=#concept-task title=concept-task>tasks</a> associated with the
+  context</a> to the <code>Document</code>, that any <a href=#concept-task title=concept-task>tasks</a> associated with the
   <code>Document</code> in any <a href=#task-source>task source</a> must be
-  removed without being run.</p>
+  removed without being run, and that all the <a href=#child-browsing-context title="child
+  browsing context">child browsing contexts</a> of the
+  <code>Document</code> must also be <a href=#a-browsing-context-is-discarded title="a browsing context
+  is discarded">discarded</a>.</p>
 
   <p class=note>The <a href=#browsing-context>browsing context</a>'s <a href=#default-view>default
   view</a>'s <code><a href=#window>Window</a></code> object <a href=#implied-strong-reference title="implied strong
@@ -56399,6 +56422,36 @@
 
    </li>
 
+   <li><p>If this algorithm was invoked by another instance of the
+   "prompt to unload a document" algorithm (i.e. through the steps
+   below that invoke this algorithm for all descendant browsing
+   contexts), then abort these steps here.</li>
+
+   <li><p>Let <var title="">descendants</var> be the <a href=#list-of-the-descendant-browsing-contexts>list of the
+   descendant browsing contexts</a> of the
+   <code>Document</code>.</li>
+
+   <li>
+
+    <p>If <var title="">descendants</var> is not an empty list, then
+    for each <a href=#browsing-context>browsing context</a> <var title="">b</var> in
+    <var title="">descendants</var> run the following substeps:</p>
+
+    <ol><li><p><a href=#prompt-to-unload-a-document title="prompt to unload a document">Prompt to
+     unload</a> the <a href=#active-document>active document</a> of the
+     <a href=#browsing-context>browsing context</a> <var title="">b</var>. If the user
+     <a href=#refused-to-allow-the-document-to-be-unloaded>refused to allow the document to be unloaded</a>, then
+     the user implicitly also <a href=#refused-to-allow-the-document-to-be-unloaded title="refused to allow the
+     document to be unloaded">refused to allow <em>this</em> document
+     to be unloaded</a>; abort these steps.</p>
+
+     <li><p>If <var title="">salvageable</var> state of the
+     <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing context</a>
+     <var title="">b</var> is false, then set the <var title="">salvageable</var> state of <em>this</em> document to
+     false also.</li>
+
+    </ol></li>
+
   </ol><hr><p>When a user agent is to <dfn id=unload-a-document>unload a document</dfn>, it must run
   the following steps. These steps are passed an argument, <var title="">recycle</var>, which is either true or false, indicating
   whether the <code>Document</code> object is going to be
@@ -56427,9 +56480,37 @@
    <a href=#list-of-active-timeouts>list of active timeouts</a> and its <a href=#list-of-active-intervals>list of active
    intervals</a>.</li>
 
-   <li><p>If <var title="">salvageable</var> and <var title="">recycle</var> are both false, <a href=#discard-a-document title="discard a
-   document">discard the <code>Document</code></a>.</li>
+   <li><p>If this algorithm was invoked by another instance of the
+   "unload a document" algorithm (i.e. through the steps below that
+   invoke this algorithm for all descendant browsing contexts), then
+   abort these steps here.</li>
 
+   <li><p>Let <var title="">descendants</var> be the <a href=#list-of-the-descendant-browsing-contexts>list of the
+   descendant browsing contexts</a> of the
+   <code>Document</code>.</li>
+
+   <li>
+
+    <p>If <var title="">descendants</var> is not an empty list, then
+    for each <a href=#browsing-context>browsing context</a> <var title="">b</var> in
+    <var title="">descendants</var> run the following substeps:</p>
+
+    <ol><li><p><a href=#unload-a-document title="unload a document">Unload</a> the
+     <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing context</a>
+     <var title="">b</var> with the <var title="">recycle</var>
+     parameter set to false.</li>
+
+     <li><p>If <var title="">salvageable</var> state of the
+     <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing context</a>
+     <var title="">b</var> is false, then set the <var title="">salvageable</var> state of <em>this</em> document to
+     false also.</li>
+
+    </ol></li>
+
+   <li><p>If <var title="">salvageable</var> and <var title="">recycle</var> are both false, then the
+   <code>Document</code>'s <a href=#browsing-context>browsing context</a> must <a href=#discard-a-document title="discard a document">discard the
+   <code>Document</code></a>.</li>
+
   </ol><h5 id=event-definition><span class=secno>6.11.10.1 </span>Event definition</h5>
 
   </div>

Modified: index
===================================================================
--- index	2010-01-06 00:38:19 UTC (rev 4492)
+++ index	2010-01-06 02:57:58 UTC (rev 4493)
@@ -46089,7 +46089,24 @@
   context</a> gives the list of <dfn id=ancestor-browsing-context title="ancestor browsing
   context">ancestor browsing contexts</dfn>.</p>
 
-  <p>A <code>Document</code> is said to be <dfn id=fully-active>fully active</dfn>
+  <p>The <dfn id=list-of-the-descendant-browsing-contexts>list of the descendant browsing contexts</dfn> of a
+  <code>Document</code> <var title="">d</var> is the list returned by
+  the following algorithm:</p>
+
+  <ol><li><p>Let <var title="">list</var> be an empty list.</li>
+
+   <li><p>For each <a href=#child-browsing-context>child browsing context</a> of <var title="">d</var> that is <a href=#browsing-context-nested-through title="browsing context nested
+   through">nested through</a> an element that is <a href=#in-a-document title="in a
+   document">in the <code>Document</code></a> <var title="">d</var>, in the <a href=#tree-order>tree order</a> of the elements of
+   the elements nesting those <a href=#browsing-context title="browsing context">browsing
+   contexts</a>, append to the list <var title="">list</var> the
+   <a href=#list-of-the-descendant-browsing-contexts>list of the descendant browsing contexts</a> of the
+   <a href=#active-document>active document</a> of that <a href=#child-browsing-context>child browsing
+   context</a>.</li>
+
+   <li><p>Return the constructed <var title="">list</var>.</li>
+
+  </ol><hr><p>A <code>Document</code> is said to be <dfn id=fully-active>fully active</dfn>
   when it is the <a href=#active-document>active document</a> of its <a href=#browsing-context>browsing
   context</a>, and either its browsing context is a <a href=#top-level-browsing-context>top-level
   browsing context</a>, or the <code>Document</code> <a href=#browsing-context-nested-through title="browsing context nested through">through which</a> that
@@ -46810,12 +46827,14 @@
   <p>The <dfn id=dom-length title=dom-length><code>length</code></dfn> IDL
   attribute on the <code><a href=#window>Window</a></code> interface must return the
   number of <a href=#child-browsing-context title="child browsing context">child browsing
-  contexts</a> of the <a href=#active-document>active document</a> of that
-  <code><a href=#window>Window</a></code> object, if that <code><a href=#window>Window</a></code>'s
-  <a href=#browsing-context>browsing context</a> shares the same <a href=#event-loop>event
-  loop</a> as the <a href="#script's-browsing-context">script's browsing context</a> of the
-  <a href=#first-script>first script</a> accessing the IDL attribute; otherwise, it
-  must return zero.</p>
+  contexts</a> that are <a href=#browsing-context-nested-through title="browsing context nested
+  through">nested through</a> elements that are <a href=#in-a-document title="in a
+  document">in the <code>Document</code></a> that is the
+  <a href=#active-document>active document</a> of that <code><a href=#window>Window</a></code> object, if
+  that <code><a href=#window>Window</a></code>'s <a href=#browsing-context>browsing context</a> shares the
+  same <a href=#event-loop>event loop</a> as the <a href="#script's-browsing-context">script's browsing
+  context</a> of the <a href=#first-script>first script</a> accessing the IDL
+  attribute; otherwise, it must return zero.</p>
 
   <!-- in other words, frames are only accessible to same-thread processes -->
 
@@ -46827,9 +46846,10 @@
   <p>When a <code><a href=#window>Window</a></code> object is <dfn id=dom-window-item title=dom-window-item>indexed to retrieve an indexed
   property</dfn> <var title="">index</var>, the value returned must be
   the <var title="">index</var>th <a href=#child-browsing-context>child browsing context</a>
-  of the <code>Document</code>, sorted in the <a href=#tree-order>tree order</a>
-  of the elements nesting those <a href=#browsing-context title="browsing
-  context">browsing contexts</a>.</p>
+  of the <code>Document</code> that is nested through an element that
+  is <a href=#in-a-document title="in a document">in the <code>Document</code></a>,
+  sorted in the <a href=#tree-order>tree order</a> of the elements nesting those
+  <a href=#browsing-context title="browsing context">browsing contexts</a>.</p>
 
   <p>These properties are the <dfn id=dynamic-nested-browsing-context-properties>dynamic nested browsing context
   properties</dfn>.</p>
@@ -46936,9 +46956,12 @@
   <p>When a <a href=#browsing-context>browsing context</a> is to <dfn id=discard-a-document>discard a
   <code>Document</code></dfn>, that means that it is to lose the
   strong reference from the <code>Document</code>'s <a href=#browsing-context>browsing
-  context</a> to the <code>Document</code>, and that any <a href=#concept-task title=concept-task>tasks</a> associated with the
+  context</a> to the <code>Document</code>, that any <a href=#concept-task title=concept-task>tasks</a> associated with the
   <code>Document</code> in any <a href=#task-source>task source</a> must be
-  removed without being run.</p>
+  removed without being run, and that all the <a href=#child-browsing-context title="child
+  browsing context">child browsing contexts</a> of the
+  <code>Document</code> must also be <a href=#a-browsing-context-is-discarded title="a browsing context
+  is discarded">discarded</a>.</p>
 
   <p class=note>The <a href=#browsing-context>browsing context</a>'s <a href=#default-view>default
   view</a>'s <code><a href=#window>Window</a></code> object <a href=#implied-strong-reference title="implied strong
@@ -53573,6 +53596,36 @@
 
    </li>
 
+   <li><p>If this algorithm was invoked by another instance of the
+   "prompt to unload a document" algorithm (i.e. through the steps
+   below that invoke this algorithm for all descendant browsing
+   contexts), then abort these steps here.</li>
+
+   <li><p>Let <var title="">descendants</var> be the <a href=#list-of-the-descendant-browsing-contexts>list of the
+   descendant browsing contexts</a> of the
+   <code>Document</code>.</li>
+
+   <li>
+
+    <p>If <var title="">descendants</var> is not an empty list, then
+    for each <a href=#browsing-context>browsing context</a> <var title="">b</var> in
+    <var title="">descendants</var> run the following substeps:</p>
+
+    <ol><li><p><a href=#prompt-to-unload-a-document title="prompt to unload a document">Prompt to
+     unload</a> the <a href=#active-document>active document</a> of the
+     <a href=#browsing-context>browsing context</a> <var title="">b</var>. If the user
+     <a href=#refused-to-allow-the-document-to-be-unloaded>refused to allow the document to be unloaded</a>, then
+     the user implicitly also <a href=#refused-to-allow-the-document-to-be-unloaded title="refused to allow the
+     document to be unloaded">refused to allow <em>this</em> document
+     to be unloaded</a>; abort these steps.</p>
+
+     <li><p>If <var title="">salvageable</var> state of the
+     <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing context</a>
+     <var title="">b</var> is false, then set the <var title="">salvageable</var> state of <em>this</em> document to
+     false also.</li>
+
+    </ol></li>
+
   </ol><hr><p>When a user agent is to <dfn id=unload-a-document>unload a document</dfn>, it must run
   the following steps. These steps are passed an argument, <var title="">recycle</var>, which is either true or false, indicating
   whether the <code>Document</code> object is going to be
@@ -53601,9 +53654,37 @@
    <a href=#list-of-active-timeouts>list of active timeouts</a> and its <a href=#list-of-active-intervals>list of active
    intervals</a>.</li>
 
-   <li><p>If <var title="">salvageable</var> and <var title="">recycle</var> are both false, <a href=#discard-a-document title="discard a
-   document">discard the <code>Document</code></a>.</li>
+   <li><p>If this algorithm was invoked by another instance of the
+   "unload a document" algorithm (i.e. through the steps below that
+   invoke this algorithm for all descendant browsing contexts), then
+   abort these steps here.</li>
 
+   <li><p>Let <var title="">descendants</var> be the <a href=#list-of-the-descendant-browsing-contexts>list of the
+   descendant browsing contexts</a> of the
+   <code>Document</code>.</li>
+
+   <li>
+
+    <p>If <var title="">descendants</var> is not an empty list, then
+    for each <a href=#browsing-context>browsing context</a> <var title="">b</var> in
+    <var title="">descendants</var> run the following substeps:</p>
+
+    <ol><li><p><a href=#unload-a-document title="unload a document">Unload</a> the
+     <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing context</a>
+     <var title="">b</var> with the <var title="">recycle</var>
+     parameter set to false.</li>
+
+     <li><p>If <var title="">salvageable</var> state of the
+     <a href=#active-document>active document</a> of the <a href=#browsing-context>browsing context</a>
+     <var title="">b</var> is false, then set the <var title="">salvageable</var> state of <em>this</em> document to
+     false also.</li>
+
+    </ol></li>
+
+   <li><p>If <var title="">salvageable</var> and <var title="">recycle</var> are both false, then the
+   <code>Document</code>'s <a href=#browsing-context>browsing context</a> must <a href=#discard-a-document title="discard a document">discard the
+   <code>Document</code></a>.</li>
+
   </ol><h5 id=event-definition><span class=secno>6.11.10.1 </span>Event definition</h5>
 
   </div>

Modified: source
===================================================================
--- source	2010-01-06 00:38:19 UTC (rev 4492)
+++ source	2010-01-06 02:57:58 UTC (rev 4493)
@@ -55025,6 +55025,31 @@
   context</span> gives the list of <dfn title="ancestor browsing
   context">ancestor browsing contexts</dfn>.</p>
 
+  <p>The <dfn>list of the descendant browsing contexts</dfn> of a
+  <code>Document</code> <var title="">d</var> is the list returned by
+  the following algorithm:</p>
+
+  <ol>
+
+   <li><p>Let <var title="">list</var> be an empty list.</p></li>
+
+   <li><p>For each <span>child browsing context</span> of <var
+   title="">d</var> that is <span title="browsing context nested
+   through">nested through</span> an element that is <span title="in a
+   document">in the <code>Document</code></span> <var
+   title="">d</var>, in the <span>tree order</span> of the elements of
+   the elements nesting those <span title="browsing context">browsing
+   contexts</span>, append to the list <var title="">list</var> the
+   <span>list of the descendant browsing contexts</span> of the
+   <span>active document</span> of that <span>child browsing
+   context</span>.</p></li>
+
+   <li><p>Return the constructed <var title="">list</var>.</p></li>
+
+  </ol>
+
+  <hr>
+
   <p>A <code>Document</code> is said to be <dfn>fully active</dfn>
   when it is the <span>active document</span> of its <span>browsing
   context</span>, and either its browsing context is a <span>top-level
@@ -55824,12 +55849,14 @@
   <p>The <dfn title="dom-length"><code>length</code></dfn> IDL
   attribute on the <code>Window</code> interface must return the
   number of <span title="child browsing context">child browsing
-  contexts</span> of the <span>active document</span> of that
-  <code>Window</code> object, if that <code>Window</code>'s
-  <span>browsing context</span> shares the same <span>event
-  loop</span> as the <span>script's browsing context</span> of the
-  <span>first script</span> accessing the IDL attribute; otherwise, it
-  must return zero.</p>
+  contexts</span> that are <span title="browsing context nested
+  through">nested through</span> elements that are <span title="in a
+  document">in the <code>Document</code></span> that is the
+  <span>active document</span> of that <code>Window</code> object, if
+  that <code>Window</code>'s <span>browsing context</span> shares the
+  same <span>event loop</span> as the <span>script's browsing
+  context</span> of the <span>first script</span> accessing the IDL
+  attribute; otherwise, it must return zero.</p>
 
   <!-- in other words, frames are only accessible to same-thread processes -->
 
@@ -55845,9 +55872,10 @@
   title="dom-window-item">indexed to retrieve an indexed
   property</dfn> <var title="">index</var>, the value returned must be
   the <var title="">index</var>th <span>child browsing context</span>
-  of the <code>Document</code>, sorted in the <span>tree order</span>
-  of the elements nesting those <span title="browsing
-  context">browsing contexts</span>.</p>
+  of the <code>Document</code> that is nested through an element that
+  is <span title="in a document">in the <code>Document</code></span>,
+  sorted in the <span>tree order</span> of the elements nesting those
+  <span title="browsing context">browsing contexts</span>.</p>
 
   <p>These properties are the <dfn>dynamic nested browsing context
   properties</dfn>.</p>
@@ -55979,10 +56007,13 @@
   <p>When a <span>browsing context</span> is to <dfn>discard a
   <code>Document</code></dfn>, that means that it is to lose the
   strong reference from the <code>Document</code>'s <span>browsing
-  context</span> to the <code>Document</code>, and that any <span
+  context</span> to the <code>Document</code>, that any <span
   title="concept-task">tasks</span> associated with the
   <code>Document</code> in any <span>task source</span> must be
-  removed without being run.</p>
+  removed without being run, and that all the <span title="child
+  browsing context">child browsing contexts</span> of the
+  <code>Document</code> must also be <span title="a browsing context
+  is discarded">discarded</span>.</p>
 
   <p class="note">The <span>browsing context</span>'s <span>default
   view</span>'s <code>Window</code> object <span title="implied strong
@@ -63680,6 +63711,41 @@
 
    </li>
 
+   <li><p>If this algorithm was invoked by another instance of the
+   "prompt to unload a document" algorithm (i.e. through the steps
+   below that invoke this algorithm for all descendant browsing
+   contexts), then abort these steps here.</p></li>
+
+   <li><p>Let <var title="">descendants</var> be the <span>list of the
+   descendant browsing contexts</span> of the
+   <code>Document</code>.</p></li>
+
+   <li>
+
+    <p>If <var title="">descendants</var> is not an empty list, then
+    for each <span>browsing context</span> <var title="">b</var> in
+    <var title="">descendants</var> run the following substeps:</p>
+
+    <ol>
+
+     <li><p><span title="prompt to unload a document">Prompt to
+     unload</span> the <span>active document</span> of the
+     <span>browsing context</span> <var title="">b</var>. If the user
+     <span>refused to allow the document to be unloaded</span>, then
+     the user implicitly also <span title="refused to allow the
+     document to be unloaded">refused to allow <em>this</em> document
+     to be unloaded</span>; abort these steps.</p>
+
+     <li><p>If <var title="">salvageable</var> state of the
+     <span>active document</span> of the <span>browsing context</span>
+     <var title="">b</var> is false, then set the <var
+     title="">salvageable</var> state of <em>this</em> document to
+     false also.</p></li>
+
+    </ol>
+
+   </li>
+
   </ol>
 
   <hr>
@@ -63718,9 +63784,43 @@
    <span>list of active timeouts</span> and its <span>list of active
    intervals</span>.</p></li>
 
+   <li><p>If this algorithm was invoked by another instance of the
+   "unload a document" algorithm (i.e. through the steps below that
+   invoke this algorithm for all descendant browsing contexts), then
+   abort these steps here.</p></li>
+
+   <li><p>Let <var title="">descendants</var> be the <span>list of the
+   descendant browsing contexts</span> of the
+   <code>Document</code>.</p></li>
+
+   <li>
+
+    <p>If <var title="">descendants</var> is not an empty list, then
+    for each <span>browsing context</span> <var title="">b</var> in
+    <var title="">descendants</var> run the following substeps:</p>
+
+    <ol>
+
+     <li><p><span title="unload a document">Unload</span> the
+     <span>active document</span> of the <span>browsing context</span>
+     <var title="">b</var> with the <var title="">recycle</var>
+     parameter set to false.</p></li>
+
+     <li><p>If <var title="">salvageable</var> state of the
+     <span>active document</span> of the <span>browsing context</span>
+     <var title="">b</var> is false, then set the <var
+     title="">salvageable</var> state of <em>this</em> document to
+     false also.</p></li>
+
+    </ol>
+
+   </li>
+
    <li><p>If <var title="">salvageable</var> and <var
-   title="">recycle</var> are both false, <span title="discard a
-   document">discard the <code>Document</code></span>.</p></li>
+   title="">recycle</var> are both false, then the
+   <code>Document</code>'s <span>browsing context</span> must <span
+   title="discard a document">discard the
+   <code>Document</code></span>.</p></li>
 
   </ol>
 




More information about the Commit-Watchers mailing list