{ "api": { "MediaDevices": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaDevices", "spec_url": "https://w3c.github.io/mediacapture-main/#mediadevices", "tags": [ "web-features:media-capture" ], "support": { "chrome": { "version_added": "47" }, "chrome_android": "mirror", "edge": { "version_added": "12" }, "firefox": { "version_added": "33" }, "firefox_android": { "version_added": "36" }, "oculus": "mirror", "opera": { "version_added": "30" }, "opera_android": { "version_added": "30" }, "safari": { "version_added": "11" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } }, "devicechange_event": { "__compat": { "description": "`devicechange` event", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaDevices/devicechange_event", "spec_url": [ "https://w3c.github.io/mediacapture-main/#event-mediadevices-devicechange", "https://w3c.github.io/mediacapture-main/#dom-mediadevices-ondevicechange" ], "tags": [ "web-features:media-capture" ], "support": { "chrome": { "version_added": "57" }, "chrome_android": { "version_added": "132" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "52" }, "firefox_android": "mirror", "oculus": "mirror", "opera": { "version_added": "34" }, "opera_android": "mirror", "safari": { "version_added": "11" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "enumerateDevices": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaDevices/enumerateDevices", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediadevices-enumeratedevices", "tags": [ "web-features:media-capture" ], "support": { "chrome": { "version_added": "47" }, "chrome_android": "mirror", "edge": { "version_added": "12" }, "firefox": [ { "version_added": "116", "notes": [ "`enumerateDevices()` enumerates both input and output devices. Previously only input devices were returned.", "The promise returned by `enumerateDevices()` only resolves when the document has focus. See [bug 1818588](https://bugzil.la/1818588)." ] }, { "version_added": "39", "version_removed": "116", "partial_implementation": true, "notes": "`enumerateDevices()` only returns input devices." } ], "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "11" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "getDisplayMedia": { "__compat": { "description": "`getDisplayMedia()`", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaDevices/getDisplayMedia", "spec_url": "https://w3c.github.io/mediacapture-screen-share/#dom-mediadevices-getdisplaymedia", "tags": [ "web-features:screen-capture" ], "support": { "chrome": { "version_added": "72" }, "chrome_android": { "version_added": false, "notes": "From Chrome Android 72 to 88, this method was exposed, but always failed with `NotAllowedError`. See [bug 40418135](https://crbug.com/40418135)." }, "edge": [ { "version_added": "79" }, { "version_added": "17", "version_removed": "79", "partial_implementation": true, "notes": "Available as a member of `Navigator` instead of `MediaDevices`." } ], "firefox": [ { "version_added": "66" }, { "version_added": "33", "version_removed": "66", "notes": "Since Firefox 33 you can capture screen data using [`getUserMedia()`](https://developer.mozilla.org/docs/Web/API/MediaDevices/getUserMedia), with a `video` constraint called `mediaSource`. Before 52 it relied on a client-configurable list of allowed sites." } ], "firefox_android": { "version_added": false, "notes": "From Firefox Android 66 to 79, this method was exposed, but always failed with `NotAllowedError`." }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "13" }, "safari_ios": { "version_added": false }, "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } }, "audio_capture_support": { "__compat": { "description": "Audio capture support", "mdn_url": "https://developer.mozilla.org/docs/Web/API/Screen_Capture_API/Using_Screen_Capture#capturing_shared_audio", "spec_url": "https://w3c.github.io/mediacapture-screen-share/#capturing-audio", "tags": [ "web-features:screen-capture" ], "support": { "chrome": { "version_added": "74", "notes": "On Windows and ChromeOS, the entire system audio can be captured when sharing an entire screen. On Linux and macOS, only the audio of a tab can be captured." }, "chrome_android": { "version_added": false }, "edge": "mirror", "firefox": { "version_added": false }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": false }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "controller_option": { "__compat": { "description": "`controller` option", "spec_url": "https://w3c.github.io/mediacapture-screen-share/#dom-displaymediastreamoptions-controller", "tags": [ "web-features:screen-capture" ], "support": { "chrome": { "version_added": "109" }, "chrome_android": { "version_added": false }, "edge": "mirror", "firefox": { "version_added": false }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": false }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": true, "standard_track": true, "deprecated": false } } }, "monitorTypeSurfaces_option": { "__compat": { "description": "`monitorTypeSurfaces` option", "spec_url": "https://w3c.github.io/mediacapture-screen-share/#dom-displaymediastreamoptions-monitortypesurfaces", "tags": [ "web-features:screen-capture" ], "support": { "chrome": { "version_added": "119", "notes": "Default value = `include`" }, "chrome_android": { "version_added": false }, "edge": "mirror", "firefox": { "version_added": false }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": false }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": true, "standard_track": true, "deprecated": false } } }, "preferCurrentTab_option": { "__compat": { "description": "`preferCurrentTab` option", "support": { "chrome": { "version_added": "94", "notes": "Default value = `false`" }, "chrome_android": { "version_added": false }, "edge": "mirror", "firefox": { "version_added": false }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": false }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": true, "standard_track": false, "deprecated": false } } }, "selfBrowserSurface_option": { "__compat": { "description": "`selfBrowserSurface` option", "spec_url": "https://w3c.github.io/mediacapture-screen-share/#dom-displaymediastreamoptions-selfbrowsersurface", "tags": [ "web-features:screen-capture" ], "support": { "chrome": [ { "version_added": "112", "notes": "Default value = `exclude`" }, { "version_added": "107", "version_removed": "111", "notes": "Default value = `include`" } ], "chrome_android": { "version_added": false }, "edge": "mirror", "firefox": { "version_added": false }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": false }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": true, "standard_track": true, "deprecated": false } } }, "surfaceSwitching_option": { "__compat": { "description": "`surfaceSwitching` option", "spec_url": "https://w3c.github.io/mediacapture-screen-share/#dom-displaymediastreamoptions-surfaceswitching", "tags": [ "web-features:screen-capture" ], "support": { "chrome": { "version_added": "107", "notes": "Default value = `exclude`" }, "chrome_android": { "version_added": false }, "edge": "mirror", "firefox": { "version_added": false }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": false }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": true, "standard_track": true, "deprecated": false } } }, "systemAudio_option": { "__compat": { "description": "`systemAudio` option", "spec_url": "https://w3c.github.io/mediacapture-screen-share/#dom-displaymediastreamoptions-systemaudio", "tags": [ "web-features:screen-capture" ], "support": { "chrome": { "version_added": "105", "notes": "Default value = `include`" }, "chrome_android": { "version_added": false }, "edge": "mirror", "firefox": { "version_added": false }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": false }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": true, "standard_track": true, "deprecated": false } } }, "windowAudio_option": { "__compat": { "description": "`windowAudio` option", "spec_url": "https://w3c.github.io/mediacapture-screen-share/#dom-displaymediastreamoptions-windowaudio", "tags": [ "web-features:screen-capture" ], "support": { "chrome": { "version_added": "141", "partial_implementation": true, "notes": [ "Defaults to `\"system\"`.", "Only supports values `\"exclude\"` and `\"system\"`, not `\"window\"`." ] }, "chrome_android": { "version_added": false }, "edge": { "version_added": "141", "version_removed": "143", "partial_implementation": true, "notes": [ "Defaults to `\"system\"`. Before Edge 142, it defaulted to `\"exclude\"`.", "Only supports values `\"exclude\"` and `\"system\"`, not `\"window\"`." ] }, "firefox": { "version_added": false }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": false }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": true, "standard_track": true, "deprecated": false } } } }, "getSupportedConstraints": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaDevices/getSupportedConstraints", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediadevices-getsupportedconstraints", "tags": [ "web-features:media-capture" ], "support": { "chrome": { "version_added": "53" }, "chrome_android": { "version_added": "52" }, "edge": { "version_added": "12" }, "firefox": { "version_added": "44" }, "firefox_android": { "version_added": "50" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "11" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": { "version_added": "53" }, "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } }, "return_object_property_aspectRatio": { "__compat": { "description": "`aspectRatio` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/aspectRatio", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-aspectratio", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "53" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": false }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "≤12.1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_autoGainControl": { "__compat": { "description": "`autoGainControl` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/autoGainControl", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-autogaincontrol", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "67" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": "55" }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": false }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_channelCount": { "__compat": { "description": "`channelCount` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/channelCount", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-channelcount", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "53" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": "56" }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": false }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_deviceId": { "__compat": { "description": "`deviceId` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/deviceId", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-deviceid", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "53" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": "44" }, "firefox_android": { "version_added": "50" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "≤12.1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_echoCancellation": { "__compat": { "description": "`echoCancellation` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/echoCancellation", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-echocancellation", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "53" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": "46" }, "firefox_android": { "version_added": "50" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "13.1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_facingMode": { "__compat": { "description": "`facingMode` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/facingMode", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-facingmode", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "53" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": "44" }, "firefox_android": { "version_added": "50" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "≤12.1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_frameRate": { "__compat": { "description": "`frameRate` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/frameRate", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-framerate", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "53" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": "44" }, "firefox_android": { "version_added": "50" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "≤12.1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_groupId": { "__compat": { "description": "`groupId` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/groupId", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-groupid", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "53" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": "70" }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "18.6" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_height": { "__compat": { "description": "`height` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/height", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-height", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "53" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": "44" }, "firefox_android": { "version_added": "50" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "≤12.1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_latency": { "__compat": { "description": "`latency` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/latency", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-latency", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "53" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": false }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": false }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_noiseSuppression": { "__compat": { "description": "`noiseSuppression` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/noiseSuppression", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-noisesuppression", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "67" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": "55" }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": false }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_resizeMode": { "__compat": { "description": "`resizeMode` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints#resizemode", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-resizemode", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "72" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": "144" }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": false }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_sampleRate": { "__compat": { "description": "`sampleRate` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/sampleRate", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-samplerate", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "53" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": false }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "18.6" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_sampleSize": { "__compat": { "description": "`sampleSize` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/sampleSize", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-samplesize", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "53" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": false }, "firefox_android": "mirror", "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "18.6" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } }, "return_object_property_width": { "__compat": { "description": "`width` property in returned object", "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaTrackConstraints/width", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediatrackconstraintset-width", "tags": [ "web-features:web-audio" ], "support": { "chrome": { "version_added": "53" }, "chrome_android": "mirror", "edge": "mirror", "firefox": { "version_added": "44" }, "firefox_android": { "version_added": "50" }, "oculus": "mirror", "opera": "mirror", "opera_android": "mirror", "safari": { "version_added": "≤12.1" }, "safari_ios": "mirror", "samsunginternet_android": "mirror", "webview_android": "mirror", "webview_ios": "mirror" }, "status": { "experimental": false, "standard_track": true, "deprecated": false } } } }, "getUserMedia": { "__compat": { "mdn_url": "https://developer.mozilla.org/docs/Web/API/MediaDevices/getUserMedia", "spec_url": "https://w3c.github.io/mediacapture-main/#dom-mediadevices-getusermedia", "tags": [ "web-features:media-capture" ], "support": { "chrome": { "version_added": "53", "notes": "If you need this capability before version 53, refer to `navigator.webkitGetUserMedia`, a prefixed form of the deprecated [`navigator.getUserMedia`](https://developer.mozilla.org/docs/Web/API/Navigator/getUserMedia) API." }, "chrome_android": "mirror", "edge": { "version_added": "12" }, "firefox": { "version_added": "36", "notes": [ "If you need this capability before version 36, refer to `navigator.mozGetUserMedia`, a prefixed form of the deprecated [`navigator.getUserMedia`](https://developer.mozilla.org/docs/Web/API/Navigator/getUserMedia) API.", "Before Firefox 55, `getUserMedia()` incorrectly returns `NotSupportedError` when the list of constraints specified is empty, or has all constraints set to `false`. Starting in Firefox 55, this situation now correctly calls the failure handler with a `TypeError`.", "When using the Firefox-specific `video` constraint called `mediaSource` to request display capture, Firefox 66 and later consider values of `screen` and `window` to both cause a list of screens _and_ windows to be shown.", "Starting in Firefox 66, `getUserMedia()` can no longer be used in sandboxed `