Title: [133222] branches/safari-536.28-branch

Diff

Modified: branches/safari-536.28-branch/LayoutTests/ChangeLog (133221 => 133222)


--- branches/safari-536.28-branch/LayoutTests/ChangeLog	2012-11-01 20:42:29 UTC (rev 133221)
+++ branches/safari-536.28-branch/LayoutTests/ChangeLog	2012-11-01 20:49:06 UTC (rev 133222)
@@ -1,5 +1,22 @@
 2012-10-31  Lucas Forschler  <lforsch...@apple.com>
 
+        Merge r123131
+
+    2012-07-19  Raymond Toy  <r...@google.com>
+
+            Limit maximum delay of DelayNode.
+            https://bugs.webkit.org/show_bug.cgi?id=91675
+
+            Reviewed by Kenneth Russell.
+
+            Test that a DelayNode limits the specified max delay to the
+            expected maximum allowed delay.
+
+            * webaudio/delaynode-maxdelaylimit-expected.txt: Added.
+            * webaudio/delaynode-maxdelaylimit.html: Added.
+
+2012-10-31  Lucas Forschler  <lforsch...@apple.com>
+
         Merge r123128
 
     2012-07-19  Douglas Stockwell  <dstockw...@google.com>
@@ -10618,3 +10635,4 @@
 .
 .
 .
+.

Copied: branches/safari-536.28-branch/LayoutTests/webaudio/delaynode-maxdelaylimit-expected.txt (from rev 123131, trunk/LayoutTests/webaudio/delaynode-maxdelaylimit-expected.txt) (0 => 133222)


--- branches/safari-536.28-branch/LayoutTests/webaudio/delaynode-maxdelaylimit-expected.txt	                        (rev 0)
+++ branches/safari-536.28-branch/LayoutTests/webaudio/delaynode-maxdelaylimit-expected.txt	2012-11-01 20:49:06 UTC (rev 133222)
@@ -0,0 +1,12 @@
+Tests attribute and maximum allowed delay of DelayNode.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+PASS delay.delayTime.maxValue === 300 is true
+PASS delay.delayTime.value === 0.0 is true
+PASS delay.delayTime.value === 0.5 is true
+PASS Test signal was correctly delayed by 0.5 sec.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Copied: branches/safari-536.28-branch/LayoutTests/webaudio/delaynode-maxdelaylimit.html (from rev 123131, trunk/LayoutTests/webaudio/delaynode-maxdelaylimit.html) (0 => 133222)


--- branches/safari-536.28-branch/LayoutTests/webaudio/delaynode-maxdelaylimit.html	                        (rev 0)
+++ branches/safari-536.28-branch/LayoutTests/webaudio/delaynode-maxdelaylimit.html	2012-11-01 20:49:06 UTC (rev 133222)
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+<script src=""
+<script src=""
+<script src=""
+</head>
+
+<body>
+
+<div id="description"></div>
+<div id="console"></div>
+
+<script>
+description("Tests attribute and maximum allowed delay of DelayNode.");
+
+function runTest() {
+    if (window.testRunner) {
+        testRunner.dumpAsText();
+        testRunner.waitUntilDone();
+    }
+    
+    window.jsTestIsAsync = true;
+        
+    // Create offline audio context.
+    var context = new webkitAudioContext(1, sampleRate * renderLengthSeconds, sampleRate);
+    var toneBuffer = createToneBuffer(context, 20, 20 * toneLengthSeconds, sampleRate); // 20Hz tone
+    
+    var bufferSource = context.createBufferSource();
+    bufferSource.buffer = toneBuffer;
+
+    // The delay node clips the maximum delay.  Create a node with a delay larger than the maximum
+    // allowed delay.
+    var delay = context.createDelayNode(1000);
+    
+    window.delay = delay;
+    shouldBeTrue("delay.delayTime.maxValue === 300");
+    shouldBeTrue("delay.delayTime.value === 0.0");
+
+    delay.delayTime.value = delayTimeSeconds;
+    shouldBeTrue("delay.delayTime.value === 0.5");
+
+    bufferSource.connect(delay);
+    delay.connect(context.destination);
+    bufferSource.noteOn(0);
+    
+    context._oncomplete_ = checkDelayedResult(toneBuffer);
+    context.startRendering();
+}
+
+runTest();
+
+</script>
+
+<script src=""
+</body>
+</html>

Modified: branches/safari-536.28-branch/Source/WebCore/ChangeLog (133221 => 133222)


--- branches/safari-536.28-branch/Source/WebCore/ChangeLog	2012-11-01 20:42:29 UTC (rev 133221)
+++ branches/safari-536.28-branch/Source/WebCore/ChangeLog	2012-11-01 20:49:06 UTC (rev 133222)
@@ -1,5 +1,24 @@
 2012-10-31  Lucas Forschler  <lforsch...@apple.com>
 
+        Merge r123131
+
+    2012-07-19  Raymond Toy  <r...@google.com>
+
+            Limit maximum delay of DelayNode.
+            https://bugs.webkit.org/show_bug.cgi?id=91675
+
+            Reviewed by Kenneth Russell.
+
+            Clip the maximum delay of a DelayNode to a reasonable maximum.
+
+            Test: webaudio/delaynode-maxdelaylimit.html
+
+            * Modules/webaudio/DelayNode.cpp:
+            (WebCore): Add maximumAllowedDelayTime.
+            (WebCore::DelayNode::DelayNode): Clip max delay.
+
+2012-10-31  Lucas Forschler  <lforsch...@apple.com>
+
         Merge r123128
 
     2012-07-19  Douglas Stockwell  <dstockw...@google.com>
@@ -205831,3 +205850,4 @@
 .
 .
 .
+.

Modified: branches/safari-536.28-branch/Source/WebCore/Modules/webaudio/DelayNode.cpp (133221 => 133222)


--- branches/safari-536.28-branch/Source/WebCore/Modules/webaudio/DelayNode.cpp	2012-11-01 20:42:29 UTC (rev 133221)
+++ branches/safari-536.28-branch/Source/WebCore/Modules/webaudio/DelayNode.cpp	2012-11-01 20:49:06 UTC (rev 133222)
@@ -30,9 +30,13 @@
 
 namespace WebCore {
 
+// FIXME: What should be the maximum allowed delay? Arbitrarily set to 300 sec (5 minutes).
+const double maximumAllowedDelayTime = 300;
+
 DelayNode::DelayNode(AudioContext* context, float sampleRate, double maxDelayTime)
     : AudioBasicProcessorNode(context, sampleRate)
 {
+    maxDelayTime = std::max(std::min(maxDelayTime, maximumAllowedDelayTime), 0.0);
     m_processor = adoptPtr(new DelayProcessor(sampleRate, 1, maxDelayTime));
     delayTime()->setContext(context);
     setNodeType(NodeTypeDelay);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to