80 lines
2.4 KiB
HTML
80 lines
2.4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>restricted-audio-playback-with-document-gesture</title>
|
|
<script src=media-file.js></script>
|
|
<script src=video-test.js></script>
|
|
|
|
<script>
|
|
function runTest()
|
|
{
|
|
next();
|
|
}
|
|
|
|
function next() {
|
|
if (!tests.length) {
|
|
endTest()
|
|
return;
|
|
}
|
|
|
|
mediaElement = document.createElement('audio');
|
|
if (window.internals)
|
|
internals.setMediaElementRestrictions(mediaElement, "RequireUserGestureForAudioRateChange");
|
|
|
|
var nextTest = tests.shift();
|
|
consoleWrite('');
|
|
run("mediaElement.src = findMediaFile('audio', 'content/test')");
|
|
waitForEvent('canplaythrough', event => { runWithKeyDown(nextTest) });
|
|
}
|
|
|
|
var tests = [
|
|
function() {
|
|
consoleWrite('Test > 1s in single step');
|
|
consoleWrite('setTimeout 1, 1.1s');
|
|
setTimeout(() => {
|
|
run("shouldReject(mediaElement.play()).then(next, next)");
|
|
}, 1100);
|
|
},
|
|
|
|
|
|
function() {
|
|
consoleWrite('Test > 1s in multiple steps');
|
|
consoleWrite('setTimeout 1, 0.6s');
|
|
setTimeout(() => {
|
|
consoleWrite('setTimeout 1, 0.6s');
|
|
setTimeout(() => {
|
|
run("shouldReject(mediaElement.play()).then(next, next)");
|
|
}, 600);
|
|
}, 600);
|
|
},
|
|
|
|
function() {
|
|
consoleWrite('Test < 1s total.')
|
|
consoleWrite('setTimeout 1, 0.1s');
|
|
setTimeout(() => {
|
|
consoleWrite('setTimeout 2, 0.1s');
|
|
setTimeout(() => {
|
|
consoleWrite('setTimeout 3, 0.1s');
|
|
setTimeout(() => {
|
|
consoleWrite('setTimeout 4, 0.1s');
|
|
setTimeout(() => {
|
|
consoleWrite('setTimeout 5, 0.1s');
|
|
setTimeout(() => {
|
|
run("shouldResolve(mediaElement.play()).then(next, next)");
|
|
}, 100);
|
|
}, 100);
|
|
}, 100);
|
|
}, 100);
|
|
}, 100);
|
|
},
|
|
];
|
|
</script>
|
|
</head>
|
|
|
|
<body onload="runTest()">
|
|
<p>Test that, when RequireUserGestureForAudioRateChange is set along with MediaUserGestureInheritsForDocument,
|
|
nested setTimeout() calls of less than 1s will not block play() from succeeding.</p>
|
|
</body>
|
|
</html>
|
|
|