| Index: third_party/WebKit/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
|
| diff --git a/third_party/WebKit/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp b/third_party/WebKit/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
|
| index dc8dce23c471d2152a1e7808bd62aaeb26c38433..0c2f0eeb2aff9e1b9d684359c56815740e971cbc 100644
|
| --- a/third_party/WebKit/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
|
| +++ b/third_party/WebKit/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
|
| @@ -168,8 +168,8 @@ void SetMediaKeysHandler::clearExistingMediaKeys()
|
| // attribute to decrypt media data and remove the association
|
| // with the media element.
|
| // (All 3 steps handled as needed in Chromium.)
|
| - std::unique_ptr<SuccessCallback> successCallback = bind(&SetMediaKeysHandler::setNewMediaKeys, this);
|
| - std::unique_ptr<FailureCallback> failureCallback = bind<ExceptionCode, const String&>(&SetMediaKeysHandler::clearFailed, this);
|
| + std::unique_ptr<SuccessCallback> successCallback = bind(&SetMediaKeysHandler::setNewMediaKeys, wrapCrossThreadPersistent(this));
|
| + std::unique_ptr<FailureCallback> failureCallback = bind<ExceptionCode, const String&>(&SetMediaKeysHandler::clearFailed, wrapCrossThreadPersistent(this));
|
| ContentDecryptionModuleResult* result = new SetContentDecryptionModuleResult(std::move(successCallback), std::move(failureCallback));
|
| mediaPlayer->setContentDecryptionModule(nullptr, result->result());
|
|
|
| @@ -196,8 +196,8 @@ void SetMediaKeysHandler::setNewMediaKeys()
|
| // algorithm on the media element.
|
| // (Handled in Chromium).
|
| if (m_element->webMediaPlayer()) {
|
| - std::unique_ptr<SuccessCallback> successCallback = bind(&SetMediaKeysHandler::finish, this);
|
| - std::unique_ptr<FailureCallback> failureCallback = bind<ExceptionCode, const String&>(&SetMediaKeysHandler::setFailed, this);
|
| + std::unique_ptr<SuccessCallback> successCallback = bind(&SetMediaKeysHandler::finish, wrapCrossThreadPersistent(this));
|
| + std::unique_ptr<FailureCallback> failureCallback = bind<ExceptionCode, const String&>(&SetMediaKeysHandler::setFailed, wrapCrossThreadPersistent(this));
|
| ContentDecryptionModuleResult* result = new SetContentDecryptionModuleResult(std::move(successCallback), std::move(failureCallback));
|
| m_element->webMediaPlayer()->setContentDecryptionModule(m_newMediaKeys->contentDecryptionModule(), result->result());
|
|
|
|
|