Title: [133222] branches/safari-536.28-branch
- Revision
- 133222
- Author
- lforsch...@apple.com
- Date
- 2012-11-01 13:49:06 -0700 (Thu, 01 Nov 2012)
Log Message
Merged 123131. '<rdar://problem/12536524>'
Modified Paths
Added Paths
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