Limited support 一部のブラウザのみ対応。使用時はサポート状況を確認すること。

対応ブラウザ

機能 デスクトップ モバイル
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

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
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります
注釈 1件
実験的機能
  • ブラウザの実験的フラグを有効にする必要があります

基本構文

HTML
<!-- 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 インターフェイスを返します。

注意点

  • 一部のブラウザでのみ対応。使用前にブラウザサポートを確認すること。

アクセシビリティ

  • スクリーンリーダーでの読み上げを確認すること。