Chromium Code Reviews| Index: Source/modules/audio_output_devices/SetSinkIdCallbacks.cpp |
| diff --git a/Source/modules/audio_output_devices/SetSinkIdCallbacks.cpp b/Source/modules/audio_output_devices/SetSinkIdCallbacks.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..55782278db290146a2471d7626d45849d8023ec0 |
| --- /dev/null |
| +++ b/Source/modules/audio_output_devices/SetSinkIdCallbacks.cpp |
| @@ -0,0 +1,66 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
|
Mike West
2015/06/17 11:44:37
Nit: 2015
Guido Urdaneta
2015/06/17 12:25:15
Done.
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "config.h" |
| +#include "modules/audio_output_devices/SetSinkIdCallbacks.h" |
| + |
| +#include "bindings/core/v8/ScriptPromiseResolver.h" |
| +#include "modules/audio_output_devices/HTMLMediaElementAudioOutputDevice.h" |
| +#include "platform/Logging.h" |
| +#include "public/platform/WebSetSinkIdError.h" |
| + |
| +namespace blink { |
| + |
| +SetSinkIdCallbacks::SetSinkIdCallbacks(PassRefPtrWillBeRawPtr<ScriptPromiseResolver> resolver, HTMLMediaElement& element, const String& sinkId) |
| + : m_resolver(resolver) |
| + , m_element(element) |
| + , m_sinkId(sinkId) |
| +{ |
| + ASSERT(m_resolver); |
| + WTF_LOG(Media, __FUNCTION__); |
| +} |
| + |
| +SetSinkIdCallbacks::~SetSinkIdCallbacks() |
| +{ |
| + WTF_LOG(Media, __FUNCTION__); |
| +} |
| + |
| +void SetSinkIdCallbacks::onSuccess() |
| +{ |
| + if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) { |
| + return; |
| + } |
|
Mike West
2015/06/17 11:44:37
Nit: No {} for one line clauses.
Guido Urdaneta
2015/06/17 12:25:16
Done.
|
| + |
| + HTMLMediaElementAudioOutputDevice& aodElement = HTMLMediaElementAudioOutputDevice::from(*m_element); |
| + aodElement.m_sinkId = m_sinkId; |
|
Mike West
2015/06/17 11:44:37
Ah, I see. You've friended to set `m_sinkId` as we
Guido Urdaneta
2015/06/17 12:25:16
Done.
|
| + m_resolver->resolve(); |
| +} |
| + |
| +void SetSinkIdCallbacks::onError(WebSetSinkIdError* rawError) |
| +{ |
| + ASSERT(rawError); |
| + OwnPtr<WebSetSinkIdError> error = adoptPtr(rawError); |
| + if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped()) { |
| + return; |
| + } |
| + |
| + switch (error->errorType) { |
| + case WebSetSinkIdError::ErrorTypeNotFound: |
| + m_resolver->reject(DOMException::create(NotFoundError, error->message)); |
| + break; |
| + case WebSetSinkIdError::ErrorTypeSecurity: |
| + m_resolver->reject(DOMException::create(SecurityError, error->message)); |
| + break; |
| + case WebSetSinkIdError::ErrorTypeNotSupported: |
| + m_resolver->reject(DOMException::create(NotSupportedError, error->message)); |
| + break; |
| + case WebSetSinkIdError::ErrorTypeAbort: |
| + m_resolver->reject(DOMException::create(AbortError, error->message)); |
| + break; |
| + default: |
| + ASSERT_NOT_REACHED(); |
| + } |
| +} |
| + |
| +} // namespace blink |