| <!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> |