<!DOCTYPE html>
<title>Test that the autoplay muted applies for volume=0</title>
<script src='../../resources/testharness.js'></script>
<script src='../../resources/testharnessreport.js'></script>
<body></body>
<script>
async_test(t => {
t.add_cleanup(() => {
internals.settings.setAutoplayPolicy('no-user-gesture-required');
internals.runtimeFlags.autoplayMutedVideosEnabled = false;
});
internals.settings.setAutoplayPolicy('document-user-activation-required');
internals.runtimeFlags.autoplayMutedVideosEnabled = true;
var video = document.createElement('video');
video.autoplay = true;
video.volume = 0;
video.src = '../content/test.ogv';
document.body.appendChild(video);
video.addEventListener('play', t.step_func(e => {
video.volume = 0.1;
video.addEventListener('pause', t.step_func_done());
}), { once: true });
}, "volume=0 allows muted autoplay, volume!=0 pauses");
async_test(t => {
t.add_cleanup(() => {
internals.settings.setAutoplayPolicy('no-user-gesture-required');
internals.runtimeFlags.autoplayMutedVideosEnabled = false;
});
internals.settings.setAutoplayPolicy('document-user-activation-required');
internals.runtimeFlags.autoplayMutedVideosEnabled = true;
var video = document.createElement('video');
video.autoplay = true;
video.volume = 0;
video.src = '../content/test.ogv';
document.body.appendChild(video);
video.addEventListener('play', t.step_func(e => {
video.muted = true;
video.volume = 0.1;
var timeUpdateCount = 0;
video.addEventListener('timeupdate', t.step_func(e => {
timeUpdateCount++;
if (timeUpdateCount == 3) t.done();
}));
}), { once: true });
}, "muted after volume=0 will not pause if volume!=0");
async_test(t => {
t.add_cleanup(() => {
internals.settings.setAutoplayPolicy('no-user-gesture-required');
internals.runtimeFlags.autoplayMutedVideosEnabled = false;
});
internals.settings.setAutoplayPolicy('document-user-activation-required');
internals.runtimeFlags.autoplayMutedVideosEnabled = true;
var video = document.createElement('video');
video.autoplay = true;
video.muted = true;
video.src = '../content/test.ogv';
document.body.appendChild(video);
video.addEventListener('play', t.step_func(e => {
video.volume = 0;
video.muted = false;
var timeUpdateCount = 0;
video.addEventListener('timeupdate', t.step_func(e => {
timeUpdateCount++;
if (timeUpdateCount == 3) t.done();
}));
}), { once: true });
}, "unmuted after setting volume to 0 does not pause");
</script>