docs.rodeo

MDN Web Docs mirror

Permissions-Policy: geolocation

{{HTTPSidebar}} {{SeeCompatTable}} 

The HTTP {{HTTPHeader("Permissions-Policy")}}  header geolocation directive controls whether the current document is allowed to use the {{domxref('Geolocation')}}  Interface.

Specifically, where a defined policy blocks use of this feature, calls to {{domxref('Geolocation.getCurrentPosition','getCurrentPosition()')}}  and {{domxref('Geolocation.watchPosition','watchPosition()')}}  will cause those functions’ callbacks to be invoked with a {{domxref('GeolocationPositionError')}}  code of PERMISSION_DENIED.

By default, the Geolocation API can be used within top-level documents and their same-origin child frames. This directive allows or prevents cross-origin frames from accessing geolocation. This includes same-origin frames.

Syntax

Permissions-Policy: geolocation=<allowlist>;

Default policy

The default allowlist for geolocation is self.

Examples

General example

SecureCorp Inc. wants to disable the Geolocation API within all browsing contexts except for its own origin and 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")

With an <iframe> element

FastCorp Inc. wants to disable geolocation for all cross-origin child frames, except for a specific <iframe>. It can do so by delivering the following HTTP response header to define a Permissions Policy:

Permissions-Policy: geolocation=(self)

Then include an {{HTMLElement('iframe','allow','#Attributes')}}  attribute on the <iframe> element:

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

Interestingly, allow attributes can selectively enable features in certain frames, and not in others, even if those frames contain documents from the same origin.

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN