66 lines
2.8 KiB
HTML
66 lines
2.8 KiB
HTML
<!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> |