Experimental
これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
HTTP の Feature-Policy
ヘッダーにおける fullscreen
ディレクティブは、現在の文書が Element.requestFullScreen()
を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 返却された Promise
が TypeError
で拒否されます。
既定では、最上位の文書およびその同じオリジンの子フレームが全画面モードを要求し、入ることができます。このディレクティブは別オリジンのフレームが全画面モードを使用することを許可したり拒否したりします。同じオリジンのフレームも含みます。
このディレクティブと allowfullscreen
が同じ <iframe>
要素に指定されていた場合、このディレクティブが優先します。
構文
Feature-Policy: fullscreen <allowlist>;
- <allowlist>
許可リストは、以下のうち一つ以上を取るオリジンの空白区切りのリストです。
*
: この機能はこの文書と、含まれるすべての閲覧コンテキスト (iframe) でオリジンに関係なく許可されます。'self'
: この機能はこの文書と、含まれるすべての閲覧コンテキスト (iframe) のうち、同じオリジンのものに許可されます。'src'
: (iframe の allow 属性のみ) この iframe に読み込まれた文書が iframe の src 属性の URL と同じオリジンから来ている限り、この機能はこの iframe で許可されます。'none'
: この機能は最上位および含まれる閲覧コンテキストで無効になります。- <origin(s)>: この機能は特定のオリジン (例えば、 https://example.com) で許可されます。オリジンは空白で区切ってください。
*
の値 (すべてのオリジンで有効) または'none'
(すべてのオリジンで無効) は単独でのみ使用できますが、'self'
と'src'
は一つ以上のオリジンと一緒に使用することができます。機能はそれぞれ、既定の許可リストを持つよう定義されています。
*
: この機能は既定で、最上位の閲覧コンテキストとそれに含まれるすべての閲覧コンテキスト (iframe) で許可されます。'self'
: この機能は既定で、最上位の閲覧コンテキストとそれに含まれるすべての閲覧コンテキスト (iframe) のうち、同じオリジンにあるもので許可されます。この機能は、含まれる閲覧コンテキストにある別なオリジンの文書では許可されません。'none'
: この機能は最上位および含まれる閲覧コンテキストで無効になります。
'self'
です。
例
一般的な例
SecureCorp Inc. は、自分自身のオリジンおよびオリジンが https://example.com
のものを除いてすべての Fullscreen API を無効にしたがっているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。
Feature-Policy: fullscreen 'self' https://example.com
<iframe> 要素と
FastCorp Inc. は、特定の <iframe> を除いたすべての別オリジンの子フレームの fullscreen
を無効にしたがっているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。
Feature-Policy: fullscreen 'self'
それから <iframe>
要素に allow 属性を含めます。
<iframe src="https://other.com/videoplayer" allow="fullscreen"></iframe>
iframe の属性は、選択的に特定のフレームの機能を有効にし、その他はたとえそれらのフレームが同じオリジンからきた文書を含んでいても無効にします。
仕様書
仕様書 | 状態 | 備考 |
---|---|---|
Permissions Policy | 編集者草案 | 初回定義 |
Fullscreen API Fullscreen の定義 |
編集者草案 | fullscreen ポリシーを定義 |
ブラウザーの対応
BCD tables only load in the browser
このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。