| Index: Source/modules/webaudio/AudioContext.cpp
|
| diff --git a/Source/modules/webaudio/AudioContext.cpp b/Source/modules/webaudio/AudioContext.cpp
|
| index a6e0aebbeeab2c4dc1278d17ec43f392fd25f5df..cf39693430a9c99084129648866990bf177d951e 100644
|
| --- a/Source/modules/webaudio/AudioContext.cpp
|
| +++ b/Source/modules/webaudio/AudioContext.cpp
|
| @@ -730,15 +730,9 @@ void AudioContext::notifyStateChange()
|
| ScriptPromise AudioContext::suspendContext(ScriptState* scriptState)
|
| {
|
| ASSERT(isMainThread());
|
| - AutoLocker locker(this);
|
| + ASSERT(!isOfflineContext());
|
|
|
| - if (isOfflineContext()) {
|
| - return ScriptPromise::rejectWithDOMException(
|
| - scriptState,
|
| - DOMException::create(
|
| - InvalidAccessError,
|
| - "cannot suspend an OfflineAudioContext"));
|
| - }
|
| + AutoLocker locker(this);
|
|
|
| RefPtrWillBeRawPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(scriptState);
|
| ScriptPromise promise = resolver->promise();
|
| @@ -945,9 +939,10 @@ ExecutionContext* AudioContext::executionContext() const
|
|
|
| void AudioContext::startRendering()
|
| {
|
| - // This is called for both online and offline contexts.
|
| + // This is only for the real-time context.
|
| ASSERT(isMainThread());
|
| ASSERT(m_destinationNode);
|
| + ASSERT(!isOfflineContext());
|
|
|
| if (m_contextState == Suspended) {
|
| destination()->audioDestinationHandler().startRendering();
|
| @@ -970,32 +965,23 @@ void AudioContext::stopRendering()
|
|
|
| void AudioContext::fireCompletionEvent()
|
| {
|
| - ASSERT(isMainThread());
|
| - if (!isMainThread())
|
| - return;
|
| -
|
| - AudioBuffer* renderedBuffer = m_renderTarget.get();
|
| -
|
| - // For an offline context, we set the state to closed here so that the oncomplete handler sees
|
| - // that the context has been closed.
|
| - setContextState(Closed);
|
| + ASSERT_WITH_MESSAGE(1, "fireCompletionEvent() only valid for offline audio context");
|
| +}
|
|
|
| - ASSERT(renderedBuffer);
|
| - if (!renderedBuffer)
|
| - return;
|
| +bool AudioContext::shouldSuspendNow()
|
| +{
|
| + ASSERT_WITH_MESSAGE(1, "shouldSuspendNow() only valid for offline audio context");
|
| + return false;
|
| +}
|
|
|
| - // Avoid firing the event if the document has already gone away.
|
| - if (executionContext()) {
|
| - // Call the offline rendering completion event listener and resolve the promise too.
|
| - dispatchEvent(OfflineAudioCompletionEvent::create(renderedBuffer));
|
| - m_offlineResolver->resolve(renderedBuffer);
|
| - }
|
| +void AudioContext::resolvePendingSuspendPromises()
|
| +{
|
| + ASSERT_WITH_MESSAGE(1, "clearResolvedSuspend() only valid for offline audio context");
|
| }
|
|
|
| DEFINE_TRACE(AudioContext)
|
| {
|
| visitor->trace(m_closeResolver);
|
| - visitor->trace(m_offlineResolver);
|
| visitor->trace(m_renderTarget);
|
| visitor->trace(m_destinationNode);
|
| visitor->trace(m_listener);
|
|
|