blob: a16769ad489877743ef69bef68c4b161445a9585 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../video-test.js"></script>
<script src="../media-file.js"></script>
<script>
window.addEventListener('load', async event => {
if (!window.internals) {
failTest('This test requires window.internals.');
return;
}
findMediaElement();
run('internals.settings.setAllowsPictureInPictureMediaPlayback(true)');
run('internals.setMockVideoPresentationModeEnabled(true)');
run('video.src = findMediaFile("video", "../content/test")');
await waitFor(video, 'canplaythrough');
runWithKeyDown(() => {
video.requestPictureInPicture();
});
waitForEventOnce('enterpictureinpicture', event => {
window.pipWindow = event.pictureInPictureWindow;
testExpected('pipWindow.width', 0, '>');
testExpected('pipWindow.height', 0, '>');
document.exitPictureInPicture();
waitForEventOnce('leavepictureinpicture', event => {
window.pipWindow1 = event.pictureInPictureWindow;
testExpected('pipWindow == pipWindow1', true);
endTest();
});
});
});
</script>
</head>
<body>
<div>This tests that events are fired correctly when a video element enters and exits the Picture-in-Picture mode.</div>
<video controls></video>
</body>
</html>