mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-03 17:58:55 +02:00
Mozilla will usually run enumerateDevices-permissions-policy.https.html without media.navigator.streams.fake because fake input devices are in different groups to the output devices. The exception is Mozilla's Mac test machines because they have no real audio input device. With fake input devices, there are no exposed output devices to test. Differential Revision: https://phabricator.services.mozilla.com/D119865
32 lines
1.2 KiB
HTML
32 lines
1.2 KiB
HTML
<!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>
|