This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022.
* Some parts of this feature may have varying levels of support.
Note: This feature is available in Web Workers.
The Permissions interface of the Permissions API provides the core Permission API functionality, such as methods for querying and revoking permissions
Permissions.query()Returns the user permission status for a given API.
Permissions.revoke() Deprecated
Revokes the permission currently set on a given API.
navigator.permissions.query({ name: "geolocation" }).then((result) => {
if (result.state === "granted") {
showLocalNewsWithGeolocation();
} else if (result.state === "prompt") {
showButtonToEnableLocalNews();
}
// Don't do anything if the permission was denied.
});
| Specification |
|---|
| Permissions> # permissions-interface> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
Permissions |
43 | 79 | 46 | 30 | 16 | 43 | 46 | 30 | 16 | 4.0 | No | 16 |
permission_accelerometer |
62 | 79 | No | 49 | No | 62 | No | 46 | No | 8.0 | No | No |
permission_accessibility-events |
62–131 | 79–131 | No | 49–116 | No | 62–131 | No | 46–87 | No | 8.0 | No | No |
permission_ambient-light-sensor |
62 | 79 | No | 49 | No | 62 | No | No | No | No | No | No |
permission_background-sync |
62 | 79 | No | 49 | No | 62 | No | 46 | No | 8.0 | No | No |
permission_camera |
64 | 79 | 132 | 51 | 16 | 64 | 132 | 47 | 16 | 9.0 | No | No |
permission_captured-surface-control |
136 | 136 | No | 121 | No | No | No | No | No | No | No | No |
permission_clipboard-read |
64 | 79 | No | 51 | No | 64 | No | 47 | No | 9.0 | No | No |
permission_clipboard-write |
64 | 79 | No | 51 | No | 64 | No | 47 | No | 9.0 | No | No |
permission_compute-pressure |
125 | 125 | No | 111 | No | No | No | No | No | No | No | No |
permission_geolocation |
43 | 79 | 46 | 30 | 16 | 43 | 46 | 30 | 16 | 4.0 | No | No |
permission_gyroscope |
51 | 79 | No | 38 | No | 51 | No | 41 | No | 5.0 | No | No |
permission_local-fonts |
103 | 103 | No | 89 | No | No | No | No | No | No | No | No |
permission_magnetometer |
62 | 79 | No | 49 | No | 62 | No | No | No | No | No | No |
permission_microphone |
64 | 79 | 132 | 51 | 16 | 64 | 132 | 47 | 16 | 9.0 | No | No |
permission_midi |
43 | 79 | 110 | 30 | No | 43 | 110 | 30 | No | 4.0 | No | No |
permission_notifications |
43 | 79 | 46Alias for thepush permission (returns the same value). |
30 | 16.4 | 43 | 46Alias for thepush permission (returns the same value). |
30 | 16.4 | 4.0 | No | No |
permission_payment-handler |
66 | 79 | No | 53 | No | 66 | No | 47 | No | 9.0 | No | No |
permission_persistent-storage |
71 | 79 | 53 | 58 | No | 71 | 53 | 50 | No | 10.0 | No | No |
permission_push |
43 | 79 | 46Alias for thenotifications permission (returns the same value). |
30 | 16.5 | 43 | 46Alias for thenotifications permission (returns the same value). |
30 | 16.5 | 4.0 | No | No |
permission_screen-wake-lock |
84 | 84 | 126122–126The value is recognized, but has no effect. |
70 | No | 84 | 126122–126The value is recognized, but has no effect. |
60 | No | 14.0 | No | No |
permission_storage-access |
119 | 85 | 117 | 105 | No | 120 | 117 | 80 | No | 25.0 | No | No |
permission_top-level-storage-access |
113 | 113 | No | 99 | No | 120 | No | 80 | No | 25.0 | No | No |
permission_window-management |
111 | 111 | No | 97 | No | No | No | No | No | No | No | No |
query |
43 | 79 | 46 | 30 | 16 | 43 | 46 | 30 | 16 | 4.0 | No | 16 |
request |
46 | 79 | No | 33 | No | 46 | No | No | No | No | No | No |
requestAll |
48 | 79 | No | 35 | No | 48 | No | No | No | No | No | No |
revoke |
46 | 79 | 5147–51 | 33 | No | 46 | 47–51 | No | No | No | No | No |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Permissions