blob: 2f9bd4466afb742dd83a0fd6f66063c91d00da90 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../video-test.js"></script>
<script src="../media-file.js"></script>
<style>
video {
color: rgb(0, 0, 255);
}
:picture-in-picture {
color: rgb(0, 255, 0);
}
/* illegal selector list */
video, :picture-in-picture(*) {
color: rgb(255, 0, 0);
}
</style>
<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');
testExpected('getComputedStyle(video).color', 'rgb(0, 0, 255)');
runWithKeyDown(() => {
video.requestPictureInPicture();
});
await waitFor(video, 'enterpictureinpicture');
testExpected('getComputedStyle(video).color', 'rgb(0, 255, 0)');
document.exitPictureInPicture();
await waitFor(video, 'leavepictureinpicture');
testExpected('getComputedStyle(video).color', 'rgb(0, 0, 255)');
endTest();
});
</script>
</head>
<body>
<div>This tests that entering and leaving Picture-in-Picture toggles CSS selector.</div>
<video controls></video>
</body>
</html>