Skip to content

Commit 009a731

Browse files
authored
Fix setting a window settings object's URL
Fixes #2455 by passing the creation URL to "set up a window environment's settings object", instead of having it attempt to grab the creation URL from the not-yet-created Document object. The later comments in #2455 discuss some followup work we could do to clarify the Document/Window relationship, but that is left for a future commit. This also removes the XXX box mentioned in #2688, since Documents are nowadays created after Windows in the spec.
1 parent 65b2af5 commit 009a731

File tree

1 file changed

+20
-22
lines changed

1 file changed

+20
-22
lines changed

source

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -77250,13 +77250,8 @@ popup4.close();</code></pre></div>
7725077250
steps:</p>
7725177251

7725277252
<ol>
77253-
<li>
77254-
<p>Let <var>window</var> be <var>document</var>'s <span>relevant global object</span>.</p>
77255-
77256-
<p class="XXX">Per this standard <var>document</var> can be created before <var>window</var>,
77257-
which does not make much sense. See <a href="https://github.com/whatwg/html/issues/2688">issue
77258-
#2688</a>.</p>
77259-
</li>
77253+
<li><p>Let <var>window</var> be <var>document</var>'s <span>relevant global
77254+
object</span>.</p></li>
7726077255

7726177256
<li><p>Set <var>browsingContext</var>'s <span>active window</span> to <var>window</var>.</p></li>
7726277257

@@ -77371,8 +77366,9 @@ popup4.close();</code></pre></div>
7737177366
otherwise <var>embedder</var>'s <span>relevant settings object</span>'s <span>top-level
7737277367
origin</span>.</p></li>
7737377368

77374-
<li><p><span>Set up a window environment settings object</span> with <var>realm execution
77375-
context</var>, null, <var>topLevelCreationURL</var>, and <var>topLevelOrigin</var>.</p></li>
77369+
<li><p><span>Set up a window environment settings object</span> with <code>about:blank</code>,
77370+
<var>realm execution context</var>, null, <var>topLevelCreationURL</var>, and
77371+
<var>topLevelOrigin</var>.</p></li>
7737677372

7737777373
<li><p>Let <var>coop</var> be a new <span>cross-origin opener policy</span>.</p></li>
7737877374

@@ -77392,6 +77388,11 @@ popup4.close();</code></pre></div>
7739277388
opener policy</span> is <var>coop</var>, and which is <span>ready for post-load
7739377389
tasks</span>.</p></li>
7739477390

77391+
<li><p>Assert: <var>document</var>'s <span data-x="concept-document-url">URL</span> and
77392+
<var>document</var>'s <span>relevant settings object</span>'s <span
77393+
data-x="concept-environment-creation-url">creation URL</span> are
77394+
<code>about:blank</code>.</p></li>
77395+
7739577396
<li><p>Ensure that <var>document</var> has a single child <code>html</code> node, which itself
7739677397
has two empty child nodes: a <code>head</code> element, and a <code>body</code> element.</p></li>
7739777398

@@ -79531,10 +79532,11 @@ interface <dfn>BarProp</dfn> {
7953179532

7953279533
<h4>Script settings for <code>Window</code> objects</h4>
7953379534

79534-
<p>To <dfn>set up a window environment settings object</dfn>, given a <span>JavaScript execution
79535-
context</span> <var>execution context</var>, null or an <span>environment</span>
79536-
<var>reservedEnvironment</var>, a <span>URL</span> <var>topLevelCreationURL</var>, and an
79537-
<span>origin</span> <var>topLevelOrigin</var>, run these steps:</p>
79535+
<p>To <dfn>set up a window environment settings object</dfn>, given a <span>URL</span>
79536+
<var>creationURL</var>, a <span>JavaScript execution context</span> <var>execution context</var>,
79537+
null or an <span>environment</span> <var>reservedEnvironment</var>, a <span>URL</span>
79538+
<var>topLevelCreationURL</var>, and an <span>origin</span> <var>topLevelOrigin</var>, run these
79539+
steps:</p>
7953879540

7953979541
<ol>
7954079542
<li><p>Let <var>realm</var> be the value of <var>execution context</var>'s Realm
@@ -79543,10 +79545,6 @@ interface <dfn>BarProp</dfn> {
7954379545
<li><p>Let <var>window</var> be <var>realm</var>'s <span data-x="concept-realm-global">global
7954479546
object</span>.</p></li>
7954579547

79546-
<li><p>Let <var>url</var> be a copy of the <span data-x="concept-document-url">URL</span> of
79547-
<var>window</var>'s <span data-x="concept-document-window">associated
79548-
<code>Document</code></span>.</p></li>
79549-
7955079548
<li>
7955179549
<p>Let <var>settings object</var> be a new <span>environment settings object</span> whose
7955279550
algorithms are defined as follows:</p>
@@ -79653,9 +79651,9 @@ interface <dfn>BarProp</dfn> {
7965379651
data-x="concept-environment-active-service-worker">active service worker</span> to null.</p></li>
7965479652

7965579653
<li><p>Set <var>settings object</var>'s <span data-x="concept-environment-creation-url">creation
79656-
URL</span> to <var>url</var>, <var>settings object</var>'s <span>top-level creation URL</span> to
79657-
<var>topLevelCreationURL</var>, and <var>settings object</var>'s <span>top-level origin</span> to
79658-
<var>topLevelOrigin</var>.</p></li>
79654+
URL</span> to <var>creationURL</var>, <var>settings object</var>'s <span>top-level creation
79655+
URL</span> to <var>topLevelCreationURL</var>, and <var>settings object</var>'s <span>top-level
79656+
origin</span> to <var>topLevelOrigin</var>.</p></li>
7965979657

7966079658
<li><p>Set <var>realm</var>'s [[HostDefined]] field to <var>settings object</var>.</p></li>
7966179659
</ol>
@@ -85004,8 +85002,8 @@ interface <dfn>Location</dfn> { // but see also <a href="#the-location-interface
8500485002
</ol>
8500585003
</li>
8500685004

85007-
<li><p><span>Set up a window environment settings object</span> with <var>realm execution
85008-
context</var>, <var>navigationParams</var>'s <span
85005+
<li><p><span>Set up a window environment settings object</span> with <var>creationURL</var>,
85006+
<var>realm execution context</var>, <var>navigationParams</var>'s <span
8500985007
data-x="navigation-params-reserved-environment">reserved environment</span>,
8501085008
<var>topLevelCreationURL</var>, and <var>topLevelOrigin</var>.</p></li>
8501185009
</ol>

0 commit comments

Comments
 (0)