Skip to content

Commit

Permalink
Add embedder policy to the policy container
Browse files Browse the repository at this point in the history
Part of whatwg#4926. Closes whatwg#4916.
  • Loading branch information
antosart authored and mfreed7 committed Jun 3, 2022
1 parent abe5aa8 commit bf31509
Showing 1 changed file with 32 additions and 69 deletions.
101 changes: 32 additions & 69 deletions source
Original file line number Diff line number Diff line change
Expand Up @@ -9206,9 +9206,6 @@ partial interface <dfn id="document" data-lt="">Document</dfn> {
for="Document">policy container</dfn> (a <span>policy container</span>), initially a new policy
container, which contains policies which apply to the <code>Document</code>.</p>

<p>The <code>Document</code> has an <dfn data-x="concept-document-embedder-policy">embedder
policy</dfn> (an <span>embedder policy</span>).</p>

<p id="concept-document-feature-policy">The <code>Document</code> has a <dfn
data-x="concept-document-permissions-policy" export for="Document">permissions policy</dfn>, which
is a <span data-x="concept-permissions-policy">permissions policy</span>, which is initially
Expand Down Expand Up @@ -78868,10 +78865,6 @@ popup4.close();</code></pre></div>
<var>document</var>'s <span data-x="the document's referrer">referrer</span> to the <span
data-x="concept-url-serializer">serialization</span> of it.</p></li>

<li><p>If <var>creator</var> is non-null, then set <var>document</var>'s
<span data-x="concept-document-embedder-policy">embedder policy</span> to <var>creator</var>'s
<span data-x="concept-document-embedder-policy">embedder policy</span>.</p></li>

<li><p>If <var>creator</var> is non-null, then set <var>document</var>'s <span
data-x="concept-document-policy-container">policy container</span> to a <span data-x="clone a
policy container">clone</span> of <var>creator</var>'s <span
Expand Down Expand Up @@ -81090,11 +81083,6 @@ interface <dfn interface>BarProp</dfn> {
<code>Document</code></span>.</p>
</dd>

<dt>The <span data-x="concept-settings-object-embedder-policy">embedder policy</span></dt>
<dd><p>Return <var>window</var>'s <span data-x="concept-document-window">associated
<code>Document</code></span>'s <span data-x="concept-document-embedder-policy">embedder
policy</span>.</p></dd>

<dt>The <span data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin
isolated capability</span></dt>
<dd>
Expand Down Expand Up @@ -83652,19 +83640,16 @@ interface <dfn interface>BarProp</dfn> {

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

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

<li><p>Let <var>responsePolicy</var> be the result of <span data-x="obtain an embedder
policy">obtaining an embedder policy</span> from <var>response</var> and
<var>environment</var>.</p></li>

<li><p>Let <var>parentPolicy</var> be <var>target</var>'s <span
data-x="bc-container-document">container document</span>'s <span
data-x="concept-document-embedder-policy">embedder policy</span>.</p></li>
data-x="concept-document-policy-container">policy container</span>'s <span
data-x="policy-container-embedder-policy">embedder policy</span>.</p></li>

<li><p>If <var>parentPolicy</var>'s <span data-x="embedder-policy-report-only-value">report-only
value</span> is "<code data-x="coep-require-corp">require-corp</code>" and
Expand Down Expand Up @@ -83703,7 +83688,8 @@ interface <dfn interface>BarProp</dfn> {
data-x="concept-WorkerGlobalScope-embedder-policy">embedder policy</span>.

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

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

<li><p>An <dfn export for="policy container" data-x="policy-container-embedder-policy">embedder
policy</dfn>, which is an <span>embedder policy</span>. It is initially a new <span>embedder
policy</span>.</p></li>

<li><p>A <dfn export for="policy container" data-x="policy-container-referrer-policy">referrer
policy</dfn>, which is a <span>referrer policy</span>. It is initially the <span>default referrer
policy</span>.</p></li>
Expand All @@ -83798,6 +83788,10 @@ interface <dfn interface>BarProp</dfn> {
data-x="list append">append</span> a copy of <var>policy</var> into <var>clone</var>'s <span
data-x="policy-container-csp-list">CSP list</span>.</p></li>

<li><p>Set <var>clone</var>'s <span data-x="policy-container-embedder-policy">embedder
policy</span> to a copy of <var>policyContainer</var>'s <span
data-x="policy-container-embedder-policy">embedder policy</span>.</p></li>

<li><p>Set <var>clone</var>'s <span data-x="policy-container-referrer-policy">referrer
policy</span> to <var>policyContainer</var>'s <span
data-x="policy-container-referrer-policy">referrer policy</span>.</p></li>
Expand Down Expand Up @@ -83827,7 +83821,8 @@ interface <dfn interface>BarProp</dfn> {

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

<ol>
<li><p>If <var>response</var>'s <span data-x="concept-response-url">URL</span>'s <span
Expand All @@ -83843,6 +83838,12 @@ interface <dfn interface>BarProp</dfn> {
result of <span data-x="parse-response-csp">parsing a response's Content Security Policies</span>
given <var>response</var>.</p></li>

<li><p>If <var>environment</var> is non-null, then set <var>result</var>'s <span
data-x="policy-container-embedder-policy">embedder policy</span> to the result of <span
data-x="obtain an embedder policy">obtaining an embedder policy</span> given <var>response</var>
and <var>environment</var>. Otherwise, set it to "<code
data-x="coep-unsafe-none">unsafe-none</code>".</p></li>

<li><p>Set <var>result</var>'s <span data-x="policy-container-referrer-policy">referrer
policy</span> to the result of <span data-x="parse-referrer-policy-header">parsing the
`<code>Referrer-Policy</code>` header</span> given <var>response</var>. <ref
Expand Down Expand Up @@ -83892,8 +83893,9 @@ interface <dfn interface>BarProp</dfn> {
</ol>

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

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

<h3 split-filename="history" id="history">Session history and navigation</h3>
Expand Down Expand Up @@ -86294,8 +86296,9 @@ interface <dfn interface>Location</dfn> { // but see also <a href="#the-location
</ol>
</li>

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

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

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

<li><p>If <var>navigationParam</var>'s <span
data-x="navigation-params-reserved-environment">reserved environment</span> is non-null, then set
<var>document</var>'s <span data-x="concept-document-embedder-policy">embedder policy</span> to
the result of <span data-x="obtain an embedder policy">obtaining an embedder policy</span> given
<var>navigationParams</var>'s <span data-x="navigation-params-response">response</span> and
<var>navigationParam</var>'s <span data-x="navigation-params-reserved-environment">reserved
environment</span>. Otherwise, set it to "<code
data-x="coep-unsafe-none">unsafe-none</code>".</p></li>

<li><p><span>Run CSP initialization for a <code data-x="">Document</code></span> given
<var>document</var>. <ref spec="CSP"></p>

Expand Down Expand Up @@ -89001,14 +88996,6 @@ interface <dfn interface>BeforeUnloadEvent</dfn> : <span>Event</span> {
<p>A <span>policy container</span> containing policies used for security checks.</p>
</dd>

<dt>An <dfn data-x="concept-settings-object-embedder-policy" export
for="environment settings object">embedder policy</dfn></dt>

<dd><p>An <span>embedder policy</span> used by <span data-x="cross-origin resource policy
check">cross-origin resource policy checks</span> for <span data-x="concept-fetch">fetches</span>
performed using this <span>environment settings object</span> as a <span
data-x="concept-request-client">request client</span>.</p></dd>

<dt>A <dfn data-x="concept-settings-object-cross-origin-isolated-capability" export
for="environment settings object">cross-origin isolated capability</dfn></dt>

Expand Down Expand Up @@ -100757,23 +100744,13 @@ interface <dfn interface>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope
data-x="concept-response-url">url</span>.</p></li>

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

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

<li><p>If <var>response</var>'s <span data-x="concept-response-url">url</span>'s <span
data-x="concept-url-scheme">scheme</span> is a <span>local scheme</span>, then set
<var>worker global scope</var>'s <span
data-x="concept-WorkerGlobalScope-embedder-policy">embedder policy</span> to <var>owner</var>'s
<span data-x="concept-settings-object-embedder-policy">embedder policy</span>.</p></li>

<li><p>Otherwise, set <var>worker global scope</var>'s <span
data-x="concept-WorkerGlobalScope-embedder-policy">embedder policy</span> to the result of
<span data-x="obtain an embedder policy">obtaining an embedder policy</span> from
<var>response</var> and <var>inside settings</var>.</p></li>

<li>
<p>If <var>worker global scope</var>'s <span
data-x="concept-WorkerGlobalScope-embedder-policy">embedder policy</span> is "<code
Expand Down Expand Up @@ -101104,12 +101081,6 @@ interface <dfn interface>SharedWorkerGlobalScope</dfn> : <span>WorkerGlobalScope
data-x="concept-WorkerGlobalScope-policy-container">policy container</span>.</p>
</dd>

<dt>The <span data-x="concept-settings-object-embedder-policy">embedder policy</span></dt>
<dd>
<p>Return <var>worker global scope</var>'s <span
data-x="concept-WorkerGlobalScope-embedder-policy">embedder policy</span>.</p>
</dd>

<dt>The <span data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin
isolated capability</span></dt>
<dd><p>Return <var>worker global scope</var>'s <span
Expand Down Expand Up @@ -102230,9 +102201,6 @@ interface <dfn interface>WorkletGlobalScope</dfn> {};</code></pre>
container">clone</span> of <var>outsideSettings</var>'s <span
data-x="concept-settings-object-policy-container">policy container</span>.</p></li>

<li><p>Let <var>inheritedEmbedderPolicy</var> be <var>outsideSettings</var>'s <span
data-x="concept-settings-object-embedder-policy">embedder policy</span>.</p></li>

<li><p>Let <var>realm</var> be the value of <var>executionContext</var>'s Realm
component.</p></li>

Expand Down Expand Up @@ -102286,11 +102254,6 @@ interface <dfn interface>WorkletGlobalScope</dfn> {};</code></pre>
<p>Return <var>inheritedPolicyContainer</var>.</p>
</dd>

<dt>The <span data-x="concept-settings-object-embedder-policy">embedder policy</span></dt>
<dd>
<p>Return <var>inheritedEmbedderPolicy</var>.</p>
</dd>

<dt>The <span data-x="concept-settings-object-cross-origin-isolated-capability">cross-origin
isolated capability</span></dt>
<dd><p>Return <span class="XXX">TODO</span>.</p></dd>
Expand Down

0 comments on commit bf31509

Please sign in to comment.