Feature policy
featurePolicy は Document インターフェイスの読み取り専用プロパティで、特定の文書に適用される権限ポリシーを見ることができる簡単な API を提供する FeaturePolicy インターフェイスを返します。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 74 | 79 | 69 | | 74 | | |
| DOM API | ||||||
FeaturePolicy 実験的 The FeaturePolicy interface represents the set of Permissions Policies applied to the current execution context. | 74 | 79 | 65 | | 74 | |
allowedFeatures 実験的 FeaturePolicy インターフェイスの allowedFeature() メソッドは、アクセス許可ポリシーで許可されているすべての機能のディレクティブ名のリストを返します。 これにより、実行されるアクセス許可ポリシーの個々のディレクティブのイントロスペクションが可能になります。 そのため、 allowedFeature() メソッドは、FeaturePolicy.features によって返されるディレクティブのサブセットを返します。 | 74 | 79 | 65 | | 74 | |
allowsFeature 実験的 FeaturePolicy インターフェイスの allowedFeature() メソッドを使用すると、実行されるアクセス許可ポリシーの個々のディレクティブのイントロスペクションが可能になります。 指定された機能が指定されたコンテキスト (コンテキストが指定されていない場合はデフォルトのコンテキスト) で許可される場合にのみ true となるブール値を返します。 | 74 | 79 | 65 | | 74 | |
features 実験的 FeaturePolicy インターフェイスの features() メソッドは、ユーザー エージェントによってサポートされているすべての機能の名前のリストを返します。 リストに名前が表示されている機能は、現在の実行コンテキストのアクセス許可ポリシーによって許可されていないか、ユーザーのアクセス許可が原因でアクセスできない可能性があります。 | 74 | 79 | 70 | | 74 | |
| FeaturePolicy インターフェイスの getAllowlistForFeature() メソッドを使用すると、現在のアクセス許可ポリシーの特定の機能の許可リストのクエリが可能になります。 | 74 | 79 | 65 | | 74 | |
featurePolicy 実験的 featurePolicy は HTMLIFrameElement インターフェイスの読み取り専用プロパティで、特定のフレームに適用される権限ポリシーをイントロスペクトするための単純な API を提供する FeaturePolicy インターフェイスを返します。 | 74 | 79 | 69 | | 74 | |
| その他 | ||||||
http.headers.Feature-Policy 非推奨 | 60 | 79 | | | 60 | |
| HTTP の Permissions-Policy ヘッダーにおける accelerometer ディレクティブは、現在の文書が Accelerometer インターフェイスを通じて端末の加速度に関する情報を収集することを許可するかどうかを制御します。 | 66 | 79 | | | 66 | |
| HTTP の Permissions-Policy ヘッダーにおける ambient-light-sensor ディレクティブは、現在の文書が AmbientLightSensor インターフェイスを通じて端末の周囲の環境における明るさの量に関する情報を収集することを許可するかどうかを制御します。 | 66 | 79 | | | 66 | |
| HTTP の Permissions-Policy ヘッダーにおける ambient-light-sensor ディレクティブは、現在の文書が帰属レポート API を使うことをインターフェイスを通じて端末の周囲の環境における明るさの量に関する情報を収集することを許可するかどうかを制御します。 | 117 | 117 | | | 117 | |
| HTTP の Permissions-Policy ヘッダーにおける autoplay ディレクティブは、現在の文書で HTMLMediaElement インターフェイスによってメディアの自動再生をリクエストすることを許可するかどうかを制御します。 | 64 | 79 | | | 64 | |
| HTTP の Permissions-Policy ヘッダーにおける bluetooth ディレクティブは、現在の文書で Web Bluetooth API の使用を許可するかどうかを制御します。 | 104 | 104 | | | 104 | |
| HTTP の Permissions-Policy ヘッダーの browsing-topics ディレクティブは、トピック API へのアクセスを制御します。 | 115 | 115 | | | 115 | |
| HTTP の Permissions-Policy ヘッダーにおける camera ディレクティブは、現在の文書が動画入力機器を使用することを許可するかどうかを制御します。 | 64 | 79 | | | 64 | |
| HTTP の Permissions-Policy ヘッダーの compute-pressure ディレクティブは、計算負荷 API へのアクセスを制御します。 | 125 | 125 | | | | |
| HTTP の Permissions-Policy ヘッダーの cross-origin-isolated ディレクティブは、現在の文書がWindow.crossOriginIsolatedを必要とする API を使用できるかどうかを制御します。 | 87 | 87 | | | 87 | |
| deferred-fetch は Permissions-Policy のディレクティブで、 fetchLater() API の一部です。 | 135 | 135 | | | 135 | |
| deferred-fetch-minimal は Permissions-Policy のディレクティブで、 fetchLater() API の一部です。 | 135 | 135 | | | 135 | |
| HTTP の Permissions-Policy ヘッダーにおける display-capture ディレクティブは、現在の文書が画面キャプチャ API、すなわち MediaDevices.getDisplayMedia を使用して画面の内容をキャプチャすることを許可するかどうかを制御します。 | 94 | 94 | | | 94 | |
| HTTP の Permissions-Policy response headerは、文書または文書内の iframe 要素で、ブラウザーの機能を使用することを許可または拒否する仕組みを提供します。 | 64 | 79 | | | | |
| HTTP の Permissions-Policy ヘッダーにおける encrypted-media ディレクティブは、現在の文書が Encrypted Media Extensions API (EME) を使用することを許可するかどうかを制御します。 | 64 | 79 | | | 64 | |
| HTTP の Permissions-Policy ヘッダーにおける fullscreen ディレクティブは、現在の文書が Element.requestFullScreen() を使用することを許可するかどうかを制御します。 | 62 | 79 | | | 62 | |
| HTTP の Permissions-Policy ヘッダーにおける geolocation ディレクティブは、現在の文書が Geolocation インターフェイスを使用することを許可するかどうかを制御します。 | 64 | 79 | | | 64 | |
| HTTP の Permissions-Policy ヘッダーにおける gyroscope ディレクティブは、現在の文書が Gyroscope インターフェイスを通じて端末の方向に関する情報を収集することを許可するかどうかをコントロールします。 | 66 | 79 | | | 66 | |
| HTTP の Permissions-Policy ヘッダーの hid ディレクティブは、現在の文書が WebHID API を使用して、代替キーボードやゲームパッドなどの一般的ではない、あるいは珍しいヒューマンインターフェイス機器に接続することを許可するかどうかをコントロールします。 | 89 | 89 | | | | |
| HTTP の Permissions-Policy ヘッダーにおける identity-credentials-get ディレクティブは、現在の文書が連合資格情報管理 API (FedCM)、より具体的には、 CredentialsContainer.get メソッドの使用を identity オプション付きで許可するかどうかを制御します。 | 110 | 110 | | | 110 | |
| HTTP の Permissions-Policy ヘッダーの idle-detection ディレクティブは、現在の文書がIdle Detection API を使用して、ユーザーが端末を操作しているかどうかを検出することを許可するかどうかを制御します。例えば、チャットアプリケーションで「利用可能」/「離席中」のステータスを報告する場合などです。 | 94 | 94 | | | 94 | |
| HTTP の Permissions-Policy ヘッダーにおける local-fonts ディレクティブは、現在の文書が Window.queryLocalFonts() メソッドを介してユーザーのローカルにインストールされているフォントに関するデータを収集することを許可するかどうかを制御します。 | 103 | 103 | | | | |
| HTTP の Permissions-Policy ヘッダーにおける magnetometer ディレクティブは、現在の文書が端末の方向についての情報を Magnetometer インターフェイスで収集することを許可するかどうかを制御します。 | 66 | 79 | | | 66 | |
| HTTP の Permissions-Policy ヘッダーにおける microphone ディレクティブは、現在の文書がオーディオ入力機器を使用することを許可するかどうかを制御します。 | 64 | 79 | | | 64 | |
| HTTP の Permissions-Policy ヘッダーにおける midi ディレクティブは、現在の文書が Web MIDI API を使用することを許可するかどうかを制御します。 | 64 | 79 | | | 64 | |
| HTTP の Permissions-Policy ヘッダーにおける otp-credentials ディレクティブは、現在の文書が WebOTP API を使用して、アプリのサーバーから送信された特別な形式の SMS メッセージからワンタイムパスワード (OTP) をリクエストすること、すなわち {{domxref("CredentialsContainer.get", "navigator.credentials.get({otp: ..., ...})")}} を許可するかどうかを制御します。 | 93 | 93 | | | 84 | |
| HTTP の Permissions-Policy ヘッダーフィールドにおける payment ディレクティブは、現在の文書が決済リクエスト API を使用することを許可するかどうかを制御します。 | 60 | 79 | | | 60 | |
| HTTP の Permissions-Policy ヘッダーにおける picture-in-picture ディレクティブは、現在の文書で動画をPicture-in-Picture APIモードで再生することを許可するかどうかを制御します。 | 69 | 79 | | | 105 | |
| HTTP の Permissions-Policy ヘッダーにおける publickey-credentials-create ディレクティブは、現在の文書がウェブ認証 API を使用して新しい WebAuthn 資格情報を作成すること、すなわち {{domxref("CredentialsContainer.create","navigator.credentials.create({publicKey})")}} を許可するかどうかを制御します。 | 84 | 84 | | | 84 | |
| HTTP の Permissions-Policy ヘッダーにおける publickey-credentials-get ディレクティブは、現在の文書がウェブ認証 API を使用して公開鍵を受け取ること、すなわち {{domxref("CredentialsContainer.get","navigator.credentials.get({publicKey})")}} を許可するかどうかを制御します。 | 84 | 84 | | | 84 | |
| HTTP の Permissions-Policy ヘッダーにおける screen-wake-lock ディレクティブは、現在の文書が画面起動ロック API を使用して、端末が画面を暗くしたりオフにしたりしないよう指示することを許可するかどうか制御します。 | 84 | 84 | | | 84 | |
| HTTP の Permissions-Policy ヘッダーにおける serial ディレクティブは、現在の文書が、シリアルポートに直接接続されたシリアル機器、またはシリアルポートをエミュレートする USB または Bluetooth 機器と通信するためにWeb Serial API を使用できるかどうかを制御します。 | 89 | 89 | | | 89 | |
| HTTP の Permissions-Policy ヘッダーの speaker-selection ディレクティブは、第三者のコンテキスト(iframe に埋め込まれたものなど)に読み込まれた文書が、Storage Access API を使用してパーティション化されていない Cookie へのアクセスを要求することを許可するかどうかを制御します。 | 113 | 113 | | | 113 | |
| HTTP の Permissions-Policy ヘッダーにおける usb ディレクティブは、現在の文書が WebUSB API を使用できるかどうかを制御します。 | 60 | 79 | | | 60 | |
| HTTP の Permissions-Policy ヘッダーにおける web-share ディレクティブは、現在の文書がウェブ共有 API の Navigator.share メソッドを使用して、テキスト、リンク、画像、その他のコンテンツをユーザーが選択した任意の宛先にシェアすることを許可するかどうかを制御します。 | 86 | 86 | | | 86 | |
http.headers.Feature-Policy.wildcards 非推奨 許可リスト起源のワイルドカード | 108 | 108 | | | 108 | |
| HTTP の Permissions-Policy ヘッダーにおける window-management ディレクティブは、現在の文書がウィンドウ管理 API を使用して複数のディスプレイ上のウィンドウを管理することを許可するかどうかを制御します。 | 100 | 100 | | | 100 | |
| HTTP の Permissions-Policy ヘッダーにおける xr-spatial-tracking ディレクティブは、現在の文書が WebXR 機器 API を使用することを許可するかどうかを制御します。 | 79 | 79 | | | 79 | |
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
基本構文
<!-- iframeでのFeature Policy -->
<iframe src="https://example.com"
allow="camera 'none'; microphone 'none'; geolocation 'self'">
</iframe> ライブデモ
Policy idea
Summarize the older feature policy model that limited powerful APIs in embedded content.
Permissions Policy successor
Explain that Feature Policy evolved into the newer Permissions Policy model.
Migration note
Prefer the current policy model when designing new embeds or security boundaries.
実務での使いどころ
-
Feature policy の活用
featurePolicy は Document インターフェイスの読み取り専用プロパティで、特定の文書に適用される権限ポリシーを見ることができる簡単な API を提供する FeaturePolicy インターフェイスを返します。
注意点
- 一部のブラウザでのみ対応。使用前にブラウザサポートを確認すること。
アクセシビリティ
- スクリーンリーダーでの読み上げを確認すること。