blob: c754aeb3807e190b8d8b01cc70d76f953b1591e6 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>Test element containing pip video going into fullscreen should exit pip</title>
<script src="media-file.js"></script>
<script src="video-test.js"></script>
<script>
if (window.internals) {
window.internals.settings.setAllowsPictureInPictureMediaPlayback(true);
internals.setMockVideoPresentationModeEnabled(true);
}
var enteredFullscreen = false;
var exitedPIP = false;
function init()
{
findMediaElement();
video.addEventListener('canplaythrough', oncanplaythrough);
video.src = findMediaFile('video', 'content/test');
}
function oncanplaythrough()
{
if (!('webkitSupportsPresentationMode' in video && 'webkitPresentationMode' in video)) {
failTest("Presentation mode is not supported in this video element.")
return;
}
consoleWrite("Video going into Picture-in-Picture");
video.addEventListener('webkitpresentationmodechanged', onfirstpresentationmodechanged);
runWithKeyDown(function(){ video.webkitSetPresentationMode('picture-in-picture'); });
}
async function onfirstpresentationmodechanged()
{
if (window.internals)
await testExpectedEventually("internals.isChangingPresentationMode(video)", false);
testExpected("video.webkitPresentationMode", "picture-in-picture");
video.removeEventListener('webkitpresentationmodechanged', onfirstpresentationmodechanged);
consoleWrite("Element containing picture-in-picture video going into Full Screen");
videoContainer.addEventListener('webkitfullscreenchange', onfullscreenchange);
video.addEventListener('webkitpresentationmodechanged', onsecondpresentationmodechanged);
runWithKeyDown(function(){ videoContainer.webkitRequestFullscreen(); });
}
function onfullscreenchange()
{
enteredFullscreen = true;
if (exitedPIP)
checkFinalState();
}
function onsecondpresentationmodechanged()
{
exitedPIP = true;
if (enteredFullscreen)
checkFinalState();
}
async function checkFinalState()
{
if (window.internals)
await testExpectedEventually("internals.isChangingPresentationMode(video)", false);
testExpected("document.webkitCurrentFullScreenElement", videoContainer);
testExpected("video.webkitPresentationMode", "inline");
endTest();
}
</script>
</head>
<body onload="init()">
Tests pip video going into fullscreen should exit pip<br>
<div id="videoContainer">
<video controls></video>
</div>
</body>
</html>