Feature-Policy:geolocation

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

HTTP の Feature-Policy ヘッダーにおける geolocation ディレクティブは、現在の文書が Geolocation インターフェイスを使用することを許可するかどうかを制御します。このポリシーが有効であれば、 getCurrentPosition() および watchPosition() を呼び出すと、関数のコールバックが呼び出され、 PositionError コードが PERMISSION_DENIED になります。

既定では、 Geolocation API は最上位の文書およびその同じオリジンの子フレームの中で使用することができます。このディレクティブは別オリジンのフレームによる位置情報へのアクセスを許可したり拒否したりします。同じオリジンのフレームも含みます。

構文

Feature-Policy: geolocation <allowlist>;
<allowlist>

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

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

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

既定値は 'self' です。

一般的な例

SecureCorp Inc. は、自分自身のオリジンおよびオリジンが https://example.com のものを除いてすべての Geolocation API を無効にしたがっているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。

Feature-Policy: geolocation 'self' https://example.com

<iframe> 要素と

FastCorp Inc. は、特定の <iframe> を除いたすべての別オリジンの子フレームの geolocation を無効にしたがっているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。

Feature-Policy: geolocation 'self'

それから <iframe> 要素に allow 属性を含めます。

<iframe src="https://other.com/map" allow="geolocation"></iframe>

iframe の属性は、選択的に特定のフレームの機能を有効にし、その他はたとえそれらのフレームが同じオリジンからきた文書を含んでいても無効にします。

仕様書

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

ブラウザーの対応

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応56 なし なし なし45 なし
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応5656 なし なし45 なし なし

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

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