Headers: Permissions-Policy.geolocation
Permissions-Policy: geolocation directive
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The HTTP Permissions-Policy header geolocation directive controls whether the current document is allowed to use the Geolocation Interface.
Specifically, where a defined policy blocks use of this feature, calls to getCurrentPosition() and watchPosition() will cause those functions' callbacks to be invoked with a GeolocationPositionError code of PERMISSION_DENIED.
Syntax
Permissions-Policy: geolocation=<allowlist>;
<allowlist>-
A list of origins for which permission is granted to use the feature. See
Permissions-Policy> Syntax for more details.
Default policy
The default allowlist for geolocation is self. The top-level browsing context and same-origin iframes are allowed access to the geolocation feature by default.
Examples
>Basic usage
SecureCorp Inc. wants to disallow geolocation within all cross-origin iframes except those whose origin is https://example.com. It can do so by delivering the following HTTP response header to define a Permissions Policy:
Permissions-Policy: geolocation=(self "https://example.com")
SecureCorp Inc. must also include an allow attribute on each <iframe> element where geolocation is to be allowed:
<iframe src="https://example.com/map" allow="geolocation"></iframe>
Note: Specifying the Permissions-Policy header in this manner disallows geolocation for other origins, even if they are allowed by the <iframe> allow attribute.
Using the default policy
If an allowlist for geolocation is not defined by a Permissions-Policy response header, user agents will apply the default allowlist self. In this mode, geolocation is automatically allowed in the top-level browsing context and same-origin iframes, but not in cross-origin iframes.
To allow geolocation in a cross-origin iframe, include an allow attribute on the <iframe> element:
<iframe src="https://other.com/store-locator" allow="geolocation"></iframe>
Specifications
| Specification |
|---|
| Geolocation> # permissions-policy> |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
geolocation |
88 | 88 | No | 74 | No | 88 | No | 63 | No | 15.0 | 88 | No |
See also
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Permissions-Policy/geolocation