Index: LayoutTests/webaudio/scriptprocessornode-detached-no-crash.html |
diff --git a/LayoutTests/webaudio/scriptprocessornode-detached-no-crash.html b/LayoutTests/webaudio/scriptprocessornode-detached-no-crash.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..816304a4457aa07085ca33eb7950b29ce2d46a54 |
--- /dev/null |
+++ b/LayoutTests/webaudio/scriptprocessornode-detached-no-crash.html |
@@ -0,0 +1,61 @@ |
+<!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 that ScriptProcessorNode event dispatch doesn't fail when detached from document."); |
+ |
+window.jsTestIsAsync = true; |
+ |
+var sampleRate = 44100.0; |
+var renderLengthInFrames = 512; |
+var bufferSize = 512; |
+var context; |
+function runTest() |
+{ |
+ var node; |
+ |
+ try { |
+ node = context.createScriptProcessor(bufferSize, 0, 1); |
+ testPassed("Successfully created ScriptProcessorNode."); |
+ } catch (e) { |
+ testFailed("Failed to create ScriptProcessorNode."); |
+ } |
+ |
+ 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(); |
+} |
+ |
+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/scriptprocessornode-detached-no-crash-new-window.html'); |
+window.addEventListener("message", processMessage, false); |
+</script> |
+</body> |
+</html> |