Navigator

The Navigator interface represents the state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities.

A Navigator object can be retrieved using the read-only window.navigator property.

Properties

Doesn't inherit any properties, but implements those defined in NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorStorage, NavigatorStorageUtils, NavigatorConcurrentHardware, NavigatorPlugins, and NavigatorUserMedia.

Standard properties

Navigator.connection Read only
Provides a NetworkInformation object containing information about the network connection of a device.
Navigator.cookieEnabled Read only
Returns false if setting a cookie will be ignored and true otherwise.
Navigator.credentials Read only
Returns the CredentialsContainer interface which exposes methods to request credentials and notify the user agent when interesting events occur such as successful sign in or sign out. 
Navigator.deviceMemory Read only
Returns the amount of device memory in gigabytes. This value is an approximation given by rounding to the nearest power of 2 and dividing that number by 1024.
Navigator.doNotTrack Read only
Reports the value of the user's do-not-track preference. When this value is "yes", your web site or application should not track the user.
Navigator.geolocation Read only
Returns a Geolocation object allowing accessing the location of the device.
NavigatorConcurrentHardware.hardwareConcurrency Read only
Returns the number of logical processor cores available.
NavigatorPlugins.javaEnabled Read only
Returns a Boolean flag indicating whether the host browser is Java-enabled or not.
Navigator.keyboard Read only
Returns a Keyboard object which provides access to functions that retrieve keyboard layout maps and toggle capturing of key presses from the physical keyboard.
NavigatorLanguage.language Read only
Returns a DOMString representing the preferred language of the user, usually the language of the browser UI. The null value is returned when this is unknown.
NavigatorLanguage.languages Read only
Returns an array of DOMString representing the languages known to the user, by order of preference.
Navigator.locks Read only
Returns a LockManager object which provides methods for requesting a new Lock object and querying for an existing Lock object
Navigator.maxTouchPoints Read only
Returns the maximum number of simultaneous touch contact points are supported by the current device.
Navigator.mediaCapabilities Read only
Returns a MediaCapabilities object that can expose information about the decoding and encoding capabilities for a given format and output capabilities.
Navigator.mediaDevices Read only
Returns a reference to a MediaDevices object which can then be used to get information about available media devices (MediaDevices.enumerateDevices()), find out what constrainable properties are supported for media on the user's computer and user agent (MediaDevices.getSupportedConstraints()), and to request access to media using MediaDevices.getUserMedia().
Navigator.mediaSession Read only
Returns MediaSession object which can be used to provide metadata that can be used by the browser to present information about the currently-playing media to the user, such as in a global media controls UI.
NavigatorPlugins.mimeTypes Read only
Returns an MimeTypeArray listing the MIME types supported by the browser.
Navigator.onLine Read only
Returns a Boolean indicating whether the browser is working online.
Navigator.permissions Read only
Returns a Permissions object that can be used to query and update permission status of APIs covered by the Permissions API.
NavigatorPlugins.plugins Read only
Returns a PluginArray listing the plugins installed in the browser.
Navigator.presentation Read only
Returns a reference to the Presentation API.
Navigator.serviceWorker Read only
Returns a ServiceWorkerContainer object, which provides access to registration, removal, upgrade, and communication with the ServiceWorker objects for the associated document.
NavigatorStorage.storage Read only
Returns the singleton StorageManager object used for managing persistence permissions and estimating available storage on a site-by-site/app-by-app basis.
NavigatorID.userAgent Read only
Returns the user agent string for the current browser.
Navigator.vendor Read only
Returns the vendor name of the current browser (e.g., "Netscape6").
Navigator.webdriver Read only  
Indicates whether the user agent is controlled by automation.
Navigator.xr Read only  
Returns XR object, which represents the entry point into the WebXR API.

Non-standard properties

Navigator.buildID
Returns the build identifier of the browser. In modern browsers this property now returns a fixed timestamp as a privacy measure, e.g. 20181001000000 in Firefox 64 onwards.
Navigator.contacts Read only
Returns a ContactsManager interface which allows users to select entries from their contact list and share limited details of the selected entries with a website or application.
Navigator.securitypolicy
Returns an empty string. In Netscape 4.7x, returns "US & CA domestic policy" or "Export policy".
Navigator.standalone
Returns a boolean indicating whether the browser is running in standalone mode. Available on Apple's iOS Safari only.
Navigator.wakeLock Read only
Returns a WakeLock interface you can use to request screen wake locks and prevent screen from dimming, turning off, or showing a screen saver.

