blob: c2b5d6c1c63598d41c4d9a5caa027b4154813355 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="video-test.js"></script>
<script src="media-file.js"></script>
<script>
var eventCount = 0;
function go()
{
if (window.internals) {
internals.settings.setAllowsPictureInPictureMediaPlayback(true);
internals.setMockVideoPresentationModeEnabled(true);
}
findMediaElement();
run('video.src = findMediaFile("video", "content/test")');
waitForEventOnce('canplaythrough', canPlayThrough);
}
function canPlayThrough()
{
runWithKeyDown('video.play()');
runWithKeyDown('video.webkitSetPresentationMode("picture-in-picture")');
waitForEventOnce("webkitpresentationmodechanged", presentationModeChanged1);
}
async function presentationModeChanged1()
{
await testExpectedEventually("internals.isChangingPresentationMode(video)", false);
testExpected("video.webkitPresentationMode", "picture-in-picture");
runWithKeyDown('video.webkitSetPresentationMode("inline")');
waitForEvent("webkitpresentationmodechanged", presentationModeChanged2);
}
function presentationModeChanged2()
{
switch (++eventCount)
{
case 1:
testExpected("video.webkitPresentationMode", "inline");
setTimeout(endTest, 200);
break;
default:
failTest("'webkitpresentationmodechanged' event fired again");
break;
}
}
</script>
</head>
<body onload="go()">
<div>This tests that the "webkitpresentationmodechanged" event is fired only once when the browser switches back to inline from the picture-in-picture mode.</div>
<video controls></video>
</body>
</html>