| Index: Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
|
| diff --git a/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp b/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
|
| index eea6c5f494cbb094d39f8159d55b6b7b4bb30ea8..7f8ad425f46afe4581a86394d81de6013744730f 100644
|
| --- a/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
|
| +++ b/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
|
| @@ -77,7 +77,7 @@ typedef Function<void(ExceptionCode, const String&)> FailureCallback;
|
| // Calls |success| if result is resolved, |failure| is result is rejected.
|
| class SetContentDecryptionModuleResult final : public ContentDecryptionModuleResult {
|
| public:
|
| - SetContentDecryptionModuleResult(SuccessCallback success, FailureCallback failure)
|
| + SetContentDecryptionModuleResult(PassOwnPtr<SuccessCallback> success, PassOwnPtr<FailureCallback> failure)
|
| : m_successCallback(success)
|
| , m_failureCallback(failure)
|
| {
|
| @@ -86,23 +86,23 @@ public:
|
| // ContentDecryptionModuleResult implementation.
|
| virtual void complete() override
|
| {
|
| - m_successCallback();
|
| + (*m_successCallback)();
|
| }
|
|
|
| virtual void completeWithSession(blink::WebContentDecryptionModuleResult::SessionStatus status) override
|
| {
|
| ASSERT_NOT_REACHED();
|
| - m_failureCallback(InvalidStateError, "Unexpected completion.");
|
| + (*m_failureCallback)(InvalidStateError, "Unexpected completion.");
|
| }
|
|
|
| virtual void completeWithError(blink::WebContentDecryptionModuleException code, unsigned long systemCode, const blink::WebString& message) override
|
| {
|
| - m_failureCallback(WebCdmExceptionToExceptionCode(code), message);
|
| + (*m_failureCallback)(WebCdmExceptionToExceptionCode(code), message);
|
| }
|
|
|
| private:
|
| - SuccessCallback m_successCallback;
|
| - FailureCallback m_failureCallback;
|
| + OwnPtr<SuccessCallback> m_successCallback;
|
| + OwnPtr<FailureCallback> m_failureCallback;
|
| };
|
|
|
| ScriptPromise SetMediaKeysHandler::create(ScriptState* scriptState, HTMLMediaElement& element, MediaKeys* mediaKeys)
|
| @@ -188,9 +188,9 @@ void SetMediaKeysHandler::setNewMediaKeys()
|
| // sessions).
|
| // (Handled in Chromium).
|
| if (m_element->webMediaPlayer()) {
|
| - SuccessCallback successCallback = bind(&SetMediaKeysHandler::finish, this);
|
| - FailureCallback failureCallback = bind<ExceptionCode, const String&>(&SetMediaKeysHandler::reportSetFailed, this);
|
| - ContentDecryptionModuleResult* result = new SetContentDecryptionModuleResult(successCallback, failureCallback);
|
| + OwnPtr<SuccessCallback> successCallback = bind(&SetMediaKeysHandler::finish, this);
|
| + OwnPtr<FailureCallback> failureCallback = bind<ExceptionCode, const String&>(&SetMediaKeysHandler::reportSetFailed, this);
|
| + ContentDecryptionModuleResult* result = new SetContentDecryptionModuleResult(successCallback.release(), failureCallback.release());
|
| m_element->webMediaPlayer()->setContentDecryptionModule(m_newMediaKeys->contentDecryptionModule(), result->result());
|
|
|
| // Don't do anything more until |result| is resolved (or rejected).
|
|
|