blob: f105c8550c9052978420d4f5522347f2a64abf13 [file] [log] [blame]
<!doctype html>
<html>
<head>
<script src=media-file.js></script>
<script src=video-test.js></script>
<script>
function start()
{
if (window.internals) {
internals.settings.setAllowsPictureInPictureMediaPlayback(true);
internals.setMockVideoPresentationModeEnabled(true);
}
video = document.getElementsByTagName('video')[0];
waitForEventOnce("canplaythrough", canplaythrough);
video.src = findMediaFile("video", "content/test");
consoleWrite("");
}
async function canplaythrough()
{
testExpected("video.webkitSupportsFullscreen", true);
testExpected("video.webkitPresentationMode", "inline");
consoleWrite("<br>** Try to enter fullscreen");
runWithKeyDown("video.webkitSetPresentationMode('fullscreen')");
waitForEventOnce('webkitpresentationmodechanged', presentationModeChanged1);
}
async function presentationModeChanged1()
{
consoleWrite("<br>** Received webkitpresentationmodechanged event");
await testExpectedEventually("internals.isChangingPresentationMode(video)", false);
testExpected("video.webkitPresentationMode", "fullscreen");
consoleWrite("<br>** Try to enter picture-in-picture");
waitForEventOnce('webkitpresentationmodechanged', presentationModeChanged2);
runWithKeyDown("video.webkitSetPresentationMode('picture-in-picture')");
}
async function presentationModeChanged2()
{
consoleWrite("<br>** Received webkitpresentationmodechanged event");
await testExpectedEventually("internals.isChangingPresentationMode(video)", false);
testExpected("video.webkitPresentationMode", "picture-in-picture");
consoleWrite("<br>** Try to return to inline");
waitForEventOnce('webkitpresentationmodechanged', testCompleted);
runWithKeyDown("video.webkitSetPresentationMode('inline')");
}
async function testCompleted()
{
consoleWrite("<br>** Received webkitpresentationmodechanged event");
await testExpectedEventually("internals.isChangingPresentationMode(video)", false);
testExpected("video.webkitPresentationMode", "inline");
consoleWrite("<br>** Test Completed");
endTest();
}
</script>
</head>
<body onload="start()">
<video controls playsinline></video>
<p>Test the video presentation mode (video fullscreen and picture-in-picture) API.</p>
</body>
</html>