test_enumerateDevices_iframe.html (711B)
1 <!DOCTYPE HTML> 2 <html> 3 <body> 4 <pre id="test"> 5 <script type="application/javascript"> 6 /** 7 Runs inside iframe in test_enumerateDevices.html. 8 */ 9 10 const pushPrefs = (...p) => SpecialPowers.pushPrefEnv({set: p}); 11 const gUM = c => navigator.mediaDevices.getUserMedia(c); 12 13 (async () => { 14 await pushPrefs(["media.navigator.streams.fake", true]); 15 16 // Validate enumerated devices after gUM. 17 for (const track of (await gUM({video: true, audio: true})).getTracks()) { 18 track.stop(); 19 } 20 21 const devices = await navigator.mediaDevices.enumerateDevices(); 22 parent.postMessage(JSON.stringify(devices), "https://example.com:443"); 23 24 })().catch(e => setTimeout(() => { throw e; })); 25 </script> 26 </pre> 27 </body> 28 </html>