blob: 84a4da8ffd5158d8eada437894682aed59a96405 [file] [log] [blame]
<!DOCTYPE HTML>
<html>
<head>
<script src="resources/compatibility.js"></script>
<script src="resources/audio-testing.js"></script>
<script src="../resources/js-test.js"></script>
</head>
<body>
<script>
description("Tests document-detached use of AudioContext, pass if no crash.");
window.jsTestIsAsync = true;
var sampleRate = 44100.0;
var renderLengthInFrames = 512;
var bufferSize = 512;
var context;
var node;
function runTest()
{
try {
node = context.createScriptProcessor(bufferSize, 0, 1);
var source = context.createBufferSource();
source.buffer = createImpulseBuffer(context, bufferSize);
node.onaudioprocess = function(e) { };
source.connect(node);
node.connect(context.destination);
source.start(0);
context.startRendering();
} catch (e) {
// The context has been stopped and detached; nothing to test.
return;
}
}
var w;
function processMessage(event) {
if (event.data == "opened") {
context = new w.OfflineAudioContext(1, renderLengthInFrames, sampleRate);
w.close();
} else if (event.data == "closed") {
runTest();
finishJSTest();
}
}
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
testRunner.setCanOpenWindows();
}
w = window.open('../resources/window-postmessage-open-close.html');
window.addEventListener("message", processMessage, false);
</script>
</body>
</html>