blob: 9f9ff7670a88f7a05fd00dfb94ce941ee70b3389 [file] [log] [blame]
<html>
<head>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
if (window.internals)
internals.settings.setInvisibleAutoplayNotPermitted(true);
</script>
</head>
<body>
<video id="localVideo1" controls autoplay></video>
<video id="localVideo2" controls autoplay></video>
<script>
async function waitForPlay(video)
{
if (!video.paused)
return;
return new Promise(resolve => { video.onplay = resolve; });
}
async function waitForPause(video)
{
if (video.paused)
return;
return new Promise(resolve => { video.onpause = resolve; });
}
promise_test(async () => {
const stream = await navigator.mediaDevices.getUserMedia({ video: true });
localVideo1.srcObject = stream;
localVideo2.srcObject = stream;
await Promise.all([waitForPlay(localVideo1), waitForPlay(localVideo2)]);
localVideo1.style.display = "none";
localVideo2.style.display = "none";
await Promise.all([waitForPause(localVideo1), waitForPause(localVideo2)]);
if (!window.internals)
return;
internals.withUserGesture(() => {
localVideo2.srcObject = stream;
});
localVideo1.style.removeProperty("display");
localVideo2.style.removeProperty("display");
await Promise.all([waitForPlay(localVideo1), waitForPlay(localVideo2)]);
}, "Removing behavior restrictions should not disallow invisible uninterruption");
</script>
</body>
</html>