Permissions-Policy: geolocation 指令
HTTP Permissions-Policy 头部的 geolocation 指令控制当前文档是否允许使用 Geolocation 接口。
具体来说,如果定义的策略阻止了此功能的使用,则对 getCurrentPosition() 和 watchPosition() 的调用将导致这些函数的 callback 以 PERMISSION_DENIED 的 GeolocationPositionError 代码被调用。
默认情况下,Geolocation API 可以在顶级文档及其同源子框架中使用。此指令允许或阻止跨源框架访问地理定位。这包括同源框架。
语法
http
Permissions-Policy: geolocation=<allowlist>;
<allowlist>-
被授予使用此功能权限的源列表。有关更多详细信息,请参阅
Permissions-Policy> 语法。
默认策略
geolocation 的默认允许列表是 self。
示例
一般示例
SecureCorp Inc. 希望禁用所有浏览上下文中的 Geolocation API,除了它自己的源和源为 https://example.com 的那些。它可以通过发送以下 HTTP 响应头来定义 Permissions Policy:
http
Permissions-Policy: geolocation=(self "https://example.com")
使用 <iframe> 元素
FastCorp Inc. 希望禁用所有跨源子框架的 geolocation,除了特定的 <iframe>。它可以通过发送以下 HTTP 响应头来定义 Permissions Policy:
http
Permissions-Policy: geolocation=(self)
然后在 <iframe> 元素上包含一个 allow 属性
html
<iframe src="https://other.com/map" allow="geolocation"></iframe>
有趣的是,即使这些框架包含来自同一来源的文档,allow 属性也可以选择性地在某些框架中启用功能,而在其他框架中不启用。
规范
| 规范 |
|---|
| Geolocation # permissions-policy |
浏览器兼容性
加载中…