Feature-Policy

これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

HTTP の Feature-Policy ヘッダーは、自身のフレームまたはその中の iframe で、ブラウザーの機能を使用することを許可または拒否する仕組みを提供します。

詳しくは、機能ポリシーの記事を参照してください。

ヘッダー種別 レスポンスヘッダー
禁止ヘッダー名 はい

構文

Feature-Policy: <directive> <allowlist>
<allowlist>

許可リストは、以下の値のうち一つを取るオリジンのリストです。

  • *: この機能は既定で、最上位の閲覧コンテキストと、含まれるすべての閲覧コンテキスト (iframe) で許可されます。
  • 'self': (既定値) この機能は既定で、最上位の閲覧コンテキストと、含まれる同じオリジンの閲覧コンテキスト (iframe) で許可されます。この機能は、含まれる閲覧コンテキストにある別なオリジンの文書では許可されません。
  • 'none': この機能は最上位および含まれる閲覧コンテキストで無効になります。
  • <origin(s)>: この機能は特定のオリジン (例えば、 https://example.com) で許可されます。オリジンは空白で区切ってください。

* の値 (すべてのオリジンで有効) または 'none' (すべてのオリジンで無効) は単独でのみ使用できますが、 'self' は一つ以上のオリジンと一緒に使用することができます。

ディレクティブ

autoplay
現在の文書で HTMLMediaElement インターフェイスによってメディアの自動再生をリクエストすることを許可するかどうかを制御します。このポリシーが有効であれば、 HTMLMediaElement.play() から返却された PromiseDOMException で拒否されます。 <audio> および <video> 要素の autoplay 属性は無視されます。
camera
現在の文書が動画入力機器を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 MediaDevices.getUserMedia() から返却された PromiseNotAllowedError で拒否されます。
encrypted-media
現在の文書が Encrypted Media Extensions API (EME) を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 Navigator.requestMediaKeySystemAccess() から返却された PromiseDOMException で拒否されます。
fullscreen
現在の文書が Element.requestFullScreen() を使用することを許可するかどうかを制御します。このポリシーが有効であれば、返却された PromiseTypeError で拒否されます。
geolocation
現在の文書が Geolocation インターフェイスを使用することを許可するかどうかを制御します。このポリシーが有効であれば、 getCurrentPosition() および watchPosition() を呼び出すと、関数のコールバックが呼び出され、 PositionError コードが PERMISSION_DENIED になります。
microphone
現在の文書がオーディオ入力端末を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 MediaDevices.getUserMedia() で返却された PromiseNotAllowedError で拒否されます。
midi
現在の文書が Web MIDI API を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 Navigator.requestMIDIAccess() から返却された PromiseDOMException で拒否されます。
payment
現在の文書が Payment Request API を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 PaymentRequest() コンストラクターが SecurityError 例外を投げます。
vr
現在の文書が WebVR API を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 Navigator.getVRDisplays() から返却された PromiseDOMException で拒否されます。

SecureCorp Inc. が、アプリケーションでバイブレーションと Geolocation API を無効にしたがっているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。

Feature-Policy: vibrate 'none'; geolocation 'none'

オリジンのリストに 'none' キーワードを指定すると、指定された機能がオリジンに関係なく、すべての閲覧コンテキストで無効になります。

仕様書

仕様書 状態 備考
Feature Policy
Feature-Policy の定義
ドラフト 初回定義

ブラウザーの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung Internet
基本対応
実験的
Chrome 完全対応 60Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 47Safari 未対応 なしWebView Android 完全対応 60Chrome Android 完全対応 60Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 47Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
accelerometer
実験的
Chrome 完全対応 69
無効
完全対応 69
無効
無効 From version 69: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 56
無効
完全対応 56
無効
無効 From version 56: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari 未対応 なしWebView Android 完全対応 69
無効
完全対応 69
無効
無効 From version 69: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Chrome Android 完全対応 69
無効
完全対応 69
無効
無効 From version 69: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 56
無効
完全対応 56
無効
無効 From version 56: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
ambient-light-sensor
実験的
Chrome 完全対応 69
無効
完全対応 69
無効
無効 From version 69: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 56
無効
完全対応 56
無効
無効 From version 56: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari 未対応 なしWebView Android 完全対応 69
無効
完全対応 69
無効
無効 From version 69: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Chrome Android 完全対応 69
無効
完全対応 69
無効
無効 From version 69: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 56
無効
完全対応 56
無効
無効 From version 56: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
autoplay
実験的
Chrome 完全対応 64Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 51Safari 未対応 なしWebView Android 完全対応 64Chrome Android 完全対応 64Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 51Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
camera
実験的
Chrome 完全対応 59Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 48Safari 未対応 なしWebView Android 完全対応 59Chrome Android 完全対応 59Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 48Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
encrypted-media
実験的
Chrome 完全対応 59Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 48Safari 未対応 なしWebView Android 完全対応 59Chrome Android 完全対応 59Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 48Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
fullscreen
実験的
Chrome 完全対応 57Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 46Safari 未対応 なしWebView Android 完全対応 57Chrome Android 完全対応 57Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 46Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
geolocation
実験的
Chrome 完全対応 56Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 45Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 45Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
gyroscope
実験的
Chrome 完全対応 69
無効
完全対応 69
無効
無効 From version 69: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 56
無効
完全対応 56
無効
無効 From version 56: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari 未対応 なしWebView Android 完全対応 69
無効
完全対応 69
無効
無効 From version 69: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Chrome Android 完全対応 69
無効
完全対応 69
無効
無効 From version 69: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 56
無効
完全対応 56
無効
無効 From version 56: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
layout-animations
実験的
Chrome 未対応 なしEdge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 未対応 なしChrome Android 未対応 なしEdge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 未対応 なし
legacy-image-formats
実験的
Chrome 完全対応 68
無効
完全対応 68
無効
無効 From version 68: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 55
無効
完全対応 55
無効
無効 From version 55: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari 未対応 なしWebView Android 完全対応 68
無効
完全対応 68
無効
無効 From version 68: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Chrome Android 完全対応 68
無効
完全対応 68
無効
無効 From version 68: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 55
無効
完全対応 55
無効
無効 From version 55: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
magnetometer
実験的
Chrome 完全対応 69
無効
完全対応 69
無効
無効 From version 69: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 56
無効
完全対応 56
無効
無効 From version 56: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari 未対応 なしWebView Android 完全対応 69
無効
完全対応 69
無効
無効 From version 69: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Chrome Android 完全対応 69
無効
完全対応 69
無効
無効 From version 69: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 56
無効
完全対応 56
無効
無効 From version 56: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
maximum-downscaling-image
実験的
Chrome 完全対応 68
無効
完全対応 68
無効
無効 From version 68: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 55
無効
完全対応 55
無効
無効 From version 55: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari 未対応 なしWebView Android 完全対応 68
無効
完全対応 68
無効
無効 From version 68: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Chrome Android 完全対応 68
無効
完全対応 68
無効
無効 From version 68: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 55
無効
完全対応 55
無効
無効 From version 55: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
microphone
実験的
Chrome 完全対応 59Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 48Safari 未対応 なしWebView Android 完全対応 59Chrome Android 完全対応 59Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 48Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
midi
実験的
Chrome 完全対応 56Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 45Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 45Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
payment
実験的
Chrome 完全対応 56Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 45Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 45Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
picture-in-picture
実験的
Chrome 未対応 なしEdge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 未対応 なしChrome Android 未対応 なしEdge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 未対応 なし
speaker
実験的
Chrome 完全対応 59Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 48Safari 未対応 なしWebView Android 完全対応 59Chrome Android 完全対応 59Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 48Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
sync-xhr
実験的
Chrome 完全対応 65
無効
完全対応 65
無効
無効 From version 65: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 52
無効
完全対応 52
無効
無効 From version 52: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari 未対応 なしWebView Android 完全対応 65
無効
完全対応 65
無効
無効 From version 65: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Chrome Android 完全対応 65
無効
完全対応 65
無効
無効 From version 65: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 52
無効
完全対応 52
無効
無効 From version 52: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
unsized-media
実験的
Chrome 完全対応 66
無効
完全対応 66
無効
無効 From version 66: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 53
無効
完全対応 53
無効
無効 From version 53: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari 未対応 なしWebView Android 完全対応 66
無効
完全対応 66
無効
無効 From version 66: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Chrome Android 完全対応 66
無効
完全対応 66
無効
無効 From version 66: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 53
無効
完全対応 53
無効
無効 From version 53: this feature is behind the #enable-experimental-productivity-features preference (needs to be set to Enabled).
Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
usb
実験的
Chrome 完全対応 60Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 47Safari 未対応 なしWebView Android 完全対応 60Chrome Android 完全対応 60Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 47Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
vibrate
実験的
Chrome 完全対応 56Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 43Safari iOS 未対応 なしSamsung Internet Android 未対応 なし
vr
実験的
Chrome 完全対応 62Edge 未対応 なしFirefox 未対応 なしIE 未対応 なしOpera 完全対応 49Safari 未対応 なしWebView Android 完全対応 62Chrome Android 完全対応 62Edge Mobile 未対応 なしFirefox Android 未対応 なしOpera Android 完全対応 49Safari iOS 未対応 なしSamsung Internet Android 未対応 なし

凡例

完全対応  
完全対応
未対応  
未対応
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。

関連情報

ドキュメントのタグと貢献者

このページの貢献者: mfuji09, jpmedley
最終更新者: mfuji09,