blob: 308dc9ee71bcb3af7b10d4185172e01c11d4005f [file] [log] [blame]
<!doctype html>
<html>
<head>
<title>enumerateDevices: test that enumerateDevices() returns the same result on
a same-origin iframe.
</title>
</head>
<body>
<h1 class="instructions">Description</h1>
<p class="instructions">This test checks that the result of the
<code>navigator.mediaDevices.enumerateDevices()</code> method on a same-origin
iframe matches the results on the main frame.</p>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
var t = async_test(
"Result of enumerateDevices() on an iframe matches that of the main frame",
{timeout: 4000});
var iframe = document.createElement('iframe');
window.onmessage = t.step_func(event => {
if (event.source != iframe.contentWindow)
return;
var iframe_devices = JSON.parse(event.data);
navigator.mediaDevices.enumerateDevices().then(main_devices => {
assert_equals(main_devices.length, iframe_devices.length);
for (var i = 0; i < main_devices.length; i++) {
assert_not_equals(main_devices[i].groupId, iframe_devices[i].groupId);
assert_equals(main_devices[i].kind, iframe_devices[i].kind);
assert_equals(main_devices[i].label, iframe_devices[i].label);
}
t.done();
});
});
iframe.src = "resources/MediaDevices-enumerateDevices-iframe-child.html";
document.body.appendChild(iframe);
</script>
</body>
</html>