Chromium Code Reviews| Index: third_party/WebKit/Source/modules/webaudio/BaseAudioContext.cpp |
| diff --git a/third_party/WebKit/Source/modules/webaudio/BaseAudioContext.cpp b/third_party/WebKit/Source/modules/webaudio/BaseAudioContext.cpp |
| index d58dd559ce6a1a4871c576f3b48cb98b926b381f..87d8288f2e1ee808c3aaad3dcd9c92bb597ce55d 100644 |
| --- a/third_party/WebKit/Source/modules/webaudio/BaseAudioContext.cpp |
| +++ b/third_party/WebKit/Source/modules/webaudio/BaseAudioContext.cpp |
| @@ -30,6 +30,8 @@ |
| #include "bindings/core/v8/ExceptionState.h" |
| #include "bindings/core/v8/ScriptPromiseResolver.h" |
| #include "bindings/core/v8/ScriptState.h" |
| +#include "bindings/modules/v8/DecodeErrorCallback.h" |
| +#include "bindings/modules/v8/DecodeSuccessCallback.h" |
| #include "core/dom/DOMException.h" |
| #include "core/dom/Document.h" |
| #include "core/dom/ExceptionCode.h" |
| @@ -41,7 +43,6 @@ |
| #include "modules/mediastream/MediaStream.h" |
| #include "modules/webaudio/AnalyserNode.h" |
| #include "modules/webaudio/AudioBuffer.h" |
| -#include "modules/webaudio/AudioBufferCallback.h" |
| #include "modules/webaudio/AudioBufferSourceNode.h" |
| #include "modules/webaudio/AudioContext.h" |
| #include "modules/webaudio/AudioListener.h" |
| @@ -272,8 +273,25 @@ AudioBuffer* BaseAudioContext::createBuffer(unsigned number_of_channels, |
| ScriptPromise BaseAudioContext::decodeAudioData( |
| ScriptState* script_state, |
| DOMArrayBuffer* audio_data, |
| - AudioBufferCallback* success_callback, |
| - AudioBufferCallback* error_callback, |
| + ExceptionState& exception_state) { |
| + return decodeAudioData(script_state, audio_data, nullptr, nullptr, |
| + exception_state); |
| +} |
| + |
| +ScriptPromise BaseAudioContext::decodeAudioData( |
| + ScriptState* script_state, |
| + DOMArrayBuffer* audio_data, |
| + DecodeSuccessCallback* success_callback, |
| + ExceptionState& exception_state) { |
| + return decodeAudioData(script_state, audio_data, success_callback, nullptr, |
| + exception_state); |
| +} |
| + |
| +ScriptPromise BaseAudioContext::decodeAudioData( |
| + ScriptState* script_state, |
| + DOMArrayBuffer* audio_data, |
| + DecodeSuccessCallback* success_callback, |
| + DecodeErrorCallback* error_callback, |
| ExceptionState& exception_state) { |
| DCHECK(IsMainThread()); |
| DCHECK(audio_data); |
| @@ -292,7 +310,7 @@ ScriptPromise BaseAudioContext::decodeAudioData( |
| kDataCloneError, "Cannot decode detached ArrayBuffer"); |
| resolver->Reject(error); |
| if (error_callback) { |
| - error_callback->handleEvent(error); |
| + error_callback->call(this, error); |
|
foolip
2017/04/20 11:32:50
Oh, sweet, using callback functions didn't used to
Raymond Toy
2017/04/20 15:20:40
Not actually 100% sure about this; I inspected the
|
| } |
| } else { |
| // Detach the audio array buffer from the main thread and start |
| @@ -312,22 +330,22 @@ ScriptPromise BaseAudioContext::decodeAudioData( |
| void BaseAudioContext::HandleDecodeAudioData( |
| AudioBuffer* audio_buffer, |
| ScriptPromiseResolver* resolver, |
| - AudioBufferCallback* success_callback, |
| - AudioBufferCallback* error_callback) { |
| + DecodeSuccessCallback* success_callback, |
| + DecodeErrorCallback* error_callback) { |
| DCHECK(IsMainThread()); |
| if (audio_buffer) { |
| // Resolve promise successfully and run the success callback |
| resolver->Resolve(audio_buffer); |
| if (success_callback) |
| - success_callback->handleEvent(audio_buffer); |
| + success_callback->call(this, audio_buffer); |
| } else { |
| // Reject the promise and run the error callback |
| DOMException* error = |
| DOMException::Create(kEncodingError, "Unable to decode audio data"); |
| resolver->Reject(error); |
| if (error_callback) |
| - error_callback->handleEvent(error); |
| + error_callback->call(this, error); |
| } |
| // We've resolved the promise. Remove it now. |