* 仕様書

[REFS[
- [7] [CITE@en[Mixed Content]], [TIME[2020-04-28 21:05:56 +09:00]] <https://w3c.github.io/webappsec-mixed-content/#strict-checking>
]REFS]

* 指令

[15] [[CSP]]
の[[指令][CSP指令]]
[DFN[[CODE[block-all-mixed-content]]]]
は、
値が[[空文字列]]です。
[SRC[>>7]]

[16] 
[CODE[block-all-mixed-content]]
は[[混合内容][Mixed Content]]制約の[[厳密モード]]の適用を指示するものです。

[8] 
[[文書]]は[[混合内容][Mixed Content]]制約に関する[DFN[[F[[RUBYB[[[厳密モード]]][strict mode]]]]]]か否かとなります。
[SRC[>>7]]

[9] 
[[文書]]と[[閲覧文脈]]は、
[DFN[[F[[RUBYB[[[厳密混合内容検査フラグ]]][strict mixed content checking flag]]]]]]
を持ちます。
既定値は[[偽]]です。
[SRC[>>7]]

[10] [F[厳密混合内容検査フラグ]]は、次のような効果を持ちます。
[SRC[>>7]]

- [11] [[任意選択的ブロック可能]]な[[混合内容]]は、[[ブロック可能]]な[[混合内容]]同様に扱われます。
- [12] [[利用者の指示][Webブラウザー利用者の設定]]により[[ブロック可能]]な[[混合内容]]を読み込む手段が提供されなくなります。
- [13] [[混合内容]]が含まれることの[[利用者]]への提示がなくなります。
[SEE[ [[アドレスバー]] ]]
- [14] [[入れ子閲覧文脈]]にも同じ効果が継承されます。

* 処理

[17] 
[CODE[block-all-mixed-content]]
[[指令][CSP指令]]の[[初期化][指令初期化]]は、
[[文書]]または[[大域オブジェクト]][VAR[文脈]]、
[VAR[[[応答]]]]、
[VAR[方針]]を、
次のようにします。
[SRC[>>7]]

[FIG(steps)[
= [18] [VAR[方針]]の[F[配置]]が [CODE[enforce]] で''ない''場合、
== [19] ここで停止します。
= [20] [VAR[文脈]]の[F[厳密混合内容検査フラグ]]を、
[[真]]に設定します。
]FIG]

[21] [[新しい閲覧文脈の作成]]と [[navigate]] でこのフラグもコピーされます。

[22] このフラグは
[[Should fetching [VAR[request]] be blocked as mixed content?]]
で参照されます。

[24] 
[[HSTS]] によりこのフラグを設定することも認められています。
[SEE{ [[Mixed Content]] ]]


[23] この[[指令]]が [[CSPリスト]]に存在するかは
[[Should fetching [VAR[request]] be blocked as mixed content?]]
で参照されます。

* 歴史

[1] [CITE@en[block-all-mixed-content directive on an HTTP page]]
([[Tanvi Vyas]] 著, [TIME[2016-03-22 08:35:22 +09:00]] 版)
<https://lists.w3.org/Archives/Public/public-webappsec/2016Mar/0064.html>

[2] [CITE@en[Add reporting to 'block-all-mixed-content'.]]
( ([[mikewest]]著, [TIME[2016-05-23 16:54:58 +09:00]]))
<https://github.com/w3c/webappsec-mixed-content/commit/e9c559c6672e3219a0c1f6f4f7c5c187f3d51377>

[3] [CITE@en[IANA.]]
( ([[mikewest]]著, [TIME[2016-05-23 16:57:05 +09:00]]))
<https://github.com/w3c/webappsec-mixed-content/commit/419ffcb005338f324f4f44d6b5c2db38d70f03e0>

[4] [CITE@en[1122236 – Implement block-all-mixed-content CSP directive]]
([TIME[2016-07-05 10:47:55 +09:00]])
<https://bugzilla.mozilla.org/show_bug.cgi?id=1122236>

[5] [CITE@en[Removing hard-coded links.]]
([[mikewest]]著, [TIME[2017-10-23 17:18:00 +09:00]])
<https://github.com/w3c/webappsec-mixed-content/commit/79c62b3a051019ce00bf98690ece0baf69c00210>

[6] [CITE@en[Add MIX level 2 skeleton by estark37 · Pull Request #21 · w3c/webappsec-mixed-content]]
([TIME[2020-01-12 16:30:29 +09:00]])
<https://github.com/w3c/webappsec-mixed-content/pull/21>