blob: 4d5daaec1e91ebca87b021b2dc025274757e98a6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
---
title: 'Feature-Policy:geolocation'
slug: Web/HTTP/Headers/Feature-Policy/geolocation
tags:
- Geolocation
- HTTP
- HTTP レスポンスヘッダー
- ヘッダー
- 機能ポリシー
translation_of: Web/HTTP/Headers/Feature-Policy/geolocation
---
{{HTTPSidebar}} {{SeeCompatTable}}
<span class="seoSummary">HTTP の {{HTTPHeader("Feature-Policy")}} ヘッダーにおける `geolocation` ディレクティブは、現在の文書が {{domxref('Geolocation')}} インターフェイスを使用することを許可するかどうかを制御します。このポリシーが有効であれば、 {{domxref('Geolocation.getCurrentPosition','getCurrentPosition()')}} および {{domxref('Geolocation.watchPosition','watchPosition()')}} を呼び出すと、関数のコールバックが呼び出され、 {{domxref('PositionError')}} コードが `PERMISSION_DENIED` になります。</span>
既定では、 Geolocation API は最上位の文書およびその同じオリジンの子フレームの中で使用することができます。このディレクティブは別オリジンのフレームによる位置情報へのアクセスを許可したり拒否したりします。同じオリジンのフレームも含みます。
## 構文
<pre class="syntaxbox">Feature-Policy: geolocation <allowlist>;</pre>
- \<allowlist>
- : この機能を許可するオリジンのリストです。 [`Feature-Policy`](/ja/docs/Web/HTTP/Headers/Feature-Policy#syntax) を参照してください。
## 例
### 一般的な例
SecureCorp Inc. は、自分自身のオリジンおよびオリジンが `https://example.com` のものを除いてすべての Geolocation API を無効にしたがっているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。
<pre class="brush: bash">Feature-Policy: geolocation 'self' https://example.com</pre>
<h3 id="With_an_<iframe>_element" name="With_an_<iframe>_element"><iframe> 要素と</h3>
FastCorp Inc. は、特定の <iframe> を除いたすべての別オリジンの子フレームの `geolocation` を無効にしたがっているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。
<pre class="brush: bash">Feature-Policy: geolocation 'self'</pre>
それから `<iframe>` 要素に {{HTMLElement('iframe','allow','#Attributes')}} 属性を含めます。
<pre class="brush: html"><iframe src="https://other.com/map" allow="geolocation"></iframe></pre>
iframe の属性は、選択的に特定のフレームの機能を有効にし、その他はたとえそれらのフレームが同じオリジンからきた文書を含んでいても無効にします。
## 仕様書
<table class="standard-table">
<thead>
<tr>
<th scope="col">仕様書</th>
<th scope="col">状態</th>
<th scope="col">備考</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('Feature Policy')}}</td>
<td>{{Spec2('Feature Policy')}}</td>
<td>初回定義</td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2>
{{Compat("http.headers.Feature-Policy.geolocation")}}
## 関連情報
- {{HTTPHeader("Feature-Policy")}} ヘッダー
- [機能ポリシー](/ja/docs/Web/HTTP/Feature_Policy)
- [機能ポリシーの使用](/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy)
|