blob: f497cd5054150c3a6ddbd06e654fde6ebd1c4734 [file] [edit]
<!DOCTYPE html>
<html>
<head>
<script src='media-file.js'></script>
<script src='video-test.js'></script>
<script>
let usage;
function enterFullscreen(element)
{
let changed = waitFor(document, 'webkitfullscreenchange');
runWithKeyDown(() => { element.webkitRequestFullscreen(); });
return changed;
}
function exitFullscreen()
{
let changed = waitFor(document, 'webkitfullscreenchange');
run('document.webkitExitFullscreen()');
return changed;
}
window.addEventListener('load', async event => {
if (!window.internals) {
failTest(`<br>This test requires internals!`);
return;
}
findMediaElement();
video.src = findMediaFile("video", "content/test");
await waitFor(video, 'canplaythrough');
consoleWrite("<br>** No element is fullscreen: video is not 'outside of fullscreen'.")
usage = internals.mediaUsageState(video);
testExpected('usage.outsideOfFullscreen', false);
consoleWrite("<br>** A sibling element is fullscreen: video is outside of fullscreen.")
await enterFullscreen(document.getElementById('sibling'));
usage = internals.mediaUsageState(video);
testExpected('usage.outsideOfFullscreen', true);
await exitFullscreen();
consoleWrite("<br>** The video's container is fullscreen: video is inside fullscreen.")
await enterFullscreen(document.getElementById('container'));
usage = internals.mediaUsageState(video);
testExpected('usage.outsideOfFullscreen', false);
await exitFullscreen();
endTest();
});
</script>
</head>
<body>
<div id="sibling">Sibling element that does not contain the video.</div>
<div id="container"><video controls></video></div>
<p>Test that MediaUsageInfo::outsideOfFullscreen reflects whether the media element is outside the fullscreen element.</p>
</body>
</html>