Deprecated properties

NavigatorID.appCodeName Read only
Returns the internal "code" name of the current browser. Do not rely on this property to return the correct value.
NavigatorID.appName Read only
Returns a DOMString with the official name of the browser. Do not rely on this property to return the correct value.
NavigatorID.appVersion Read only
Returns the version of the browser as a DOMString. Do not rely on this property to return the correct value.
Navigator.activeVRDisplays Read only
Returns an array containing every VRDisplay object that is currently presenting (VRDisplay.ispresenting is true).
Navigator.battery Read only
Returns a BatteryManager object you can use to get information about the battery charging status.
Navigator.oscpu Read only
Returns a string that represents the current operating system.
NavigatorID.platform Read only
Returns a string representing the platform of the browser. Do not rely on this function to return a significant value.
NavigatorID.product Read only
Always returns 'Gecko', on any browser. This property is kept only for compatibility purpose.
Navigator.productSub Read only
Returns the build number of the current browser (e.g., "20060909").
Navigator.storageQuota Read only
Returns a StorageQuota interface which provides means to query and request storage usage and quota information.
Navigator.vendorSub Read only
Returns the vendor version number (e.g. "6.1").

Methods

Doesn't inherit any method, but implements those defined in NavigatorID, NavigatorContentUtils, NavigatorUserMedia, and NavigatorStorageUtils.

Navigator.canShare()
Returns true if a call to Navigator.share() would succeed.
Navigator.registerProtocolHandler()
Allows web sites to register themselves as a possible handler for a given protocol.
Navigator.requestMediaKeySystemAccess()
Returns a Promise for a MediaKeySystemAccess object.
Navigator.sendBeacon()
Used to asynchronously transfer a small amount of data using HTTP from the User Agent to a web server.
Navigator.share()
Invokes the native sharing mechanism of the current platform.
Navigator.vibrate()
Causes vibration on devices with support for it. Does nothing if vibration support isn't available.

Deprecated methods

Navigator.getVRDisplays()
Returns a promise that resolves to an array of VRDisplay objects representing any available VR devices connected to the computer.
Navigator.getUserMedia()
After having prompted the user for permission, returns the audio or video stream associated to a camera or microphone on the local computer.
Navigator.registerContentHandler()
Allows web sites to register themselves as a possible handler for a given MIME type.
NavigatorID.taintEnabled()
Returns false. JavaScript taint/untaint functions removed in JavaScript 1.2.

Specifications

