Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(327)

Unified Diff: content/renderer/media/crypto/proxy_media_keys.cc

Issue 1407933010: media: Make MediaKeys ref-counted. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase only Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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,
« no previous file with comments | « content/renderer/media/crypto/proxy_media_keys.h ('k') | content/renderer/media/crypto/render_cdm_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698