| <!DOCTYPE html> | |
| <head> | |
| <title> | |
| Test permissions policy on enumerateDevices() after getUserMedia() | |
| </title> | |
| <link rel="help" href="https://w3c.github.io/mediacapture-output/#privacy-obtaining-consent"> | |
| <meta charset=utf-8> | |
| <body> | |
| <p class="instructions">If prompted, <strong>please allow</strong> access to | |
| a microphone device.</p> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="/common/get-host-info.sub.js"></script> | |
| <script src="/permissions-policy/resources/permissions-policy.js"></script> | |
| <script> | |
| 'use strict'; | |
| promise_test(async () => { | |
| const frame = document.createElement('iframe'); | |
| frame.allow = "speaker-selection 'none'" | |
| const promise_load = new Promise(r => frame.onload = r); | |
| document.body.appendChild(frame); | |
| await promise_load; | |
| const fDevices = frame.contentWindow.navigator.mediaDevices; | |
| await fDevices.getUserMedia({ audio: true }); | |
| const list = await fDevices.enumerateDevices(); | |
| const outputDevicesList = list.filter(({kind}) => kind == "audiooutput"); | |
| assert_equals(outputDevicesList.length, 0, "number of output devices."); | |
| }, "permissions policy on enumerateDevices() after getUserMedia()"); | |
| </script> | |
| </body> |