Index: Source/modules/webaudio/AudioNode.cpp |
diff --git a/Source/modules/webaudio/AudioNode.cpp b/Source/modules/webaudio/AudioNode.cpp |
index 2c9582ee482a0e5019b5c8a889cabcc88e9627c0..60f3edcd1461f3db5fce6cc4ccf95bab0f528278 100644 |
--- a/Source/modules/webaudio/AudioNode.cpp |
+++ b/Source/modules/webaudio/AudioNode.cpp |
@@ -412,11 +412,14 @@ void AudioHandler::disableOutputsIfNecessary() |
// But internally our outputs should be disabled from the inputs they're connected to. |
// disable() can recursively deref connections (and call disable()) down a whole chain of connected nodes. |
- // FIXME: we special case the convolver and delay since they have a significant tail-time and shouldn't be disconnected simply |
- // because they no longer have any input connections. This needs to be handled more generally where AudioNodes have |
- // a tailTime attribute. Then the AudioNode only needs to remain "active" for tailTime seconds after there are no |
- // longer any active connections. |
- if (nodeType() != NodeTypeConvolver && nodeType() != NodeTypeDelay) { |
+ // TODO(rtoy,hongchan): we special case the convolver, delay, and biquad since they have a |
+ // significant tail-time and shouldn't be disconnected simply because they no longer have |
+ // any input connections. This needs to be handled more generally where AudioNodes have a |
+ // tailTime attribute. Then the AudioNode only needs to remain "active" for tailTime seconds |
+ // after there are no longer any active connections. |
+ if (nodeType() != NodeTypeConvolver |
+ && nodeType() != NodeTypeDelay |
+ && nodeType() != NodeTypeBiquadFilter) { |
m_isDisabled = true; |
clearInternalStateWhenDisabled(); |
for (auto& output : m_outputs) |