Navigator |
1 |
12 |
1 |
4 |
3 |
1 |
4.4 |
18 |
4 |
10.1 |
1 |
1.0 |
activeVRDisplays |
No |
15–79WebVR content requires a Windows Mixed Reality headset or the Windows Mixed Reality Portal Simulator. |
9864–98macOS support was enabled in Firefox 64.55–98Windows support was enabled in Firefox 55.
|
No |
No |
No |
No |
79–80Supported only by Google Daydream. |
55 |
No |
No |
12.0–13.0Supported only by Google Daydream. |
appCodeName |
1 |
12 |
1 |
4 |
≤12.1 |
1 |
4.4 |
18 |
4 |
≤12.1 |
1 |
1.0 |
appName |
1 |
12 |
1 |
4 |
≤12.1 |
1 |
4.4 |
18 |
4 |
≤12.1 |
1 |
1.0 |
appVersion |
1 |
12 |
1 |
4 |
≤12.1 |
1 |
4.4 |
18 |
4 |
≤12.1 |
1 |
1.0 |
audioSession |
No |
No |
No |
No |
No |
16.4 |
No |
No |
No |
No |
16.4 |
No |
authentication |
67 |
79 |
No |
No |
54 |
No |
No |
67 |
No |
No |
No |
No |
bluetooth |
56Before Chrome 70, this feature was only supported in macOS. In Chrome 70, support was added for Windows 10. Linux support is not enabled by default.56In Linux and versions of Windows earlier than 10, this flag must be enabled.
|
79Supported by default only on macOS and Windows 10. Linux support is not enabled by default.79In Linux and versions of Windows earlier than 10, this flag must be enabled.
|
No |
No |
43Before Opera 57, this feature was only supported in macOS. In Opera 57, support was added for Windows 10. Linux support is not enabled by default.43In Linux and versions of Windows earlier than 10, this flag must be enabled.
|
No |
No |
56 |
No |
43 |
No |
6.0 |
buildID |
No |
No |
2Since Firefox 64, this property returns a fixed timestamp as a privacy measure - 20181001000000 . |
No |
No |
No |
No |
No |
4Since Firefox 64, this property returns a fixed timestamp as a privacy measure - 20181001000000 . |
No |
No |
No |
canShare |
89Only supported on Chrome OS and Windows, see bug 770595 and bug 1144920. |
9389–93Only supported on Windows.
|
96 |
No |
75Only supported on Opera OS and Windows, see bug 770595 and bug 1144920. |
14 |
No |
75 |
96 |
54 |
14 |
11.0 |
clearAppBadge |
81Windows and macOS only. |
81Windows and macOS only. |
No |
No |
No |
17Badging is supported for installed web apps on macOS Sonoma and higher. |
81 |
81 |
No |
58 |
16.4 |
13.0 |
clipboard |
66 |
79 |
63 |
No |
53 |
13.1 |
66 |
66 |
63 |
47 |
13.4 |
9.0 |
connection |
61 |
79 |
31–32 |
No |
48 |
No |
50 |
38 |
14–99 |
37 |
No |
3.0 |
contacts |
No |
No |
No |
No |
No |
No |
80 |
80 |
No |
57 |
14.5 |
14.0–22.0This API was exposed but failed upon opening a contact selector. |
cookieEnabled |
1 |
12 |
1Before 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. |
4navigator.cookieEnabled returns true even if the browser is set to block cookies (for example, if the page is in the Restricted sites security zone). |
≤12.1 |
1 |
4.4 |
18 |
4Before 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. |
≤12.1 |
1 |
1.0 |
credentials |
51 |
18 |
60 |
No |
38 |
13 |
51 |
51 |
60 |
41 |
13 |
5.0 |
deviceMemory |
63 |
79 |
No |
No |
50 |
No |
63 |
63 |
No |
46 |
No |
8.0 |
doNotTrack |
23 |
17Before version 17, Edge implemented window.doNotTrack . |
9["In Firefox, navigator.doNotTrack returns \"unspecified\" instead of null .", "Before Firefox 32, navigator.doNotTrack would report values of \"yes\" and \"no\" rather than \"1\" and \"0\" ."] |
9–11For IE11 and subsequent versions, use window.doNotTrack |
12 |
5.1–7 |
4.4 |
25 |
9["In Firefox, navigator.doNotTrack returns \"unspecified\" instead of null .", "Before Firefox 32, navigator.doNotTrack would report values of \"yes\" and \"no\" rather than \"1\" and \"0\" ."] |
12 |
5–7 |
1.5 |
geolocation |
5 |
12 |
3.5 |
9 |
10.6 |
5 |
≤37 |
18 |
4 |
11 |
≤3 |
1.0 |
getAutoplayPolicy |
No |
No |
112 |
No |
No |
No |
No |
No |
112 |
No |
No |
No |
getBattery |
38 |
79 |
43–52 |
No |
25 |
No |
38 |
38 |
43–52 |
25 |
No |
3.0 |
getGamepads |
3521 |
12 |
29 |
No |
2215 |
10.1 |
37≤37 |
3525 |
32 |
2214 |
10.3 |
3.01.5 |
getInstalledRelatedApps |
85Supported on Windows for checking of Universal Windows Platform (UWP) app installation. Resolves with an empty array on other platforms.80–85Always resolves with an empty array.
|
85Supported on Windows for checking of Universal Windows Platform (UWP) app installation. Resolves with an empty array on other platforms.80–85Always resolves with an empty array.
|
No |
No |
71Supported on Windows for checking of Universal Windows Platform (UWP) app installation. Resolves with an empty array on other platforms.67–71Always resolves with an empty array.
|
No |
No |
84Supports checking of Progressive Web App (PWA) installation.80Supports checking of Android app installation.
|
No |
No |
No |
14.0Supports checking of Progressive Web App (PWA) installation.13.0Supports checking of Android app installation.
|
getUserMedia |
5321 |
7912 |
17 |
No |
401512–15 |
11–12 |
5340 |
5325 |
24 |
411412–14 |
11–12 |
6.01.5 |
getVRDisplays |
NoAvailable 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). |
15–79 |
9864–98macOS support was enabled in Firefox 64.55–98Windows support was enabled in Firefox 55.
|
No |
No |
No |
No |
79–80Currently supported only by Google Daydream. |
55 |
No |
No |
12.0–13.0Currently supported only by Google Daydream. |
globalPrivacyControl |
No |
No |
previewOpt-in to GPC by setting the preference privacy.globalprivacycontrol.enabled to true . |
No |
No |
No |
No |
No |
NoOpt-in to GPC by setting the preference privacy.globalprivacycontrol.enabled to true . |
No |
No |
No |
gpu |
113Currently supported on ChromeOS, macOS, and Windows only. |
113Currently supported on ChromeOS, macOS, and Windows only. |
previewCurrently supported on Linux and Windows only. |
No |
99Currently supported on ChromeOS, macOS, and Windows only. |
No |
No |
No |
No |
No |
No |
No |
hardwareConcurrency |
37 |
15 |
48 |
No |
24 |
10.1–11 |
37 |
37 |
48 |
24 |
10.3–11 |
3.0 |
hid |
89 |
89 |
No |
No |
75 |
No |
No |
No |
No |
No |
No |
No |
ink |
94 |
93 |
No |
No |
80 |
No |
94 |
94 |
No |
66 |
No |
17.0 |
javaEnabled |
1 |
12 |
1 |
6 |
≤12.1 |
1 |
4.4 |
18 |
4 |
≤12.1 |
1 |
1.0 |
keyboard |
68 |
79 |
No |
No |
55 |
No |
68 |
68 |
No |
48 |
No |
10.0 |
language |
1 |
12 |
1Before Firefox 4, this property's value was also part of the user agent string, as reported by navigator.userAgent . Starting in Firefox 5, this property's value is based on the value of the Accept-Language HTTP header. |
11Closest available (non-standard) properties are userLanguage and browserLanguage . |
4 |
1 |
4.4 |
18 |
4 |
10.1 |
1 |
1.0 |
languages |
37Before Chrome 65, navigator.languages[0] is not guaranteed to equal navigator.language . |
16 |
32In Firefox, the navigator.languages property's value is taken from the intl.accept_languages preference. |
NoClosest available (non-standard) properties are userLanguage and browserLanguage . |
24 |
10.1 |
37Before version 65, navigator.languages[0] is not guaranteed to equal navigator.language . |
37Before Chrome 65, navigator.languages[0] is not guaranteed to equal navigator.language . |
32In Firefox, the navigator.languages property's value is taken from the intl.accept_languages preference. |
24 |
10.3 |
3.0 |
locks |
69 |
79 |
96 |
No |
56 |
15.4 |
69 |
69 |
96 |
48 |
15.4 |
10.0 |
maxTouchPoints |
35 |
12 |
59 |
1110 |
22 |
13 |
37 |
35 |
79 |
22 |
13 |
3.0 |
mediaCapabilities |
66 |
79 |
63 |
No |
55 |
13 |
66 |
66 |
63 |
48 |
13 |
9.0 |
mediaDevices |
47 |
12 |
36 |
No |
34 |
11 |
47 |
47 |
36 |
34 |
11 |
5.0 |
mediaSession |
73 |
79 |
82 |
No |
60 |
15 |
No |
57 |
82 |
43 |
15 |
7.0 |
mimeTypes |
1 |
12 |
1 |
4 |
≤12.1 |
1 |
4.4 |
18 |
4 |
≤12.1 |
1 |
1.0 |
onLine |
2Earlier versions of Chrome incorrectly return true when a tab is first opened, but it starts reporting the correct connectivity status after the first network event. Windows: 11, macOS: 14, Chrome OS: 13, Linux: Always returns true . For history, see crbug.com/7469. |
12 |
1.5Since Firefox 4 the browser returns true when 'Work Offline' mode is disabled and false when it is enabled, regardless of actual connectivity. Since Firefox 41, on OS X and Windows, the returned values follow the actual network connectivity, unless 'Work offline' mode is selected (where it will always return false ). |
4in Internet Explorer 8 'online' and 'offline' events are raised on the document.body ; under IE 9 they are raised on both document.body and window . |
3From Opera 11.1 until Opera 12.1, the browser returns true when 'Work Offline' mode is disabled and false when it is enabled, regardless of actual connectivity. |
4 |
≤37Can incorrectly return true, see bug 811122. |
18 |
4 |
10.1From Opera 11.1 until Opera 12.1, the browser returns true when 'Work Offline' mode is disabled and false when it is enabled, regardless of actual connectivity. |
3.2 |
1.0 |
oscpu |
No |
No |
1The 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. |
No |
No |
No |
No |
No |
4The 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. |
No |
No |
No |
pdfViewerEnabled |
94 |
94 |
99 |
No |
80 |
16.4 |
94 |
94 |
99 |
66 |
16.4 |
17.0 |
permissions |
43 |
79 |
46 |
No |
30 |
16 |
No |
43 |
46 |
30 |
16 |
4.0 |
platform |
1 |
12 |
1["Before Firefox 69, platform would report running on a 32-bit CPU if running the 32-bit version of Firefox on a 64-bit system.", "You can override the value returned by platform by setting the preference general.platform.override to the string you wish to be returned instead."] |
4 |
≤12.1 |
1 |
4.4 |
18 |
4 |
≤12.1 |
1 |
1.0 |
plugins |
1 |
12 |
1 |
4 |
≤12.1 |
1 |
4.4 |
18 |
4 |
≤12.1 |
1 |
1.0 |
presentation |
47 |
79 |
No |
No |
34 |
No |
No |
47 |
No |
34 |
No |
5.0 |
product |
1 |
12 |
1 |
11 |
15 |
1 |
4.4 |
18 |
4 |
14 |
1 |
1.0 |
productSub |
1Always returns 20030107 . |
12Always returns 20030107 . |
1 |
No |
15Always returns 20030107 . |
1Always returns 20030107 . |
4.4Always returns 20030107 . |
18Always returns 20030107 . |
4 |
14Always returns 20030107 . |
1Always returns 20030107 . |
1.0Always returns 20030107 . |
registerProtocolHandler |
13From Chrome 77, the URL parameter only accepts http or https URLs. |
79 |
2 |
No |
11.6 |
No |
No |
No |
4 |
No |
No |
No |
requestMIDIAccess |
43 |
79 |
108API access is gated by installation of a site permission add-on (user prompt), secure context, and Permission Policy: midi . |
No |
30 |
No |
43 |
43 |
No |
30 |
No |
4.0 |
requestMediaKeySystemAccess |
42["The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities , and that said parameters include a codec string.", "The function does not exist in insecure contexts. This was not enforced until Chrome 58."] |
13 |
38["Starting in Firefox 55, if neither audioCapabilities nor videoCapabilities is specified in supportedConfigurations , a warning is output to the web console.", "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.", "In the future, if neither audioCapabilities nor videoCapabilities is specified in the supportedConfigurations , a NotSupported exception will be thrown."] |
No |
29["The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities , and that said parameters include a codec string.", "The function does not exist in insecure contexts. This was not enforced until Opera 45."] |
12.1 |
43["The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities , and that said parameters include a codec string.", "The function does not exist in insecure contexts. This was not enforced until version 58."] |
42["The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities , and that said parameters include a codec string.", "The function does not exist in insecure contexts. This was not enforced until Chrome 58."] |
38["Starting in Firefox 55, if neither audioCapabilities nor videoCapabilities is specified in supportedConfigurations , a warning is output to the web console.", "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.", "In the future, if neither audioCapabilities nor videoCapabilities is specified in the supportedConfigurations , a NotSupported exception will be thrown."] |
29["The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities , and that said parameters include a codec string.", "The function does not exist in insecure contexts. This was not enforced until Opera 45."] |
12.2 |
4.0["The spec requires that the passed supportedConfigurations option contain at least one of audioCapabilities or videoCapabilities , and that said parameters include a codec string.", "The function does not exist in insecure contexts. This was not enforced until Samsung Internet 7.0."] |
scheduling |
87 |
87 |
No |
No |
74 |
No |
87 |
87 |
No |
62 |
No |
14.0 |
sendBeacon |
39Starting 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. |
14 |
31 |
No |
26Starting 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. |
11.1 |
40Starting 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. |
42Starting 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. |
31 |
26Starting 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. |
11.3 |
4.0Starting 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. |
serial |
89 |
89 |
No |
No |
75 |
No |
No |
No |
No |
No |
No |
No |
serviceWorker |
40 |
17 |
44In Firefox private windows, the serviceWorker object is undefined . See bug 1320796. |
No |
27 |
11.1 |
40 |
40 |
44In Firefox private windows, the serviceWorker object is undefined . See bug 1320796. |
27 |
11.3 |
4.0 |
setAppBadge |
81Windows and macOS only. |
81Windows and macOS only. |
No |
No |
No |
17Badging is supported for web apps saved to the Dock in Safari 17 on the macOS Sonoma beta |
No |
No |
No |
No |
16.4 |
No |
share |
89Only supported on Chrome OS and Windows, see bug 770595 and bug 1144920. |
9389–93Only supported on Windows.
|
71 |
No |
75Only supported on Opera OS and Windows, see bug 770595 and bug 1144920. |
12.1 |
No |
61 |
79 |
48 |
12.2 |
8.0 |
storage |
55 |
79 |
57 |
No |
42 |
15.2 |
55 |
55 |
57 |
42 |
15.2 |
6.0 |
taintEnabled |
No |
No |
1 |
6 |
≤12.1–15 |
No |
No |
No |
4 |
≤12.1–14 |
No |
No |
unregisterProtocolHandler |
38 |
79 |
No |
No |
25≤12.1–15 |
No |
No |
No |
No |
No |
No |
No |
usb |
61 |
79 |
No |
No |
48 |
No |
NoWebView exposes navigator.usb , but does not support WebUSB. See Chromium bug 933055. |
61 |
No |
45 |
No |
8.0 |
userActivation |
72 |
79 |
No |
No |
60 |
16.4 |
72 |
72 |
No |
51 |
16.4 |
11.0 |
userAgent |
1 |
12 |
1 |
4 |
≤12.1 |
1 |
4.4 |
18 |
4 |
≤12.1 |
1 |
1.0 |
userAgentData |
90 |
90 |
No |
No |
76 |
No |
No |
90 |
No |
64 |
No |
15.0 |
vendor |
1 |
12 |
1 |
11 |
15 |
1 |
4.4 |
18 |
4 |
14 |
1 |
1.0 |
vendorSub |
1 |
12 |
1 |
No |
15 |
3 |
4.4 |
18 |
4 |
14 |
1 |
1.0 |
vibrate |
32 |
79 |
16["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).", "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).", "Beginning in Firefox 72, this is not supported in cross-origin iframes."] 11–16 |
No |
19 |
No |
4.4.3["Beginning in version 55, this is not supported in cross-origin iframes.", "Beginning in version 60, this method requires a user gesture. Otherwise it returns false ."] |
32["Beginning in Chrome 55, this is not supported in cross-origin iframes.", "Beginning in Chrome 60, this method requires a user gesture. Otherwise it returns false ."] |
79Vibration is disabled. If the window is visible, then navigator.vibrate() returns true , but no vibration takes place (regardless of hardware support). Originally, the intent was to disable it for cross-origin frames only (bug 1591113), but the feature was not re-enabled due to abuse concerns (bug 1653318).16–79["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).", "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)."] 14–16 |
19["Beginning in Opera 42, this is not supported in cross-origin iframes.", "Beginning in Opera 47, this method requires a user gesture. Otherwise it returns false ."] |
No |
2.0["Beginning in Samsung Internet 6.0, this is not supported in cross-origin iframes.", "Beginning in Samsung Internet 8.0, this method requires a user gesture. Otherwise it returns false ."] |
virtualKeyboard |
94 |
94 |
No |
No |
80 |
No |
94 |
94 |
No |
66 |
No |
17.0 |
wakeLock |
84 |
84 |
No |
No |
70 |
16.4 |
84 |
84 |
No |
60 |
16.4 |
14.0 |
webdriver |
63 |
12 |
60 |
11 |
50 |
10.1 |
63 |
63 |
60 |
46 |
10.3 |
8.0 |
windowControlsOverlay |
105 |
105 |
No |
No |
91 |
No |
No |
No |
No |
No |
No |
No |
xr |
79 |
79 |
No |
No |
66 |
No |
No |
79 |
No |
57 |
No |
11.2 |