Copyright © 2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
This is an implementation report for the 29 October 2025 W3C Recommendation of [Geolocation].
The following tests verify conformance to [Geolocation].
For the latest and updated test results, visit wpt.fyi/results/geolocation.
Some tests cannot be run in WebKit's automated test infrastructure due to platform limitations. These do not indicate missing implementation support in WebKit/Safari, but rather gaps in test automation infrastructure:
emulation.setGeolocationOverride.
Support for the Permissions-Policy HTTP header is not a conformance
requirement for [Geolocation]; it simply declares geolocation as a
policy-controlled feature with a default allowlist of 'self'. HTTP
header support is defined by [permissions-policy]. The iframe
allow attribute (e.g., <iframe
allow="geolocation">) is supported and works correctly in WebKit.
Some tests cannot be run in Gecko's (Firefox) wptrunner infrastructure due to missing [webdriver-bidi] integration in wptrunner:
Firefox 139+ has implemented [webdriver-bidi] commands at the
browser level, including emulation.setGeolocationOverride (Bug
1954992) and BrowsingContext geolocation override (Bug
1951962). However, wptrunner's Marionette executor does not yet
wire up the BiDi protocol for Firefox.
Bug 1984611 tracks adding WebDriver BiDi implementation for Firefox in wptrunner. Until this is resolved, tests requiring the following testdriver.bidi actions cannot run:
test_driver.bidi.permissions.set_permission - required for
tests that need to grant geolocation permissions programmatically.
test_driver.bidi.emulation.set_geolocation_override - required
for tests that need to mock geolocation data.
Since [Geolocation] became a W3C Recommendation on 01 September 2022, the specification received candidate corrections and additions. This section documents the substantive changes that resulted in implementation updates. Where automated tests could not be run due to test infrastructure limitations, conformance was verified manually.
| Change | Description | Chromium | Gecko | WebKit | Test |
|---|---|---|---|---|---|
| a1, a2 |
GeolocationPosition's toJSON() and
GeolocationCoordinates's toJSON()
methods
|
Chrome 126+ | Firefox 129+ | Safari 18+ | tojson.https.window.html |
| a4 |
Emulated position data for automation ([webdriver-bidi]
emulation.setGeolocationOverride command)
|
Chromium | Gecko | Not implemented | getCurrentPosition-success.https.html |
| c7 | Added missing step to check for non-secure contexts and return PERMISSION_DENIED | Already conforming | Already conforming | Already conforming | non-secure-contexts.http.html |
| c9 |
heading is null when
stationary (previously NaN)
|
Already conforming | Already conforming | Already conforming | heading-stationary.https.html |
The current specification features are implemented across major browsers including Chrome, Firefox, and Safari. This is demonstrated through the aforementioned WPT, which verify the implementation of the specification's features, such as obtaining the location, handling permissions, and responding to errors.
Yes, there are independent interoperable implementations in the major web browsers. Chrome, Firefox, and Safari provide their own implementations, which have been tested to ensure they conform to the [Geolocation] specification and are interoperable across different platforms and operating systems.
Yes, the implementations of Geolocation are publicly deployed and widely used in web applications. These are accessible in consumer-level browsers, allowing developers to incorporate geolocation features into their websites and applications, enhancing user experience with location-based services.
While the core functionality of Geolocation is well-supported, developers occasionally report difficulties related to privacy concerns, varying accuracy levels, and handling user permissions across different browsers and devices. These issues are typically addressed through updates to the specification (see open issues) and improvements in browser implementations.