Skip to content

Commit 3a8303e

Browse files
committed
Fix window.close() always doing nothing
This regressed in af3ff83, which intended to allow other specifications to call "close a top-level traversable" without interfering with ongoing close operations due to window.close(). However, the way it did so was buggy. Fix it. Additionally, export "close" for top-level traversables, and update the editorial style for how "close" and "destroy" are declared for top-level traversables. Fixes #10678.
1 parent d8e5343 commit 3a8303e

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

source

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -89791,7 +89791,8 @@ dictionary <dfn dictionary>WindowPostMessageOptions</dfn> : <span>StructuredSeri
8979189791
<li><p>Set <var>thisTraversable</var>'s <span>is closing</span> to true.</p></li>
8979289792

8979389793
<li><p><span>Queue a task</span> on the <span>DOM manipulation task source</span> to <span
89794-
data-x="close a top-level traversable">close</span> <var>thisTraversable</var>.</p></li>
89794+
data-x="definitely close a top-level traversable">definitely close</span>
89795+
<var>thisTraversable</var>.</p></li>
8979589796
</ol>
8979689797
</li>
8979789798
</ol>
@@ -96837,8 +96838,8 @@ interface <dfn interface>NotRestoredReasons</dfn> {
9683796838
<li><p>Invoke <span>WebDriver BiDi navigable destroyed</span> with <var>navigable</var>.</p></li>
9683896839
</ol>
9683996840

96840-
<p>To <dfn>destroy a top-level traversable</dfn> given a <span>top-level traversable</span>
96841-
<var>traversable</var>:</p>
96841+
<p>To <dfn data-x="destroy a top-level traversable">destroy</dfn> a <span>top-level
96842+
traversable</span> <var>traversable</var>:</p>
9684296843

9684396844
<ol>
9684496845
<li><p>Let <var>browsingContext</var> be <var>traversable</var>'s <span
@@ -96872,21 +96873,30 @@ interface <dfn interface>NotRestoredReasons</dfn> {
9687296873
<p>User agents may <span>destroy a top-level traversable</span> at any time (typically, <a
9687396874
href="#nav-traversal-ui">in response to user requests</a>).</p>
9687496875

96875-
<p id="closing-browsing-contexts"><span id="close-a-browsing-context"></span>To <dfn>close a
96876-
top-level traversable</dfn> <var>traversable</var>:</p>
96876+
<p id="closing-browsing-contexts"><span id="close-a-browsing-context"></span>To <dfn export
96877+
id="close-a-top-level-traversable" for="top-level traversable" data-x="close a top-level
96878+
traversable">close</dfn> a <span>top-level traversable</span> <var>traversable</var>:</p>
9687796879

9687896880
<ol>
9687996881
<li><p>If <var>traversable</var>'s <span>is closing</span> is true, then return.</p></li>
9688096882

96883+
<li><p><span data-x="definitely close a top-level traversable">Definitely close</span>
96884+
<var>traversable</var>.</p></li>
96885+
</ol>
96886+
96887+
<p>To <dfn data-x="definitely close a top-level traversable">definitely close</dfn> a
96888+
<span>top-level traversable</span> <var>traversable</var>:</p>
96889+
96890+
<ol>
9688196891
<li><p>Let <var>toUnload</var> be <var>traversable</var>'s <span data-x="nav-document">active
9688296892
document</span>'s <span>inclusive descendant navigables</span>.</p></li>
9688396893

9688496894
<li><p>If the result of <span>checking if unloading is canceled</span> for <var>toUnload</var> is
9688596895
true, then return.</p></li>
9688696896

9688796897
<li>
96888-
<p><span data-x="tn-append-session-history-traversal-steps">Append the following session
96889-
history traversal steps</span> to <var>traversable</var>:</p>
96898+
<p><span data-x="tn-append-session-history-traversal-steps">Append the following session history
96899+
traversal steps</span> to <var>traversable</var>:</p>
9689096900

9689196901
<ol>
9689296902
<li><p>Let <var>afterAllUnloads</var> be an algorithm step which <span data-x="destroy a
@@ -96898,6 +96908,12 @@ interface <dfn interface>NotRestoredReasons</dfn> {
9689896908
</li>
9689996909
</ol>
9690096910

96911+
<p class="note">The <span data-x="close a top-level traversable">close</span> vs. <span
96912+
data-x="definitely close a top-level traversable">definitely close</span> separation allows other
96913+
specifications to call <span data-x="close a top-level traversable">close</span> and have it be a
96914+
no-op if the top-level traversable is already closing due to JavaScript code calling <code
96915+
data-x="dom-window-close">window.close()</code>.</p>
96916+
9690196917

9690296918
<h5><span id="browsing-context-names"></span>Navigable target names</h5>
9690396919

0 commit comments

Comments
 (0)