| // META: script=/resources/WebIDLParser.js |
| // META: script=/resources/idlharness.js |
| |
| 'use strict'; |
| |
| // https://w3c.github.io/mediacapture-main/ |
| |
| idl_test( |
| ['mediacapture-streams'], |
| ['dom', 'html'], |
| async idl_array => { |
| const inputDevices = []; |
| const outputDevices = []; |
| try { |
| const list = await navigator.mediaDevices.enumerateDevices(); |
| for (const device of list) { |
| if (device.kind in self) { |
| continue; |
| } |
| assert_in_array(device.kind, ['audioinput', 'videoinput', 'audiooutput']); |
| self[device.kind] = device; |
| if (device.kind.endsWith('input')) { |
| inputDevices.push(device.kind); |
| } else { |
| outputDevices.push(device.kind); |
| } |
| } |
| } catch (e) {} |
| |
| try { |
| self.stream = await navigator.mediaDevices.getUserMedia({audio: true}); |
| self.track = stream.getTracks()[0]; |
| self.trackEvent = new MediaStreamTrackEvent("type", { |
| track: track, |
| }); |
| } catch (e) {} |
| |
| idl_array.add_objects({ |
| InputDeviceInfo: inputDevices, |
| MediaStream: ['stream', 'new MediaStream()'], |
| Navigator: ['navigator'], |
| MediaDevices: ['navigator.mediaDevices'], |
| MediaDeviceInfo: outputDevices, |
| MediaStreamTrack: ['track'], |
| MediaStreamTrackEvent: ['trackEvent'], |
| }); |
| } |
| ); |