WPT
wpt / mediacapture-streams / idlharness.https.window.html
Spec: Media Capture and Streams ↗
Runs: Chrome 155.0.8039.0 (wpt@6ec9fd59f, 2026-09-03) | Firefox 157.0a1 (wpt@6ec9fd59f, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-795e1 (wpt@7e3d005d7, 2026-09-03) | Servo Servo 0.6 (wpt@09159dcb3, 2026-09-02) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 186/194 | 155/194 | 178/194 | 102/194 | 49/194 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| idl_test setup | PASS | PASS | PASS | PASS | PASS | — |
| idl_test validation | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Navigator: original interface defined | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Navigator: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface MediaDevices: original interface defined | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface MediaDevices: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Navigator[2]: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface mixin NavigatorID: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorID: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorLanguage: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorOnLine: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorContentUtils: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorCookies: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorPlugins: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorConcurrentHardware: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface object length | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface object name | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: attribute id | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStream interface: operation getAudioTracks() | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: operation getVideoTracks() | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: operation getTracks() | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: operation getTrackById(DOMString) | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: operation addTrack(MediaStreamTrack) | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: operation removeTrack(MediaStreamTrack) | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: operation clone() | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: attribute active | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStream interface: attribute onaddtrack | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStream interface: attribute onremovetrack | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStream must be primary interface of stream | PASS | PASS | PASS | FAIL | FAIL | — |
| Stringification of stream | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: stream must inherit property "id" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: stream must inherit property "getAudioTracks()" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: stream must inherit property "getVideoTracks()" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: stream must inherit property "getTracks()" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: stream must inherit property "getTrackById(DOMString)" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: calling getTrackById(DOMString) on stream with too few arguments must throw TypeError | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: stream must inherit property "addTrack(MediaStreamTrack)" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: calling addTrack(MediaStreamTrack) on stream with too few arguments must throw TypeError | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: stream must inherit property "removeTrack(MediaStreamTrack)" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: calling removeTrack(MediaStreamTrack) on stream with too few arguments must throw TypeError | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: stream must inherit property "clone()" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: stream must inherit property "active" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: stream must inherit property "onaddtrack" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream interface: stream must inherit property "onremovetrack" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStream must be primary interface of new MediaStream() | PASS | PASS | PASS | PASS | PASS | — |
| Stringification of new MediaStream() | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: new MediaStream() must inherit property "id" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStream interface: new MediaStream() must inherit property "getAudioTracks()" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: new MediaStream() must inherit property "getVideoTracks()" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: new MediaStream() must inherit property "getTracks()" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: new MediaStream() must inherit property "getTrackById(DOMString)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: calling getTrackById(DOMString) on new MediaStream() with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: new MediaStream() must inherit property "addTrack(MediaStreamTrack)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: calling addTrack(MediaStreamTrack) on new MediaStream() with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: new MediaStream() must inherit property "removeTrack(MediaStreamTrack)" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: calling removeTrack(MediaStreamTrack) on new MediaStream() with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: new MediaStream() must inherit property "clone()" with the proper type | PASS | PASS | PASS | PASS | PASS | — |
| MediaStream interface: new MediaStream() must inherit property "active" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStream interface: new MediaStream() must inherit property "onaddtrack" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStream interface: new MediaStream() must inherit property "onremovetrack" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrack interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| MediaStreamTrack interface object length | PASS | PASS | PASS | PASS | PASS | — |
| MediaStreamTrack interface object name | PASS | PASS | PASS | PASS | PASS | — |
| MediaStreamTrack interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS | PASS | — |
| MediaStreamTrack interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS | PASS | — |
| MediaStreamTrack interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS | PASS | — |
| MediaStreamTrack interface: attribute kind | PASS | PASS | PASS | PASS | PASS | — |
| MediaStreamTrack interface: attribute id | PASS | PASS | PASS | PASS | PASS | — |
| MediaStreamTrack interface: attribute label | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrack interface: attribute enabled | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrack interface: attribute muted | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrack interface: attribute onmute | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: attribute onunmute | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: attribute readyState | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrack interface: attribute onended | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: operation clone() | PASS | PASS | PASS | FAIL | PASS | — |
| MediaStreamTrack interface: operation stop() | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrack interface: operation getCapabilities() | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrack interface: operation getConstraints() | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrack interface: operation getSettings() | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrack interface: operation applyConstraints(optional MediaTrackConstraints) | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrack must be primary interface of track | PASS | PASS | PASS | FAIL | FAIL | — |
| Stringification of track | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "kind" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "id" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "label" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "enabled" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "muted" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "onmute" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "onunmute" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "readyState" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "onended" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "clone()" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "stop()" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "getCapabilities()" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "getConstraints()" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "getSettings()" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: track must inherit property "applyConstraints(optional MediaTrackConstraints)" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrack interface: calling applyConstraints(optional MediaTrackConstraints) on track with too few arguments must throw TypeError | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrackEvent interface: existence and properties of interface object | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrackEvent interface object length | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrackEvent interface object name | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrackEvent interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrackEvent interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrackEvent interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrackEvent interface: attribute track | PASS | PASS | PASS | PASS | FAIL | — |
| MediaStreamTrackEvent must be primary interface of trackEvent | PASS | PASS | PASS | FAIL | FAIL | — |
| Stringification of trackEvent | PASS | PASS | PASS | FAIL | FAIL | — |
| MediaStreamTrackEvent interface: trackEvent must inherit property "track" with the proper type | PASS | PASS | PASS | FAIL | FAIL | — |
| OverconstrainedError interface: existence and properties of interface object | PASS | FAIL | PASS | FAIL | FAIL | — |
| OverconstrainedError interface object length | PASS | FAIL | PASS | FAIL | FAIL | — |
| OverconstrainedError interface object name | PASS | FAIL | PASS | FAIL | FAIL | — |
| OverconstrainedError interface: existence and properties of interface prototype object | PASS | FAIL | PASS | FAIL | FAIL | — |
| OverconstrainedError interface: existence and properties of interface prototype object's "constructor" property | PASS | FAIL | PASS | FAIL | FAIL | — |
| OverconstrainedError interface: existence and properties of interface prototype object's @@unscopables property | PASS | FAIL | PASS | FAIL | FAIL | — |
| OverconstrainedError interface: attribute constraint | PASS | FAIL | PASS | FAIL | FAIL | — |
| OverconstrainedError must be primary interface of new OverconstrainedError("constraint") | PASS | FAIL | PASS | FAIL | FAIL | — |
| Stringification of new OverconstrainedError("constraint") | PASS | FAIL | PASS | FAIL | FAIL | — |
| OverconstrainedError interface: new OverconstrainedError("constraint") must inherit property "constraint" with the proper type | PASS | FAIL | PASS | FAIL | FAIL | — |
| MediaDevices interface: existence and properties of interface object | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface object length | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface object name | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface: attribute ondevicechange | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface: operation enumerateDevices() | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface: operation getSupportedConstraints() | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface: operation getUserMedia(optional MediaStreamConstraints) | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices must be primary interface of navigator.mediaDevices | PASS | PASS | PASS | PASS | FAIL | — |
| Stringification of navigator.mediaDevices | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface: navigator.mediaDevices must inherit property "ondevicechange" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface: navigator.mediaDevices must inherit property "enumerateDevices()" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface: navigator.mediaDevices must inherit property "getSupportedConstraints()" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface: navigator.mediaDevices must inherit property "getUserMedia(optional MediaStreamConstraints)" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDevices interface: calling getUserMedia(optional MediaStreamConstraints) on navigator.mediaDevices with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDeviceInfo interface: existence and properties of interface object | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDeviceInfo interface object length | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDeviceInfo interface object name | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDeviceInfo interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDeviceInfo interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDeviceInfo interface: attribute deviceId | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDeviceInfo interface: attribute kind | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDeviceInfo interface: attribute label | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDeviceInfo interface: attribute groupId | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDeviceInfo interface: operation toJSON() | PASS | PASS | PASS | PASS | FAIL | — |
| MediaDeviceInfo must be primary interface of audiooutput | PASS | — | — | — | — | — |
| Stringification of audiooutput | PASS | — | — | — | — | — |
| MediaDeviceInfo interface: audiooutput must inherit property "deviceId" with the proper type | PASS | — | — | — | — | — |
| MediaDeviceInfo interface: audiooutput must inherit property "kind" with the proper type | PASS | — | — | — | — | — |
| MediaDeviceInfo interface: audiooutput must inherit property "label" with the proper type | PASS | — | — | — | — | — |
| MediaDeviceInfo interface: audiooutput must inherit property "groupId" with the proper type | PASS | — | — | — | — | — |
| MediaDeviceInfo interface: audiooutput must inherit property "toJSON()" with the proper type | PASS | — | — | — | — | — |
| MediaDeviceInfo interface: default toJSON operation on audiooutput | PASS | — | — | — | — | — |
| InputDeviceInfo interface: existence and properties of interface object | PASS | FAIL | PASS | FAIL | FAIL | — |
| InputDeviceInfo interface object length | PASS | FAIL | PASS | FAIL | FAIL | — |
| InputDeviceInfo interface object name | PASS | FAIL | PASS | FAIL | FAIL | — |
| InputDeviceInfo interface: existence and properties of interface prototype object | PASS | FAIL | PASS | FAIL | FAIL | — |
| InputDeviceInfo interface: existence and properties of interface prototype object's "constructor" property | PASS | FAIL | PASS | FAIL | FAIL | — |
| InputDeviceInfo interface: existence and properties of interface prototype object's @@unscopables property | PASS | FAIL | PASS | FAIL | FAIL | — |
| InputDeviceInfo interface: operation getCapabilities() | PASS | FAIL | PASS | FAIL | FAIL | — |
| InputDeviceInfo must be primary interface of audioinput | PASS | FAIL | PASS | — | — | — |
| Stringification of audioinput | PASS | FAIL | PASS | — | — | — |
| InputDeviceInfo interface: audioinput must inherit property "getCapabilities()" with the proper type | PASS | FAIL | PASS | — | — | — |
| MediaDeviceInfo interface: audioinput must inherit property "deviceId" with the proper type | PASS | PASS | PASS | — | — | — |
| MediaDeviceInfo interface: audioinput must inherit property "kind" with the proper type | PASS | PASS | PASS | — | — | — |
| MediaDeviceInfo interface: audioinput must inherit property "label" with the proper type | PASS | PASS | PASS | — | — | — |
| MediaDeviceInfo interface: audioinput must inherit property "groupId" with the proper type | PASS | PASS | PASS | — | — | — |
| MediaDeviceInfo interface: audioinput must inherit property "toJSON()" with the proper type | PASS | PASS | PASS | — | — | — |
| MediaDeviceInfo interface: default toJSON operation on audioinput | PASS | PASS | PASS | — | — | — |
| InputDeviceInfo must be primary interface of videoinput | PASS | FAIL | PASS | — | — | — |
| Stringification of videoinput | PASS | FAIL | PASS | — | — | — |
| InputDeviceInfo interface: videoinput must inherit property "getCapabilities()" with the proper type | PASS | FAIL | PASS | — | — | — |
| MediaDeviceInfo interface: videoinput must inherit property "deviceId" with the proper type | PASS | PASS | PASS | — | — | — |
| MediaDeviceInfo interface: videoinput must inherit property "kind" with the proper type | PASS | PASS | PASS | — | — | — |
| MediaDeviceInfo interface: videoinput must inherit property "label" with the proper type | PASS | PASS | PASS | — | — | — |
| MediaDeviceInfo interface: videoinput must inherit property "groupId" with the proper type | PASS | PASS | PASS | — | — | — |
| MediaDeviceInfo interface: videoinput must inherit property "toJSON()" with the proper type | PASS | PASS | PASS | — | — | — |
| MediaDeviceInfo interface: default toJSON operation on videoinput | PASS | PASS | PASS | — | — | — |
| DeviceChangeEvent interface: existence and properties of interface object | FAIL | FAIL | FAIL | FAIL | FAIL | — |
| DeviceChangeEvent interface object length | FAIL | FAIL | FAIL | FAIL | FAIL | — |
| DeviceChangeEvent interface object name | FAIL | FAIL | FAIL | FAIL | FAIL | — |
| DeviceChangeEvent interface: existence and properties of interface prototype object | FAIL | FAIL | FAIL | FAIL | FAIL | — |
| DeviceChangeEvent interface: existence and properties of interface prototype object's "constructor" property | FAIL | FAIL | FAIL | FAIL | FAIL | — |
| DeviceChangeEvent interface: existence and properties of interface prototype object's @@unscopables property | FAIL | FAIL | FAIL | FAIL | FAIL | — |
| DeviceChangeEvent interface: attribute devices | FAIL | FAIL | FAIL | FAIL | FAIL | — |
| DeviceChangeEvent interface: attribute userInsertedDevices | FAIL | FAIL | FAIL | FAIL | FAIL | — |
| Navigator interface: attribute mediaDevices | PASS | PASS | PASS | PASS | FAIL | — |
| Navigator interface: navigator must inherit property "mediaDevices" with the proper type | PASS | PASS | PASS | PASS | FAIL | — |