56 lines
1.9 KiB
HTML
56 lines
1.9 KiB
HTML
<!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>
|