Skip to content

Commit 1bec6ad

Browse files
authored
Add embedder policy to the policy container
Part of #4926. Closes #4916.
1 parent 64c428a commit 1bec6ad

File tree

1 file changed

+32
-69
lines changed

1 file changed

+32
-69
lines changed

source

+32-69
Original file line numberDiff line numberDiff line change
@@ -9204,9 +9204,6 @@ partial interface <dfn id="document" data-lt="">Document</dfn> {
92049204
for="Document">policy container</dfn> (a <span>policy container</span>), initially a new policy
92059205
container, which contains policies which apply to the <code>Document</code>.</p>
92069206

9207-
<p>The <code>Document</code> has an <dfn data-x="concept-document-embedder-policy">embedder
9208-
policy</dfn> (an <span>embedder policy</span>).</p>
9209-
92109207
<p id="concept-document-feature-policy">The <code>Document</code> has a <dfn
92119208
data-x="concept-document-permissions-policy" export for="Document">permissions policy</dfn>, which
92129209
is a <span data-x="concept-permissions-policy">permissions policy</span>, which is initially
@@ -78865,10 +78862,6 @@ popup4.close();</code></pre></div>
7886578862
<var>document</var>'s <span data-x="the document's referrer">referrer</span> to the <span
7886678863
data-x="concept-url-serializer">serialization</span> of it.</p></li>
7886778864

78868-
<li><p>If <var>creator</var> is non-null, then set <var>document</var>'s
78869-
<span data-x="concept-document-embedder-policy">embedder policy</span> to <var>creator</var>'s
78870-
<span data-x="concept-document-embedder-policy">embedder policy</span>.</p></li>
78871-
7887278865
<li><p>If <var>creator</var> is non-null, then set <var>document</var>'s <span
7887378866
data-x="concept-document-policy-container">policy container</span> to a <span data-x="clone a
7887478867
policy container">clone</span> of <var>creator</var>'s <span
@@ -81087,11 +81080,6 @@ interface <dfn interface>BarProp</dfn> {
8108781080
<code>Document</code></span>.</p>
8108881081
</dd>
8108981082

81090-
<dt>The <span data-x="concept-settings-object-embedder-policy">embedder policy</span></dt>
81091-
<dd><p>Return <var>window</var>'s <span data-x="concept-document-window">associated
81092-
<code>Document</code></span>'s <span data-x="concept-document-embedder-policy">embedder
81093-
policy</span>.</p></dd>
81094-
8109581083
<dt>The <span data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin
8109681084
isolated capability</span></dt>
8109781085
<dd>
@@ -83649,19 +83637,16 @@ interface <dfn interface>BarProp</dfn> {
8364983637

8365083638
<p>To <dfn>check a navigation response's adherence to its embedder policy</dfn> given a <span
8365183639
data-x="concept-response">response</span> <var>response</var>, a <span>browsing context</span>
83652-
<var>target</var>, and an <span>environment</span> <var>environment</var>:</p>
83640+
<var>target</var>, and an <span>embedder policy</span> <var>responsePolicy</var>:</p>
8365383641

8365483642
<ol>
8365583643
<li><p>If <var>target</var> is not a <span>child browsing context</span>, then return
8365683644
true.</p></li>
8365783645

83658-
<li><p>Let <var>responsePolicy</var> be the result of <span data-x="obtain an embedder
83659-
policy">obtaining an embedder policy</span> from <var>response</var> and
83660-
<var>environment</var>.</p></li>
83661-
8366283646
<li><p>Let <var>parentPolicy</var> be <var>target</var>'s <span
8366383647
data-x="bc-container-document">container document</span>'s <span
83664-
data-x="concept-document-embedder-policy">embedder policy</span>.</p></li>
83648+
data-x="concept-document-policy-container">policy container</span>'s <span
83649+
data-x="policy-container-embedder-policy">embedder policy</span>.</p></li>
8366583650

8366683651
<li><p>If <var>parentPolicy</var>'s <span data-x="embedder-policy-report-only-value">report-only
8366783652
value</span> is "<code data-x="coep-require-corp">require-corp</code>" and
@@ -83700,7 +83685,8 @@ interface <dfn interface>BarProp</dfn> {
8370083685
data-x="concept-WorkerGlobalScope-embedder-policy">embedder policy</span>.
8370183686

8370283687
<li><p>Let <var>ownerPolicy</var> be <var>owner</var>'s <span
83703-
data-x="concept-settings-object-embedder-policy">embedder policy</span>.
83688+
data-x="concept-settings-object-policy-container">policy container</span>'s <span
83689+
data-x="policy-container-embedder-policy">embedder policy</span>.
8370483690

8370583691
<li><p>If <var>ownerPolicy</var>'s <span data-x="embedder-policy-report-only-value">report-only
8370683692
value</span> is "<code data-x="coep-require-corp">require-corp</code>" and <var>policy</var>'s
@@ -83777,6 +83763,10 @@ interface <dfn interface>BarProp</dfn> {
8377783763
<li><p>A <dfn export for="policy container" data-x="policy-container-csp-list">CSP list</dfn>,
8377883764
which is a <span data-x="concept-csp-list">CSP list</span>. It is initially empty.</p></li>
8377983765

83766+
<li><p>An <dfn export for="policy container" data-x="policy-container-embedder-policy">embedder
83767+
policy</dfn>, which is an <span>embedder policy</span>. It is initially a new <span>embedder
83768+
policy</span>.</p></li>
83769+
8378083770
<li><p>A <dfn export for="policy container" data-x="policy-container-referrer-policy">referrer
8378183771
policy</dfn>, which is a <span>referrer policy</span>. It is initially the <span>default referrer
8378283772
policy</span>.</p></li>
@@ -83795,6 +83785,10 @@ interface <dfn interface>BarProp</dfn> {
8379583785
data-x="list append">append</span> a copy of <var>policy</var> into <var>clone</var>'s <span
8379683786
data-x="policy-container-csp-list">CSP list</span>.</p></li>
8379783787

83788+
<li><p>Set <var>clone</var>'s <span data-x="policy-container-embedder-policy">embedder
83789+
policy</span> to a copy of <var>policyContainer</var>'s <span
83790+
data-x="policy-container-embedder-policy">embedder policy</span>.</p></li>
83791+
8379883792
<li><p>Set <var>clone</var>'s <span data-x="policy-container-referrer-policy">referrer
8379983793
policy</span> to <var>policyContainer</var>'s <span
8380083794
data-x="policy-container-referrer-policy">referrer policy</span>.</p></li>
@@ -83824,7 +83818,8 @@ interface <dfn interface>BarProp</dfn> {
8382483818

8382583819
<p>To <dfn export data-lt="creating a policy container from a fetch response" data-x="creating a
8382683820
policy container from a fetch response">create a policy container from a fetch response</dfn>
83827-
given a <span data-x="concept-response">response</span> <var>response</var>:</p>
83821+
given a <span data-x="concept-response">response</span> <var>response</var> and an
83822+
<span>environment</span>-or-null <var>environment</var>:</p>
8382883823

8382983824
<ol>
8383083825
<li><p>If <var>response</var>'s <span data-x="concept-response-url">URL</span>'s <span
@@ -83840,6 +83835,12 @@ interface <dfn interface>BarProp</dfn> {
8384083835
result of <span data-x="parse-response-csp">parsing a response's Content Security Policies</span>
8384183836
given <var>response</var>.</p></li>
8384283837

83838+
<li><p>If <var>environment</var> is non-null, then set <var>result</var>'s <span
83839+
data-x="policy-container-embedder-policy">embedder policy</span> to the result of <span
83840+
data-x="obtain an embedder policy">obtaining an embedder policy</span> given <var>response</var>
83841+
and <var>environment</var>. Otherwise, set it to "<code
83842+
data-x="coep-unsafe-none">unsafe-none</code>".</p></li>
83843+
8384383844
<li><p>Set <var>result</var>'s <span data-x="policy-container-referrer-policy">referrer
8384483845
policy</span> to the result of <span data-x="parse-referrer-policy-header">parsing the
8384583846
`<code>Referrer-Policy</code>` header</span> given <var>response</var>. <ref
@@ -83889,8 +83890,9 @@ interface <dfn interface>BarProp</dfn> {
8388983890
</ol>
8389083891

8389183892
<p>To <dfn data-x="initialize worker policy container">initialize a worker global scope's policy
83892-
container</dfn> given a <code>WorkerGlobalScope</code> <var>workerGlobalScope</var> and a <span
83893-
data-x="concept-response">response</span> <var>response</var>:</p>
83893+
container</dfn> given a <code>WorkerGlobalScope</code> <var>workerGlobalScope</var>, a <span
83894+
data-x="concept-response">response</span> <var>response</var>, and an <span>environment</span>
83895+
<var>environment</var>:</p>
8389483896

8389583897
<ol>
8389683898
<li>
@@ -83913,7 +83915,7 @@ interface <dfn interface>BarProp</dfn> {
8391383915
<li><p>Otherwise, set <var>workerGlobalScope</var>'s <span
8391483916
data-x="concept-WorkerGlobalScope-policy-container">policy container</span> to the result of
8391583917
<span>creating a policy container from a fetch response</span> given
83916-
<var>response</var>.</p></li>
83918+
<var>response</var> and <var>environment</var>.</p></li>
8391783919
</ol>
8391883920

8391983921
<h3 split-filename="history" id="history">Session history and navigation</h3>
@@ -86291,8 +86293,9 @@ interface <dfn interface>Location</dfn> { // but see also <a href="#the-location
8629186293
</ol>
8629286294
</li>
8629386295

86294-
<li><p>Let <var>responsePolicyContainer</var> to be the result of <span>creating a policy
86295-
container from a fetch response</span> <var>response</var>.</p></li>
86296+
<li><p>Let <var>responsePolicyContainer</var> be the result of <span>creating a policy container
86297+
from a fetch response</span> given <var>response</var> and <var>request</var>'s <span
86298+
data-x="concept-request-reserved-client">reserved client</span>.</p></li>
8629686299

8629786300
<li><p>Let <var>resultPolicyContainer</var> be the result of <span>determining navigation params
8629886301
policy container</span> given <var>response</var>'s <span
@@ -86351,7 +86354,8 @@ interface <dfn interface>Location</dfn> { // but see also <a href="#the-location
8635186354
the result of <span data-x="check a navigation response's adherence to its
8635286355
embedder policy">checking a navigation response's adherence to its embedder policy</span> given
8635386356
<var>response</var>, <var>browsingContext</var>, and <var>navigationParams</var>'s <span
86354-
data-x="navigation-params-reserved-environment">reserved environment</span> is false, then set
86357+
data-x="navigation-params-policy-container">policy container</span>'s <span
86358+
data-x="policy-container-embedder-policy">embedder policy</span> is false, then set
8635586359
<var>failure</var> to true.</p>
8635686360

8635786361
<p>Otherwise, if the result of <span data-x="check a navigation response's adherence to
@@ -86760,15 +86764,6 @@ interface <dfn interface>Location</dfn> { // but see also <a href="#the-location
8676086764
<li><p>Set <var>document</var>'s <span>current document readiness</span> to "<code
8676186765
data-x="">loading</code>".</p></li>
8676286766

86763-
<li><p>If <var>navigationParam</var>'s <span
86764-
data-x="navigation-params-reserved-environment">reserved environment</span> is non-null, then set
86765-
<var>document</var>'s <span data-x="concept-document-embedder-policy">embedder policy</span> to
86766-
the result of <span data-x="obtain an embedder policy">obtaining an embedder policy</span> given
86767-
<var>navigationParams</var>'s <span data-x="navigation-params-response">response</span> and
86768-
<var>navigationParam</var>'s <span data-x="navigation-params-reserved-environment">reserved
86769-
environment</span>. Otherwise, set it to "<code
86770-
data-x="coep-unsafe-none">unsafe-none</code>".</p></li>
86771-
8677286767
<li><p><span>Run CSP initialization for a <code data-x="">Document</code></span> given
8677386768
<var>document</var>. <ref spec="CSP"></p>
8677486769

@@ -88998,14 +88993,6 @@ interface <dfn interface>BeforeUnloadEvent</dfn> : <span>Event</span> {
8899888993
<p>A <span>policy container</span> containing policies used for security checks.</p>
8899988994
</dd>
8900088995

89001-
<dt>An <dfn data-x="concept-settings-object-embedder-policy" export
89002-
for="environment settings object">embedder policy</dfn></dt>
89003-
89004-
<dd><p>An <span>embedder policy</span> used by <span data-x="cross-origin resource policy
89005-
check">cross-origin resource policy checks</span> for <span data-x="concept-fetch">fetches</span>
89006-
performed using this <span>environment settings object</span> as a <span
89007-
data-x="concept-request-client">request client</span>.</p></dd>
89008-
8900988996
<dt>A <dfn data-x="concept-settings-object-cross-origin-isolated-capability" export
8901088997
for="environment settings object">cross-origin isolated capability</dfn></dt>
8901188998

@@ -100752,23 +100739,13 @@ interface <dfn interface>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope
100752100739
data-x="concept-response-url">url</span>.</p></li>
100753100740

100754100741
<li><p><span data-x="initialize worker policy container">Initialize worker global scope's
100755-
policy container</span> given <var>worker global scope</var>, and <var>response</var>.</p></li>
100742+
policy container</span> given <var>worker global scope</var>, <var>response</var>, and
100743+
<var>inside settings</var>.</p></li>
100756100744

100757100745
<li><p>If the <span>Run CSP initialization for a global object</span> algorithm returns "<code
100758100746
data-x="">Blocked</code>" when executed upon <var>worker global scope</var>, set
100759100747
<var>response</var> to a <span>network error</span>. <ref spec=CSP></p></li>
100760100748

100761-
<li><p>If <var>response</var>'s <span data-x="concept-response-url">url</span>'s <span
100762-
data-x="concept-url-scheme">scheme</span> is a <span>local scheme</span>, then set
100763-
<var>worker global scope</var>'s <span
100764-
data-x="concept-WorkerGlobalScope-embedder-policy">embedder policy</span> to <var>owner</var>'s
100765-
<span data-x="concept-settings-object-embedder-policy">embedder policy</span>.</p></li>
100766-
100767-
<li><p>Otherwise, set <var>worker global scope</var>'s <span
100768-
data-x="concept-WorkerGlobalScope-embedder-policy">embedder policy</span> to the result of
100769-
<span data-x="obtain an embedder policy">obtaining an embedder policy</span> from
100770-
<var>response</var> and <var>inside settings</var>.</p></li>
100771-
100772100749
<li>
100773100750
<p>If <var>worker global scope</var>'s <span
100774100751
data-x="concept-WorkerGlobalScope-embedder-policy">embedder policy</span> is "<code
@@ -101099,12 +101076,6 @@ interface <dfn interface>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope
101099101076
data-x="concept-WorkerGlobalScope-policy-container">policy container</span>.</p>
101100101077
</dd>
101101101078

101102-
<dt>The <span data-x="concept-settings-object-embedder-policy">embedder policy</span></dt>
101103-
<dd>
101104-
<p>Return <var>worker global scope</var>'s <span
101105-
data-x="concept-WorkerGlobalScope-embedder-policy">embedder policy</span>.</p>
101106-
</dd>
101107-
101108101079
<dt>The <span data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin
101109101080
isolated capability</span></dt>
101110101081
<dd><p>Return <var>worker global scope</var>'s <span
@@ -102225,9 +102196,6 @@ interface <dfn interface>WorkletGlobalScope</dfn> {};</code></pre>
102225102196
container">clone</span> of <var>outsideSettings</var>'s <span
102226102197
data-x="concept-settings-object-policy-container">policy container</span>.</p></li>
102227102198

102228-
<li><p>Let <var>inheritedEmbedderPolicy</var> be <var>outsideSettings</var>'s <span
102229-
data-x="concept-settings-object-embedder-policy">embedder policy</span>.</p></li>
102230-
102231102199
<li><p>Let <var>realm</var> be the value of <var>executionContext</var>'s Realm
102232102200
component.</p></li>
102233102201

@@ -102281,11 +102249,6 @@ interface <dfn interface>WorkletGlobalScope</dfn> {};</code></pre>
102281102249
<p>Return <var>inheritedPolicyContainer</var>.</p>
102282102250
</dd>
102283102251

102284-
<dt>The <span data-x="concept-settings-object-embedder-policy">embedder policy</span></dt>
102285-
<dd>
102286-
<p>Return <var>inheritedEmbedderPolicy</var>.</p>
102287-
</dd>
102288-
102289102252
<dt>The <span data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin
102290102253
isolated capability</span></dt>
102291102254
<dd><p>Return <span class="XXX">TODO</span>.</p></dd>

0 commit comments

Comments
 (0)