blob: 041b84ba067ca6677bb60fc8fd666fe4657972f9 [file] [log] [blame]
<html>
<head>
<script src=media-file.js></script>
<script src=video-test.js></script>
<script>
var state = 0;
var retryCount = 0;
const maxRetryCount = 10;
function checkState()
{
switch (state) {
case "background":
if (!video.paused) {
if (++retryCount >= maxRetryCount)
failTest(`Video did not pause after switching to backgound.`);
else
setTimeout(checkState, 100);
return;
}
testExpected("video.paused", true);
state = "foreground";
consoleWrite("<br>** Simulate switch back to foreground, video should remain paused.");
run("internals.applicationWillEnterForeground()");
setTimeout(checkState, 100);
consoleWrite("");
break;
case "foreground":
testExpected("video.paused", true);
consoleWrite("");
testRunner.resetPageVisibility();
endTest();
break;
}
}
function playing(evt)
{
consoleWrite("<br>** Simulate switching the tab to background, video should pause.");
run("testRunner.setPageVisibility('hidden')");
setTimeout(checkState, 100);
state = "background";
consoleWrite("");
}
function canplaythrough(evt)
{
consoleWrite("");
run("video.play()");
}
function start()
{
if (!window.internals) {
failTest('This test requires window.internals.');
return;
}
findMediaElement();
video.src = findMediaFile("video", "content/test");
waitForEvent('canplaythrough', canplaythrough);
waitForEvent('playing', playing);
run("internals.setMediaSessionRestrictions('videoaudio', 'BackgroundTabPlaybackRestricted')");
state = "foreground";
consoleWrite("");
}
</script>
</head>
<body onload="start()">
<video controls></video>
<p>Test tab with &lt;video&gt; moving to background when playback is not allowed in background.</p>
</body>
</html>