| Index: content/renderer/media/crypto/proxy_media_keys.cc
|
| diff --git a/content/renderer/media/crypto/proxy_media_keys.cc b/content/renderer/media/crypto/proxy_media_keys.cc
|
| index f28be12493e646bfd870a0ab427054acd95df515..f64c326d4e377dc94647e2be37884d6d9cdce723 100644
|
| --- a/content/renderer/media/crypto/proxy_media_keys.cc
|
| +++ b/content/renderer/media/crypto/proxy_media_keys.cc
|
| @@ -29,24 +29,16 @@ void ProxyMediaKeys::Create(
|
| const media::SessionExpirationUpdateCB& session_expiration_update_cb,
|
| const media::CdmCreatedCB& cdm_created_cb) {
|
| DCHECK(manager);
|
| - scoped_ptr<ProxyMediaKeys> proxy_media_keys(new ProxyMediaKeys(
|
| + scoped_refptr<ProxyMediaKeys> proxy_media_keys(new ProxyMediaKeys(
|
| manager, session_message_cb, session_closed_cb, legacy_session_error_cb,
|
| session_keys_change_cb, session_expiration_update_cb));
|
|
|
| - // ProxyMediaKeys ownership passed to the promise, but keep a copy in order
|
| - // to call InitializeCdm().
|
| - ProxyMediaKeys* proxy_media_keys_copy = proxy_media_keys.get();
|
| + // ProxyMediaKeys ownership passed to the promise.
|
| scoped_ptr<media::CdmInitializedPromise> promise(
|
| - new media::CdmInitializedPromise(cdm_created_cb,
|
| - proxy_media_keys.Pass()));
|
| - proxy_media_keys_copy->InitializeCdm(key_system, security_origin,
|
| - use_hw_secure_codecs, promise.Pass());
|
| -}
|
| + new media::CdmInitializedPromise(cdm_created_cb, proxy_media_keys));
|
|
|
| -ProxyMediaKeys::~ProxyMediaKeys() {
|
| - manager_->DestroyCdm(cdm_id_);
|
| - manager_->UnregisterMediaKeys(cdm_id_);
|
| - cdm_promise_adapter_.Clear();
|
| + proxy_media_keys->InitializeCdm(key_system, security_origin,
|
| + use_hw_secure_codecs, promise.Pass());
|
| }
|
|
|
| void ProxyMediaKeys::SetServerCertificate(
|
| @@ -193,6 +185,12 @@ ProxyMediaKeys::ProxyMediaKeys(
|
| cdm_id_ = manager->RegisterMediaKeys(this);
|
| }
|
|
|
| +ProxyMediaKeys::~ProxyMediaKeys() {
|
| + manager_->DestroyCdm(cdm_id_);
|
| + manager_->UnregisterMediaKeys(cdm_id_);
|
| + cdm_promise_adapter_.Clear();
|
| +}
|
| +
|
| void ProxyMediaKeys::InitializeCdm(
|
| const std::string& key_system,
|
| const GURL& security_origin,
|
|
|