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, |