50 lines
1.9 KiB
HTML
50 lines
1.9 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<script src="../../resources/testharness.js"></script>
|
|
<script src="../../resources/testharnessreport.js"></script>
|
|
<script>
|
|
|
|
promise_test(async (test) => {
|
|
|
|
const originalLabel = "WebKit's AirPods";
|
|
const anonymizedLabel = "AirPods";
|
|
|
|
if (window.testRunner) {
|
|
testRunner.setUserMediaPermission(true);
|
|
testRunner.addMockMicrophoneDevice("id-1", originalLabel);
|
|
}
|
|
|
|
let devices = await navigator.mediaDevices.enumerateDevices();
|
|
for (const device of devices)
|
|
assert_false(!!device.label.length, "navigator.mediaDevices revealed device name before getUserMedia()");
|
|
|
|
let stream = await navigator.mediaDevices.getUserMedia({ audio:true, video:true })
|
|
|
|
for (const track of stream.getAudioTracks()) {
|
|
assert_false(track.label == originalLabel, "navigator.mediaDevices did not anonymize audio track label at all");
|
|
if (track.label.indexOf("AirPods") != -1)
|
|
assert_true(track.label == anonymizedLabel, "navigator.mediaDevices did not anonymize audio track label correctly");
|
|
}
|
|
|
|
devices = await navigator.mediaDevices.enumerateDevices();
|
|
const microphones = devices.filter(({kind}) => kind == "audioinput");
|
|
for (const microphone of microphones) {
|
|
const { kind, label, deviceId } = microphone;
|
|
if (kind != "audioinput")
|
|
continue;
|
|
|
|
assert_false(label == originalLabel, "navigator.mediaDevices did not anonymize microphone label at all");
|
|
if (label.indexOf("AirPods") != -1)
|
|
assert_true(label == anonymizedLabel, "navigator.mediaDevices did not anonymize microphone label correctly");
|
|
}
|
|
|
|
}, "enumerateDevices() anonymizes microphone and track labels correctly");
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
</body>
|
|
</html>
|