60 lines
2.1 KiB
HTML
60 lines
2.1 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<body>
|
|
<video id="video1" autoplay playsInline></video>
|
|
<video id="video2" autoplay playsInline style="visibility:hidden"></video>
|
|
<script src="../../resources/testharness.js"></script>
|
|
<script src="../../resources/testharnessreport.js"></script>
|
|
<script>
|
|
|
|
promise_test(async() => {
|
|
if (!window.internals)
|
|
return Promise.reject("Test requires internals API");
|
|
|
|
const stream = await navigator.mediaDevices.getUserMedia({video : true});
|
|
video1.srcObject = stream;
|
|
await video1.play();
|
|
|
|
assert_true(internals.isPlayerVisibleInViewport(video1), "video1");
|
|
}, "Check default media stream player visibility");
|
|
|
|
promise_test(async() => {
|
|
if (!window.internals)
|
|
return Promise.reject("Test requires internals API");
|
|
|
|
const stream = await navigator.mediaDevices.getUserMedia({video : true});
|
|
video2.srcObject = stream;
|
|
await video2.play();
|
|
|
|
assert_false(internals.isPlayerVisibleInViewport(video2), "video2");
|
|
|
|
video2.style.visibility = "visible";
|
|
await new Promise(resolve => setTimeout(resolve, 0));
|
|
assert_true(internals.isPlayerVisibleInViewport(video2), "video2 2");
|
|
|
|
video2.style.visibility = "hidden";
|
|
await new Promise(resolve => setTimeout(resolve, 0));
|
|
assert_false(internals.isPlayerVisibleInViewport(video2), "video2 3");
|
|
}, "Check media stream player visibility with CSS");
|
|
|
|
promise_test(async() => {
|
|
if (!window.internals)
|
|
return Promise.reject("Test requires internals API");
|
|
|
|
const video3 = document.createElement("video");
|
|
const stream = await navigator.mediaDevices.getUserMedia({video : true});
|
|
video3.srcObject = stream;
|
|
video3.playsInline = true;
|
|
await video3.play();
|
|
|
|
assert_false(internals.isPlayerVisibleInViewport(video3), "video3");
|
|
|
|
document.body.appendChild(video3);
|
|
await video3.play();
|
|
await new Promise(resolve => setTimeout(resolve, 0));
|
|
assert_false(internals.isPlayerVisibleInViewport(video3), "video3 2");
|
|
}, "Check media stream player visibility of unattached media element");
|
|
</script>
|
|
</body>
|
|
</html>
|