@@ -92621,8 +92621,8 @@ interface <dfn interface>BarProp</dfn> {
9262192621 <p>To <dfn>set up a window environment settings object</dfn>, given a <span>URL</span>
9262292622 <var>creationURL</var>, a <span>JavaScript execution context</span> <var>execution context</var>,
9262392623 null or an <span>environment</span> <var>reservedEnvironment</var>, a <span>URL</span>
92624- <var>topLevelCreationURL</var>, and an <span>origin</span> <var>topLevelOrigin</var>, run these
92625- steps :</p>
92624+ <var>topLevelCreationURL</var>, an <span>origin</span> <var>topLevelOrigin</var>, and a
92625+ boolean <var>hasCrossSiteAncestor</var> :</p>
9262692626
9262792627 <ol>
9262892628 <li><p>Let <var>realm</var> be the value of <var>execution context</var>'s Realm
@@ -92660,30 +92660,6 @@ interface <dfn interface>BarProp</dfn> {
9266092660 <span data-x="concept-document-window">associated <code>Document</code></span>.</p>
9266192661 </dd>
9266292662
92663- <dt>The <span data-x="concept-settings-object-has-cross-site-ancestor">has cross-site
92664- ancestor</span></dt>
92665- <dd>
92666- <ol>
92667- <li><p>If <var>window</var>'s <span>navigable</span>'s <span
92668- data-x="nav-parent">parent</span> is null, then return false.</p></li>
92669-
92670- <li><p>Let <var>parentDocument</var> be <var>window</var>'s <span>navigable</span>'s <span
92671- data-x="nav-parent">parent</span>'s <span data-x="nav-document">active
92672- document</span>.</p></li>
92673-
92674- <li><p>If <var>parentDocument</var>'s <span>relevant settings object</span>'s <span
92675- data-x="concept-settings-object-has-cross-site-ancestor">has cross-site ancestor</span> is
92676- true, then return true.</p></li>
92677-
92678- <li><p>If <var>parentDocument</var>'s <span data-x="concept-document-origin">origin</span>
92679- is not <span>same site</span> with <var>window</var>'s <span
92680- data-x="concept-document-window">associated <code>Document</code></span>'s <span
92681- data-x="concept-document-origin">origin</span>, then return true.</p></li>
92682-
92683- <li><p>Return false.</p></li>
92684- </ol>
92685- </dd>
92686-
9268792663 <dt>The <span data-x="concept-settings-object-policy-container">policy container</span></dt>
9268892664 <dd>
9268992665 <p>Return the <span data-x="concept-document-policy-container">policy container</span> of
@@ -92748,8 +92724,10 @@ interface <dfn interface>BarProp</dfn> {
9274892724
9274992725 <li><p>Set <var>settings object</var>'s <span data-x="concept-environment-creation-url">creation
9275092726 URL</span> to <var>creationURL</var>, <var>settings object</var>'s <span>top-level creation
92751- URL</span> to <var>topLevelCreationURL</var>, and <var>settings object</var>'s <span>top-level
92752- origin</span> to <var>topLevelOrigin</var>.</p></li>
92727+ URL</span> to <var>topLevelCreationURL</var>, <var>settings object</var>'s <span>top-level
92728+ origin</span> to <var>topLevelOrigin</var>, and <var>settings object</var>'s <span
92729+ data-x="concept-environment-cross-site-ancestor">has cross-site ancestor</span> to
92730+ <var>hasCrossSiteAncestor</var>.</p></li>
9275392731
9275492732 <li><p>Set <var>realm</var>'s [[HostDefined]] field to <var>settings object</var>.</p></li>
9275592733 </ol>
@@ -100111,9 +100089,20 @@ interface <dfn interface>NotRestoredReasons</dfn> {
100111100089 otherwise <var>embedder</var>'s <span>relevant settings object</span>'s <span>top-level
100112100090 origin</span>.</p></li>
100113100091
100092+ <li><p>Let <var>hasCrossSiteAncestor</var> be false.</p></li>
100093+
100094+ <li><p>If <var>embedder</var> is not null, then set <var>hasCrossSiteAncestor</var> to
100095+ <var>embedder</var>'s <span>relevant settings object</span>'s <span
100096+ data-x="concept-environment-cross-site-ancestor"> has cross-site ancestor</span>.</p></li>
100097+
100098+ <li><p>If <var>embedder</var> is not null, and <var>origin</var> is not <span>same site</span>
100099+ with <var>embedder</var>'s <span>relevant settings object</span>'s <span
100100+ data-x="concept-settings-object-origin">origin</span>, then set <var>hasCrossSiteAncestor</var>
100101+ to true.</p></li>
100102+
100114100103 <li><p><span>Set up a window environment settings object</span> with <code>about:blank</code>,
100115- <var>realm execution context</var>, null, <var>topLevelCreationURL</var>, and
100116- <var>topLevelOrigin</var>.</p></li>
100104+ <var>realm execution context</var>, null, <var>topLevelCreationURL</var>,
100105+ <var>topLevelOrigin</var>, and <var>hasCrossSiteAncestor</var> .</p></li>
100117100106
100118100107 <li><p>Let <var>loadTimingInfo</var> be a new <span>document load timing info</span> with
100119100108 its <span>navigation start time</span> set to the result of calling <span>coarsen time</span>
@@ -104209,6 +104198,8 @@ location.href = '#foo';</code></pre>
104209104198
104210104199 <li><p>Let <var>topLevelOrigin</var> be null.</p></li>
104211104200
104201+ <li><p>Let <var>hasCrossSiteAncestor</var> be false.</p></li>
104202+
104212104203 <li>
104213104204 <p>If <var>navigable</var> is not a <span>top-level traversable</span>, then:</p>
104214104205
@@ -104222,6 +104213,15 @@ location.href = '#foo';</code></pre>
104222104213
104223104214 <li><p>Set <var>topLevelOrigin</var> to <var>parentEnvironment</var>'s <span>top-level
104224104215 origin</span>.</p></li>
104216+
104217+ <li><p>Set <var>hasCrossSiteAncestor</var> to <var>parentEnvironment</var>'s <span
104218+ data-x="concept-environment-cross-site-ancestor">has cross-site ancestor</span>.</p></li>
104219+
104220+ <li><p>If <var>parentEnvironment</var>'s <span
104221+ data-x="concept-settings-object-origin">origin</span> is not <span>same site</span> with
104222+ <var>navigable</var>'s <span data-x="nav-document">active document</span>'s <span>relevant
104223+ settings object</span>'s <span data-x="concept-settings-object-origin">origin</span>, then
104224+ set <var>hasCrossSiteAncestor</var> to true.</p></li>
104225104225 </ol>
104226104226 </li>
104227104227
@@ -104232,8 +104232,10 @@ location.href = '#foo';</code></pre>
104232104232 data-x="concept-environment-target-browsing-context">target browsing context</span> is
104233104233 <var>navigable</var>'s <span data-x="nav-bc">active browsing context</span>, <span
104234104234 data-x="concept-environment-creation-url">creation URL</span> is <var>currentURL</var>,
104235- <span>top-level creation URL</span> is <var>topLevelCreationURL</var>, and <span>top-level
104236- origin</span> is <var>topLevelOrigin</var>.</p>
104235+ <span>top-level creation URL</span> is <var>topLevelCreationURL</var>, <span>top-level
104236+ origin</span> is <var>topLevelOrigin</var>, and <span
104237+ data-x="concept-environment-cross-site-ancestor">has cross-site ancestor</span> is
104238+ <var>hasCrossSiteAncestor</var>.</p>
104237104239
104238104240 <p class="note">The created environment's <span
104239104241 data-x="concept-environment-active-service-worker">active service worker</span> is set in
@@ -106737,6 +106739,8 @@ location.href = '#foo';</code></pre>
106737106739 <li><p>Let <var>topLevelOrigin</var> be <var>navigationParams</var>'s <span
106738106740 data-x="navigation-params-origin">origin</span>.</p></li>
106739106741
106742+ <li><p>Let <var>hasCrossSiteAncestor</var> be false.</p></li>
106743+
106740106744 <li>
106741106745 <p>If <var>navigable</var>'s <span data-x="nav-container">container</span> is not null,
106742106746 then:</p>
@@ -106750,13 +106754,22 @@ location.href = '#foo';</code></pre>
106750106754
106751106755 <li><p>Set <var>topLevelOrigin</var> to <var>parentEnvironment</var>'s <span>top-level
106752106756 origin</span>.</p></li>
106757+
106758+ <li><p>Set <var>hasCrossSiteAncestor</var> to <var>parentEnvironment</var>'s <span
106759+ data-x="concept-environment-cross-site-ancestor">has cross-site ancestor</span>.</p></li>
106760+
106761+ <li><p>If <var>navigationParams</var>'s <span
106762+ data-x="navigation-params-request">origin</span> is not <span>same site</span> with
106763+ <var>parentEnvironment</var>'s <span data-x="concept-settings-object-origin">origin</span>,
106764+ then set <var>hasCrossSiteAncestor</var> to true.</p>
106753106765 </ol>
106754106766 </li>
106755106767
106756106768 <li><p><span>Set up a window environment settings object</span> with <var>creationURL</var>,
106757106769 <var>realmExecutionContext</var>, <var>navigationParams</var>'s <span
106758106770 data-x="navigation-params-reserved-environment">reserved environment</span>,
106759- <var>topLevelCreationURL</var>, and <var>topLevelOrigin</var>.</p></li>
106771+ <var>topLevelCreationURL</var>, <var>topLevelOrigin</var>, and
106772+ <var>hasCrossSiteAncestor</var>.</p></li>
106760106773 </ol>
106761106774
106762106775 <p class="note">This is the usual case, where the new <code>Document</code> we're about to
@@ -108624,6 +108637,15 @@ new PaymentRequest(…); // Allowed to use
108624108637 involved.</p>
108625108638 </dd>
108626108639
108640+ <dt>A <dfn data-x="concept-environment-cross-site-ancestor" export for="environment">has
108641+ cross-site ancestor</dfn></dt>
108642+ <dd><p>A boolean. For window <span>environment settings object</span>s this will be set to true
108643+ if an ancestor frame has an <span data-x="concept-settings-object-origin">origin</span> that is
108644+ not <span>same site</span> with the current window's <span
108645+ data-x="concept-settings-object-origin">origin</span> and otherwise false. For workers and
108646+ worklets it is set to the <span data-x="concept-environment-cross-site-ancestor">has cross-site
108647+ ancestor</span> of its creator.</p></dd>
108648+
108627108649 <dt>A <dfn data-x="concept-environment-target-browsing-context" export
108628108650 for="environment">target browsing context</dfn></dt>
108629108651 <dd><p>Null or a target <span>browsing context</span> for a <span
@@ -108687,10 +108709,6 @@ new PaymentRequest(…); // Allowed to use
108687108709 <p>An <span>origin</span> used in security checks.</p>
108688108710 </dd>
108689108711
108690- <dt>A <dfn data-x="concept-settings-object-has-cross-site-ancestor" export
108691- for="environment settings object">has cross-site ancestor</dfn></dt>
108692- <dd><p>A boolean used in security checks.</p></dd>
108693-
108694108712 <dt>A <dfn data-x="concept-settings-object-policy-container" export
108695108713 for="environment settings object">policy container</dfn></dt>
108696108714
@@ -123514,23 +123532,6 @@ interface <dfn interface>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope
123514123532 origin</var> otherwise.</p>
123515123533 </dd>
123516123534
123517- <dt>The <span data-x="concept-settings-object-has-cross-site-ancestor">has cross-site
123518- ancestry</span></dt>
123519- <dd>
123520- <ol>
123521- <li><p>If <var>outside settings</var>'s <span
123522- data-x="concept-settings-object-has-cross-site-ancestor">has cross-site ancestor</span> is
123523- true, then return true.</p></li>
123524-
123525- <li><p>If <var>worker global scope</var>'s <span
123526- data-x="concept-WorkerGlobalScope-url">url</span>'s <span
123527- data-x="concept-url-scheme">scheme</span> is "<code data-x="">data</code>", then return
123528- true.</p></li>
123529-
123530- <li><p>Return false.</p></li>
123531- </ol>
123532- </dd>
123533-
123534123535 <dt>The <span data-x="concept-settings-object-policy-container">policy container</span></dt>
123535123536 <dd>
123536123537 <p>Return <var>worker global scope</var>'s <span
@@ -123555,8 +123556,10 @@ interface <dfn interface>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope
123555123556 unique opaque string, <span data-x="concept-environment-creation-url">creation URL</span> to
123556123557 <var>worker global scope</var>'s <span>url</span>, <span>top-level creation URL</span> to null,
123557123558 <span data-x="concept-environment-target-browsing-context">target browsing context</span> to
123558- null, and <span data-x="concept-environment-active-service-worker">active service worker</span>
123559- to null.</p></li>
123559+ null, <span data-x="concept-environment-active-service-worker">active service worker</span>
123560+ to null, and <span data-x="concept-environment-cross-site-ancestor">has cross-site
123561+ ancestor</span> to <var>outside settings</var>'s <span
123562+ data-x="concept-environment-cross-site-ancestor">has cross-site ancestor</span>.</p></li>
123560123563
123561123564 <li><p>If <var>worker global scope</var> is a <code>DedicatedWorkerGlobalScope</code> object,
123562123565 then set <var>settings object</var>'s <span>top-level origin</span> to <var>outside
@@ -124813,10 +124816,6 @@ interface <dfn interface>WorkletGlobalScope</dfn> {};</code></pre>
124813124816 <p>Return <var>origin</var>.</p>
124814124817 </dd>
124815124818
124816- <dt>The <span data-x="concept-settings-object-has-cross-site-ancestor">has cross-site
124817- ancestor</span></dt>
124818- <dd><p>Return true.</p></dd>
124819-
124820124819 <dt>The <span data-x="concept-settings-object-policy-container">policy container</span></dt>
124821124820 <dd>
124822124821 <p>Return <var>inheritedPolicyContainer</var>.</p>
@@ -147748,7 +147747,6 @@ INSERT INTERFACES HERE
147748147747 Ben Millard,
147749147748 Benjamin Carl Wiley Sittler,
147750147749 Benjamin Hawkes-Lewis,
147751- Benjamin VanderSloot,
147752147750 Benji Bilheimer, <!-- benjibee on GitHub -->
147753147751 Benoit Ren,
147754147752 Bert Bos,
0 commit comments