| Index: third_party/WebKit/Source/platform/audio/AudioDestination.cpp
 | 
| diff --git a/third_party/WebKit/Source/platform/audio/AudioDestination.cpp b/third_party/WebKit/Source/platform/audio/AudioDestination.cpp
 | 
| index 733bd66cfd913e0e1c7cda19e1afdc63b003700a..4cccdd9a4682f2157244b6b2ac7c8a6278c20819 100644
 | 
| --- a/third_party/WebKit/Source/platform/audio/AudioDestination.cpp
 | 
| +++ b/third_party/WebKit/Source/platform/audio/AudioDestination.cpp
 | 
| @@ -31,6 +31,7 @@
 | 
|  #include "platform/Histogram.h"
 | 
|  #include "platform/audio/AudioFIFO.h"
 | 
|  #include "platform/audio/AudioPullFIFO.h"
 | 
| +#include "platform/audio/AudioUtilities.h"
 | 
|  #include "platform/weborigin/SecurityOrigin.h"
 | 
|  #include "public/platform/Platform.h"
 | 
|  #include "public/platform/WebSecurityOrigin.h"
 | 
| @@ -39,9 +40,6 @@
 | 
|  
 | 
|  namespace blink {
 | 
|  
 | 
| -// Buffer size at which the web audio engine will render.
 | 
| -const unsigned renderBufferSize = 128;
 | 
| -
 | 
|  // Size of the FIFO
 | 
|  const size_t fifoSize = 8192;
 | 
|  
 | 
| @@ -66,9 +64,11 @@ AudioDestination::AudioDestination(AudioIOCallback& callback,
 | 
|                                     PassRefPtr<SecurityOrigin> securityOrigin)
 | 
|      : m_callback(callback),
 | 
|        m_numberOfOutputChannels(numberOfOutputChannels),
 | 
| -      m_inputBus(AudioBus::create(numberOfInputChannels, renderBufferSize)),
 | 
| -      m_renderBus(
 | 
| -          AudioBus::create(numberOfOutputChannels, renderBufferSize, false)),
 | 
| +      m_inputBus(AudioBus::create(numberOfInputChannels,
 | 
| +                                  AudioUtilities::kRenderQuantumFrames)),
 | 
| +      m_renderBus(AudioBus::create(numberOfOutputChannels,
 | 
| +                                   AudioUtilities::kRenderQuantumFrames,
 | 
| +                                   false)),
 | 
|        m_sampleRate(sampleRate),
 | 
|        m_isPlaying(false) {
 | 
|    // Histogram for audioHardwareBufferSize
 | 
| @@ -103,8 +103,9 @@ AudioDestination::AudioDestination(AudioIOCallback& callback,
 | 
|  #endif
 | 
|  
 | 
|    // Quick exit if the requested size is too large.
 | 
| -  ASSERT(m_callbackBufferSize + renderBufferSize <= fifoSize);
 | 
| -  if (m_callbackBufferSize + renderBufferSize > fifoSize)
 | 
| +  DCHECK_LE(m_callbackBufferSize + AudioUtilities::kRenderQuantumFrames,
 | 
| +            fifoSize);
 | 
| +  if (m_callbackBufferSize + AudioUtilities::kRenderQuantumFrames > fifoSize)
 | 
|      return;
 | 
|  
 | 
|    m_audioDevice = wrapUnique(Platform::current()->createAudioDevice(
 | 
| @@ -122,7 +123,7 @@ AudioDestination::AudioDestination(AudioIOCallback& callback,
 | 
|    // Otherwise, the FIFO will call the provider enough times to
 | 
|    // satisfy the request for data.
 | 
|    m_fifo = wrapUnique(new AudioPullFIFO(*this, numberOfOutputChannels, fifoSize,
 | 
| -                                        renderBufferSize));
 | 
| +                                        AudioUtilities::kRenderQuantumFrames));
 | 
|  
 | 
|    // Input buffering.
 | 
|    m_inputFifo = wrapUnique(new AudioFIFO(numberOfInputChannels, fifoSize));
 | 
| @@ -130,9 +131,10 @@ AudioDestination::AudioDestination(AudioIOCallback& callback,
 | 
|    // If the callback size does not match the render size, then we need to
 | 
|    // buffer some extra silence for the input. Otherwise, we can over-consume
 | 
|    // the input FIFO.
 | 
| -  if (m_callbackBufferSize != renderBufferSize) {
 | 
| +  if (m_callbackBufferSize != AudioUtilities::kRenderQuantumFrames) {
 | 
|      // FIXME: handle multi-channel input and don't hard-code to stereo.
 | 
| -    RefPtr<AudioBus> silence = AudioBus::create(2, renderBufferSize);
 | 
| +    RefPtr<AudioBus> silence =
 | 
| +        AudioBus::create(2, AudioUtilities::kRenderQuantumFrames);
 | 
|      m_inputFifo->push(silence.get());
 | 
|    }
 | 
|  }
 | 
| 
 |