55 lines
2.0 KiB
HTML
55 lines
2.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>playlist-inherits-user-gesture</title>
|
|
<script src=media-file.js></script>
|
|
<script src=video-test.js></script>
|
|
<script>
|
|
async function runTest() {
|
|
consoleWrite("** Start first video with user gesture.")
|
|
if (window.internals)
|
|
run('window.internals.settings.setVideoPlaybackRequiresUserGesture(true);');
|
|
run('video1 = document.createElement("video")');
|
|
run('video1.src = findMediaFile("video", "content/test")');
|
|
video1.controls = 1;
|
|
run('document.body.appendChild(video1)');
|
|
|
|
if (window.internals)
|
|
testExpected("window.internals.pageMediaState().includes('HasUserInteractedWithMediaElement')", false);
|
|
runWithKeyDown(() => {
|
|
run('video1.play()');
|
|
});
|
|
if (window.internals)
|
|
testExpected("window.internals.pageMediaState().includes('HasUserInteractedWithMediaElement')", true)
|
|
|
|
await waitFor(video1, 'playing');
|
|
run('video1.currentTime = video1.duration - 0.2');
|
|
await waitFor(video1, 'ended');
|
|
|
|
consoleWrite("<br>** Start second video without user gesture but within inheritance window, should succeed.")
|
|
run('video2 = document.createElement("video")');
|
|
run('video2.src = findMediaFile("video", "content/test")');
|
|
video2.controls = 1;
|
|
run('document.body.appendChild(video2)');
|
|
|
|
await shouldResolve(video2.play());
|
|
run('video2.currentTime = video2.duration - 0.2');
|
|
await waitFor(video2, 'ended');
|
|
|
|
consoleWrite("<br>** Start third video without user gesture but after inheritance window, should fail.")
|
|
await sleepFor(1200);
|
|
run('video3 = document.createElement("video")');
|
|
run('video3.src = findMediaFile("video", "content/test")');
|
|
video3.controls = 1;
|
|
run('document.body.appendChild(video3)');
|
|
|
|
await shouldReject(video3.play());
|
|
|
|
endTest();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
</body>
|
|
</html>
|