diff --git a/index.src.html b/index.src.html index 5bde612..49daf5f 100644 --- a/index.src.html +++ b/index.src.html @@ -219,11 +219,9 @@

Content Security Policy: Embedded Enforcement

element (|element|)'s <{iframe/csp}> content attribute if all of the following statements are true: - 1. |value| is not the empty string. + 1. |value| matches the serialized-policy ABNF grammar defined in [[!CSP]]. - 2. |value| matches the serialized-policy ABNF grammar defined in [[!CSP]]. - - 3. One of the following statements is true: + 2. One of the following statements is true: 1. |element|'s [=node document=]'s [=Document/browsing context=]'s [=browsing context/required CSP=] is `null`. @@ -232,7 +230,7 @@

Content Security Policy: Embedded Enforcement

[=policy/subsumed by=] |element|'s [=node document=]'s [=Document/browsing context=]'s [=browsing context/required CSP=]. - 4. The result of [=parse a serialized csp as disposition|parsing=] |value| as "`enforce`" has a + 3. The result of [=parse a serialized csp as disposition|parsing=] |value| as "`enforce`" has a [=policy/directive set=] that does not [=list/contain=] any of the following directives: * [=report-uri=] @@ -341,6 +339,9 @@

Content Security Policy: Embedded Enforcement

11. Set `browsingContext`'s required CSP. + 12. If `browsingContext`'s required CSP is `invalid`, cancel the + navigation. + ISSUE: Upstream this to WHATWG's HTML. ISSUE(w3c/html#584): W3C's HTML's navigation algorithm is wildly divergent from WHATWG's at @@ -382,14 +383,17 @@

Content Security Policy: Embedded Enforcement

1. If |context| is a nested browsing context: - 1. If |context|'s browsing context container has an <{iframe/csp}> content + 1. If |context|'s browsing context container has no <{iframe/csp}> content + attribute, or if it has an <{iframe/csp}> content attribute with an emtpy + value, set |context|'s required CSP to the value of + |context|'s + parent browsing context's required CSP and return. + + 2. If |context|'s browsing context container has an <{iframe/csp}> content attribute with a valid attribute value (|value|), set |context|'s required CSP to |value| and return. - 2. Set |context|'s required CSP to the value of |context|'s - parent browsing context's required CSP. - - 3. Return. + 3. Set |context|'s required CSP to `invalid` and return. 2. Set |context|'s required CSP to `null`.