blob: 9191fe24fd18bdfd5aa6cb23b8bf05841ff77a5b [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../resources/js-test-pre.js"></script>
<script>
description("Tests silent WebAudio rendering in hidden pages.");
jsTestIsAsync = true;
let counter = 0;
document.onvisibilitychange = async function() {
if (!counter) {
counter = 1;
shouldBeTrue("document.hidden");
shouldBe("context.state", "'running'");
showPage();
return;
}
shouldBeFalse("document.hidden");
shouldBe("context.state", "'running'");
finishJSTest();
}
function showPage()
{
debug("* Setting page visibility to visible");
if (window.internals)
internals.setPageVisibility(true);
}
function hidePage()
{
debug("* Setting page visibility to hidden");
if (window.internals)
internals.setPageVisibility(false);
}
onload = function() {
context = new AudioContext();
audioElement = document.createElement("audio");
audioElement.loop = true;
audioElement.muted = true;
audioElement.src = "../media/content/test.wav";
source = context.createMediaElementSource(audioElement);
var gainNode = context.createGain();
source.connect(gainNode);
gainNode.connect(context.destination);
gainNode.gain.value = 0; // Mute.
shouldBecomeEqual("context.state", "'running'", hidePage);
}
</script>
<script src="../resources/js-test-post.js"></script>
</body>
</html>