Specification Status Comment
HTML Living Standard
The definition of 'the Navigator object' in that specification.
Living Standard

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
NavigatorChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0
activeVRDisplays
ExperimentalDeprecated
Chrome No support NoEdge No support 15 — 79
Notes
No support 15 — 79
Notes
Notes WebVR content requires a Windows Mixed Reality headset or the Windows Mixed Reality Portal Simulator.
Firefox Full support 55
Notes
Full support 55
Notes
Notes Windows support was enabled in Firefox 55.
Full support 64
Notes
Notes macOS support was enabled in Firefox 64.
IE No support NoOpera No support NoSafari No support NoWebView Android No support 79 — 80Chrome Android No support 79 — 80
Notes
No support 79 — 80
Notes
Notes Supported only by Google Daydream.
Firefox Android Full support 55Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support 12.0 — 13.0
Notes
No support 12.0 — 13.0
Notes
Notes Supported only by Google Daydream.
authenticationChrome Full support 67
Disabled
Full support 67
Disabled
Disabled From version 67: this feature is behind the WebAuth preference. To change preferences in Chrome, visit chrome://flags.
Edge Full support 79
Disabled
Full support 79
Disabled
Disabled From version 79: this feature is behind the WebAuth preference.
Firefox No support NoIE No support NoOpera ? Safari No support NoWebView Android No support NoChrome Android Full support 67
Disabled
Full support 67
Disabled
Disabled From version 67: this feature is behind the WebAuth preference. To change preferences in Chrome, visit chrome://flags.
Firefox Android No support NoOpera Android ? Safari iOS No support NoSamsung Internet Android No support No
battery
Deprecated
Chrome No support 20 — 29
Prefixed
No support 20 — 29
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge No support NoFirefox No support 16 — 50
Notes
No support 16 — 50
Notes
Notes Removed in favor of navigator.getBattery().
Notes The Battery API was supported on Android, Windows, and Linux with UPower installed. Support for macOS was available starting with Firefox 18.
No support 11 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
No support 10 — 16
Disabled
Disabled From version 10 until version 16 (exclusive): this feature is behind the dom.battery.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support 16 — 50
Notes
No support 16 — 50
Notes
Notes Removed in favor of navigator.getBattery().
Notes The Battery API was supported on Android, Windows, and Linux with UPower installed. Support for macOS was available starting with Firefox 18.
No support 14 — 16
Prefixed
Prefixed Implemented with the vendor prefix: moz
No support 10 — 16
Disabled
Disabled From version 10 until version 16 (exclusive): this feature is behind the dom.battery.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
buildID
Non-standard
Chrome No support NoEdge No support NoFirefox Full support 64
Notes
Full support 64
Notes
Notes Returns a fixed timestamp as a privacy measure - 20181001000000.
Full support 2
IE ? Opera ? Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support 64
Notes
Full support 64
Notes
Notes Returns a fixed timestamp as a privacy measure - 20181001000000.
Full support Yes
Opera Android ? Safari iOS ? Samsung Internet Android No support No
canShare
ExperimentalNon-standard
Chrome No support NoEdge No support NoFirefox No support NoIE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android Full support 75Firefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android Full support 11.0
clipboardChrome Full support 66Edge Full support 79Firefox Full support 63IE No support NoOpera Full support 53Safari Full support 13.1WebView Android Full support 66Chrome Android Full support 66Firefox Android Full support 63Opera Android Full support 47Safari iOS Full support 13.4Samsung Internet Android Full support 9.0
connection
Experimental
Chrome Full support 61Edge Full support 79Firefox Full support Yes
Disabled
Full support Yes
Disabled
Disabled This feature is behind the dom.netinfo.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support YesSafari No support NoWebView Android Full support 50Chrome Android Full support 38Firefox Android Full support 14
Notes
Full support 14
Notes
Notes The Network API is enabled by default. Can be disabled using the dom.netinfo.enabled preference.
Opera Android Full support 37Safari iOS No support NoSamsung Internet Android Full support 3.0
cookieEnabledChrome Full support 1Edge Full support 12Firefox Full support 1
Notes
Full support 1
Notes
Notes Prior to Firefox 8, navigator.cookieEnabled would report the wrong result if a site exception was in place for the page on which the check was performed. This has been fixed.
IE Full support 4Opera Full support ≤12.1Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4
Notes
Full support 4
Notes
Notes Prior to Firefox 8, navigator.cookieEnabled would report the wrong result if a site exception was in place for the page on which the check was performed. This has been fixed.
Opera Android Full support ≤12.1Safari iOS Full support 1Samsung Internet Android Full support 1.0
credentials
Experimental
Chrome Full support 51Edge Full support 18Firefox Full support 61IE No support NoOpera Full support 38Safari Full support 13WebView Android Full support 51Chrome Android Full support 51Firefox Android Full support 61Opera Android Full support 41Safari iOS Full support 13Samsung Internet Android Full support 5.0
deviceMemory
Experimental
Chrome Full support 63Edge Full support 79Firefox No support NoIE No support NoOpera Full support 50Safari No support NoWebView Android Full support 63Chrome Android Full support 63Firefox Android No support NoOpera Android Full support 46Safari iOS No support NoSamsung Internet Android Full support 8.0
doNotTrack
Experimental
Chrome Full support 23Edge Full support 17
Notes
Full support 17
Notes
Notes Edge prior to version 17 implemented window.doNotTrack.
Firefox Full support 9
Notes
Full support 9
Notes
Notes Prior to Firefox 32, navigator.doNotTrack would report values of yes and no rather than 1 and 0.
IE No support 9 — 11
Prefixed Notes
No support 9 — 11
Prefixed Notes
Prefixed Implemented with the vendor prefix: ms
Notes For IE11 and subsequent versions, use window.doNotTrack
Opera Full support 12Safari No support 5.1 — 7
Notes
No support 5.1 — 7
Notes
Notes Safari 7.1.3+ uses window.doNotTrack rather than navigator.doNotTrack.
WebView Android Full support YesChrome Android Full support YesFirefox Android Full support 9
Notes
Full support 9
Notes
Notes Prior to Firefox 32, navigator.doNotTrack would report values of yes and no rather than 1 and 0.
Opera Android ? Safari iOS ? Samsung Internet Android Full support Yes
geolocationChrome Full support 5Edge Full support 12Firefox Full support 3.5IE Full support 9Opera Full support 10.6Safari Full support 5WebView Android Full support ≤37Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 11Safari iOS Full support 4.2Samsung Internet Android Full support 1.0
getBattery
Deprecated
Chrome Full support 38Edge Full support 79Firefox No support 43 — 52
Notes
No support 43 — 52
Notes
Notes From Firefox 52 onwards, the Battery Status API is only available in chrome/privileged code.
IE No support NoOpera Full support 25Safari No support NoWebView Android Full support 38Chrome Android Full support 38Firefox Android No support 43 — 52
Notes
No support 43 — 52
Notes
Notes From Firefox 52 onwards, the Battery Status API is only available in chrome/privileged code.
Opera Android Full support 25Safari iOS No support NoSamsung Internet Android Full support 3.0
getGamepads
Experimental
Chrome Full support 35
Full support 35
Full support 21
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support 29IE No support NoOpera Full support 22
Full support 22
Full support 15
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Safari Full support 10.1WebView Android Full support 37
Full support 37
Full support Yes
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android Full support 35
Full support 35
Full support 25
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android No support NoOpera Android Full support 22
Full support 22
Full support 14
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Safari iOS Full support 10.3Samsung Internet Android Full support 3.0
Full support 3.0
Full support 1.5
Prefixed
Prefixed Implemented with the vendor prefix: webkit
getUserMedia
DeprecatedNon-standard
Chrome Full support 53
Full support 53
Full support 21
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12
Full support 12
Full support 79
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Full support 17
Prefixed Notes
Full support 17
Prefixed Notes
Prefixed Implemented with the vendor prefix: moz
Notes The constraint syntax described here is available as of Firefox 38. Earlier versions (32-37) used an outdated constraint syntax, but the syntax described here is available there through the adapter.js polyfill.
IE No support NoOpera Full support 40
Full support 40
Full support 15
Prefixed
Prefixed Implemented with the vendor prefix: webkit
No support 12 — 15
Safari No support 11 — 12WebView Android Full support 53
Full support 53
Full support 40
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android Full support 53
Full support 53
Full support 25
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 24
Prefixed Notes
Full support 24
Prefixed Notes
Prefixed Implemented with the vendor prefix: moz
Notes The constraint syntax described here is available as of Firefox 38. Earlier versions (32-37) used an outdated constraint syntax, but the syntax described here is available there through the adapter.js polyfill.
Opera Android Full support 41
Full support 41
Full support 14
Prefixed
Prefixed Implemented with the vendor prefix: webkit
No support 12 — 14
Safari iOS No support 11 — 12Samsung Internet Android Full support 6.0
Full support 6.0
Full support 1.5
Prefixed
Prefixed Implemented with the vendor prefix: webkit
getVRDisplays
ExperimentalDeprecated
Chrome No support No
Notes
No support No
Notes
Notes Available on all platforms behind a flag, but currently only works on desktop in an experimental version of Chrome (other builds won't return any devices when Navigator.getVRDisplays() is invoked).
Edge No support 15 — 79Firefox Full support 55
Notes
Full support 55
Notes
Notes Windows support was enabled in Firefox 55.
Full support 64
Notes
Notes macOS support was enabled in Firefox 64.
IE No support NoOpera No support NoSafari No support NoWebView Android No support ? — 80Chrome Android No support ? — 80
Notes
No support ? — 80
Notes
Notes Currently supported only by Google Daydream.
Firefox Android Full support 55Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support ? — 13.0
Notes
No support ? — 13.0
Notes
Notes Currently supported only by Google Daydream.
keyboard
Experimental
Chrome Full support 68Edge Full support 79Firefox No support NoIE No support NoOpera Full support 55Safari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
locks
Experimental
Chrome Full support 69Edge Full support 79Firefox No support NoIE No support NoOpera Full support 56Safari No support NoWebView Android Full support 69Chrome Android Full support 69Firefox Android No support NoOpera Android Full support 48Safari iOS No support NoSamsung Internet Android Full support 10.0
maxTouchPointsChrome Full support 35Edge Full support 12Firefox Full support 59
Full support 59
Full support 29
Disabled
Disabled From version 29: this feature is behind the dom.w3c_pointer_events.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Full support 11
Full support 11
Full support 10
Prefixed
Prefixed Implemented with the vendor prefix: ms
Opera Full support YesSafari Full support 13WebView Android Full support 37Chrome Android Full support 35Firefox Android Full support 29
Notes Disabled
Full support 29
Notes Disabled
Notes See bug 1426786.
Disabled From version 29: this feature is behind the dom.w3c_pointer_events.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Full support YesSafari iOS Full support 13Samsung Internet Android Full support 3.0
mediaCapabilities
Experimental
Chrome Full support 66Edge Full support 79Firefox Full support 63IE No support NoOpera Full support 55Safari Full support 13WebView Android Full support 66Chrome Android Full support 66Firefox Android Full support 63Opera Android Full support 48Safari iOS Full support 13Samsung Internet Android Full support 9.0
mediaDevicesChrome Full support 47Edge Full support 12Firefox Full support 36IE No support NoOpera Full support 34Safari Full support 11WebView Android Full support 47Chrome Android Full support 47Firefox Android Full support 36Opera Android Full support 34Safari iOS Full support 11Samsung Internet Android Full support 5.0
mediaSession
Experimental
Chrome Full support 73Edge Full support 79Firefox No support NoIE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android Full support 57Firefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android Full support 7.0
mozIsLocallyAvailable
DeprecatedNon-standard
Chrome No support NoEdge No support NoFirefox No support ? — 35IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support ? — 35Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
oscpu
Deprecated
Chrome No support NoEdge No support NoFirefox Full support 1
Notes
Full support 1
Notes
Notes The preference "general.oscpu.override" can be used to set a value to be returned instead of the true CPU description. The preference setting is ignored for calls made by privileged code, which continue to get the actual CPU description.
IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android Full support 4
Notes
Full support 4
Notes
Notes The preference "general.oscpu.override" can be used to set a value to be returned instead of the true CPU description. The preference setting is ignored for calls made by privileged code, which continue to get the actual CPU description.
Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
permissions
Experimental
Chrome Full support 43Edge Full support 79Firefox Full support 46IE No support NoOpera Full support YesSafari No support NoWebView Android No support NoChrome Android Full support 43Firefox Android Full support 46Opera Android Full support YesSafari iOS No support NoSamsung Internet Android Full support 4.0
presentationChrome Full support 47Edge Full support 79Firefox Full support 51
Disabled
Full support 51
Disabled
Disabled From version 51: this feature is behind the dom.presentation.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 34Safari No support NoWebView Android No support NoChrome Android Full support 47Firefox Android Full support 51
Disabled
Full support 51
Disabled
Disabled From version 51: this feature is behind the dom.presentation.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Full support 34Safari iOS No support NoSamsung Internet Android Full support 5.0
productSub
Deprecated
Chrome Full support 1
Notes
Full support 1
Notes
Notes Always returns 20030107.
Edge Full support 12
Notes
Full support 12
Notes
Notes Always returns 20030107.
Firefox Full support 1IE No support NoOpera Full support 15
Notes
Full support 15
Notes
Notes Always returns 20030107.
Safari Full support 1
Notes
Full support 1
Notes
Notes Always returns 20030107.
WebView Android Full support 1
Notes
Full support 1
Notes
Notes Always returns 20030107.
Chrome Android Full support 18
Notes
Full support 18
Notes
Notes Always returns 20030107.
Firefox Android Full support 4Opera Android Full support 14
Notes
Full support 14
Notes
Notes Always returns 20030107.
Safari iOS Full support 1
Notes
Full support 1
Notes
Notes Always returns 20030107.
Samsung Internet Android Full support 1.0
Notes
Full support 1.0
Notes
Notes Always returns 20030107.
registerContentHandler
DeprecatedNon-standard
Chrome ? Edge ? Firefox No support 2 — 62IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
registerProtocolHandlerChrome Full support 13
Notes
Full support 13
Notes
Notes Allowed schemes include mailto, mms, nntp, rtsp, and webcal. Custom protocols must be prefixed with web+.
Notes From Chrome 77, the URL parameter only accepts http or https URLs.
Edge Full support 79
Notes
Full support 79
Notes
Notes Allowed schemes include mailto, mms, nntp, rtsp, and webcal. Custom protocols must be prefixed with web+.
Firefox Full support 3IE No support NoOpera Full support 11.6Safari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
requestMediaKeySystemAccessChrome Full support 42
Notes
Full support 42
Notes
Notes The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
Notes The function does not exist in insecure contexts. This was not enforced until Chrome 58.
Edge Full support 13Firefox Full support 38
Notes
Full support 38
Notes
Notes Starting in Firefox 55, if neither audioCapabilities nor videoCapabilities is specified in supportedConfigurations, a warning is output to the web console.
Notes In addition, starting in Firefox 55, if in supportedConfigurations, either audioCapabilities's or videoCapabilities's contentType value doesn't specify a "codecs" substring to define allowed codecs within the media wrapper, a warning is output to the web console. See note below table for example and correction.
Notes In the future, if neither audioCapabilities nor videoCapabilities is specified in the supportedConfigurations, a NotSupported exception will be thrown.
IE No support NoOpera Full support 29
Notes
Full support 29
Notes
Notes The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
Notes The function does not exist in insecure contexts. This was not enforced until Opera 45.
Safari Full support 13.1WebView Android Full support 43
Notes
Full support 43
Notes
Notes The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
Notes The function does not exist in insecure contexts. This was not enforced until version 58.
Chrome Android Full support 42
Notes
Full support 42
Notes
Notes The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
Notes The function does not exist in insecure contexts. This was not enforced until Chrome 58.
Firefox Android Full support 38
Notes
Full support 38
Notes
Notes Starting in Firefox 55, if neither audioCapabilities nor videoCapabilities is specified in supportedConfigurations, a warning is output to the web console.
Notes In addition, starting in Firefox 55, if in supportedConfigurations, either audioCapabilities's or videoCapabilities's contentType value doesn't specify a "codecs" substring to define allowed codecs within the media wrapper, a warning is output to the web console. See note below table for example and correction.
Notes In the future, if neither audioCapabilities nor videoCapabilities is specified in the supportedConfigurations, a NotSupported exception will be thrown.
Opera Android Full support 29
Notes
Full support 29
Notes
Notes The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
Notes The function does not exist in insecure contexts. This was not enforced until Opera 45.
Safari iOS Full support 13.4Samsung Internet Android Full support 4.0
Notes
Full support 4.0
Notes
Notes The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities, and that said parameters include a codec string.
Notes The function does not exist in insecure contexts. This was not enforced until Samsung Internet 7.0.
sendBeaconChrome Full support 39
Notes
Full support 39
Notes
Notes Starting in Chrome 59, this method cannot send a Blob whose type is not CORS safelisted. This is a temporary change until a mitigation can be found for the security issues that this creates. For more information see Chrome bug 720283.
Edge Full support 14Firefox Full support 31IE No support NoOpera Full support 26
Notes
Full support 26
Notes
Notes Starting in Opera 46, this method cannot send a Blob whose type is not CORS safelisted. This is a temporary change until a mitigation can be found for the security issues that this creates. For more information see Chrome bug 720283.
Safari Full support 11.1WebView Android Full support 40
Notes
Full support 40
Notes
Notes Starting in Chrome 59, this method cannot send a Blob whose type is not CORS safelisted. This is a temporary change until a mitigation can be found for the security issues that this creates. For more information see Chrome bug 720283.
Chrome Android Full support 42
Notes
Full support 42
Notes
Notes Starting in Chrome 59, this method cannot send a Blob whose type is not CORS safelisted. This is a temporary change until a mitigation can be found for the security issues that this creates. For more information see Chrome bug 720283.
Firefox Android Full support 31Opera Android Full support 26
Notes
Full support 26
Notes
Notes Starting in Opera 46, this method cannot send a Blob whose type is not CORS safelisted. This is a temporary change until a mitigation can be found for the security issues that this creates. For more information see Chrome bug 720283.
Safari iOS Full support 11.3Samsung Internet Android Full support 4.0
Notes
Full support 4.0
Notes
Notes Starting in Samsung Internet 7.0, this method cannot send a Blob whose type is not CORS safelisted. This is a temporary change until a mitigation can be found for the security issues that this creates. For more information see Chrome bug 720283.
serviceWorkerChrome Full support 40Edge Full support 17
Full support 17
Full support 16
Disabled
Disabled From version 16: this feature is behind the Enable service workers preference.
Firefox Full support 44
Notes
Full support 44
Notes
Notes Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.
IE No support NoOpera Full support 27Safari Full support 11.1WebView Android Full support 40Chrome Android Full support 40Firefox Android Full support 44Opera Android Full support 27Safari iOS Full support 11.3Samsung Internet Android Full support 4.0
share
Experimental
Chrome No support NoEdge Full support 81Firefox No support NoIE No support NoOpera No support NoSafari Full support 12.1WebView Android No support NoChrome Android Full support 61Firefox Android No support NoOpera Android Full support 48Safari iOS Full support 12.2Samsung Internet Android Full support 8.0
vendorChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 11Opera Full support 15Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
vendorSub
Deprecated
Chrome Full support 1Edge Full support 12Firefox Full support 1IE No support NoOpera Full support 15Safari Full support 3WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
vibrateChrome Full support 32Edge Full support 79Firefox Full support 16
Notes
Full support 16
Notes
Notes Until Firefox 26 included, when the vibration pattern was too long or any of its elements too large, Firefox threw an exception instead of returning false (bug 884935).
Notes From Firefox 32 onwards, when the vibration pattern is too long or any of its elements too large, it returns true but truncates the pattern (bug 1014581).
Notes Beginning in Firefox 72, this is not supported in cross-origin iframes.
Full support 11
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE No support NoOpera No support NoSafari No support NoWebView Android Full support 4.4.3
Notes
Full support 4.4.3
Notes
Notes Beginning in version 55, this is not supported in cross-origin iframes.
Notes Beginning in version 60, this method requires a user gesture. Otherwise it returns false.
Chrome Android Full support 32
Notes
Full support 32
Notes
Notes Beginning in Chrome 55, this is not supported in cross-origin iframes.
Notes Beginning in Chrome 60, this method requires a user gesture. Otherwise it returns false.
Firefox Android Full support 16
Notes
Full support 16
Notes
Notes Until Firefox 26 included, when the vibration pattern was too long or any of its elements too large, Firefox threw an exception instead of returning false (bug 884935).
Notes From Firefox 32 onwards, when the vibration pattern is too long or any of its elements too large, it returns true but truncates the pattern (bug 1014581).
Full support 14
Prefixed
Prefixed Implemented with the vendor prefix: moz
Opera Android Full support Yes
Notes
Full support Yes
Notes
Notes Beginning in Opera 47, this method requires a user gesture. Otherwise it returns false.
Safari iOS No support NoSamsung Internet Android Full support 2.0
Notes
Full support 2.0
Notes
Notes Beginning in Samsung Internet 6.0, this is not supported in cross-origin iframes.
Notes Beginning in Samsung Internet 8.0, this method requires a user gesture. Otherwise it returns false.
wakeLock
Experimental
Chrome Full support 84Edge Full support 84Firefox No support NoIE No support NoOpera Full support YesSafari No support NoWebView Android Full support 84Chrome Android Full support 84Firefox Android No support NoOpera Android Full support YesSafari iOS No support NoSamsung Internet Android No support No
webdriver
Experimental
Chrome Full support 63Edge Full support 12Firefox Full support 60IE Full support 11Opera Full support 50Safari Full support 10WebView Android Full support 63Chrome Android Full support 63Firefox Android Full support 60Opera Android Full support 46Safari iOS Full support 10Samsung Internet Android Full support 8.0
xr
Experimental
Chrome Full support 79Edge Full support 79Firefox No support NoIE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android Full support 79Firefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android Full support 11.2

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.
User must explicitly enable this feature.
User must explicitly enable this feature.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.