Index: content/renderer/media/crypto/proxy_decryptor.cc |
diff --git a/content/renderer/media/crypto/proxy_decryptor.cc b/content/renderer/media/crypto/proxy_decryptor.cc |
index bd3195dccad51ac283f704803790973386a027e8..29b415bcb011ba3535d0f4795e43119fab2d237c 100644 |
--- a/content/renderer/media/crypto/proxy_decryptor.cc |
+++ b/content/renderer/media/crypto/proxy_decryptor.cc |
@@ -10,15 +10,11 @@ |
#include "base/callback_helpers.h" |
#include "base/logging.h" |
#include "base/strings/string_util.h" |
-#include "content/renderer/media/crypto/content_decryption_module_factory.h" |
#include "media/base/cdm_callback_promise.h" |
+#include "media/base/cdm_factory.h" |
#include "media/cdm/json_web_key.h" |
#include "media/cdm/key_system_names.h" |
-#if defined(ENABLE_PEPPER_CDMS) |
-#include "content/renderer/media/crypto/pepper_cdm_wrapper.h" |
-#endif // defined(ENABLE_PEPPER_CDMS) |
- |
#if defined(ENABLE_BROWSER_CDMS) |
#include "content/renderer/media/crypto/renderer_cdm_manager.h" |
#endif // defined(ENABLE_BROWSER_CDMS) |
@@ -30,20 +26,13 @@ namespace content { |
// EME API. |
const int kSessionClosedSystemCode = 29127; |
-ProxyDecryptor::ProxyDecryptor( |
-#if defined(ENABLE_PEPPER_CDMS) |
- const CreatePepperCdmCB& create_pepper_cdm_cb, |
-#elif defined(ENABLE_BROWSER_CDMS) |
- RendererCdmManager* manager, |
-#endif // defined(ENABLE_PEPPER_CDMS) |
- const KeyAddedCB& key_added_cb, |
- const KeyErrorCB& key_error_cb, |
- const KeyMessageCB& key_message_cb) |
- : |
-#if defined(ENABLE_PEPPER_CDMS) |
- create_pepper_cdm_cb_(create_pepper_cdm_cb), |
-#elif defined(ENABLE_BROWSER_CDMS) |
- manager_(manager), |
+ProxyDecryptor::ProxyDecryptor(scoped_ptr<media::CdmFactory> cdm_factory, |
+ const KeyAddedCB& key_added_cb, |
+ const KeyErrorCB& key_error_cb, |
+ const KeyMessageCB& key_message_cb) |
+ : cdm_factory_(cdm_factory.Pass()), |
+#if defined(ENABLE_BROWSER_CDMS) |
+ // TODO(xhwang): Move kInvalidCdmId to src/media. |
cdm_id_(RendererCdmManager::kInvalidCdmId), |
#endif // defined(ENABLE_PEPPER_CDMS) |
key_added_cb_(key_added_cb), |
@@ -51,9 +40,7 @@ ProxyDecryptor::ProxyDecryptor( |
key_message_cb_(key_message_cb), |
is_clear_key_(false), |
weak_ptr_factory_(this) { |
-#if defined(ENABLE_PEPPER_CDMS) |
- DCHECK(!create_pepper_cdm_cb_.is_null()); |
-#endif // defined(ENABLE_PEPPER_CDMS) |
+ DCHECK(cdm_factory_); |
DCHECK(!key_added_cb_.is_null()); |
DCHECK(!key_error_cb_.is_null()); |
DCHECK(!key_message_cb_.is_null()); |
@@ -213,27 +200,19 @@ void ProxyDecryptor::CancelKeyRequest(const std::string& web_session_id) { |
scoped_ptr<media::MediaKeys> ProxyDecryptor::CreateMediaKeys( |
const std::string& key_system, |
const GURL& security_origin) { |
- return ContentDecryptionModuleFactory::Create( |
+ base::WeakPtr<ProxyDecryptor> weak_this = weak_ptr_factory_.GetWeakPtr(); |
+ return cdm_factory_->Create( |
key_system, |
security_origin, |
-#if defined(ENABLE_PEPPER_CDMS) |
- create_pepper_cdm_cb_, |
-#elif defined(ENABLE_BROWSER_CDMS) |
- manager_, |
+#if defined(ENABLE_BROWSER_CDMS) |
ddorwin
2014/10/16 17:32:52
We could eliminate 2 of the 3 ifdef's if MediaKeys
xhwang
2014/10/16 20:08:39
Agreed. See comment above. I'll do that in another
|
&cdm_id_, |
-#endif // defined(ENABLE_PEPPER_CDMS) |
- base::Bind(&ProxyDecryptor::OnSessionMessage, |
- weak_ptr_factory_.GetWeakPtr()), |
- base::Bind(&ProxyDecryptor::OnSessionReady, |
- weak_ptr_factory_.GetWeakPtr()), |
- base::Bind(&ProxyDecryptor::OnSessionClosed, |
- weak_ptr_factory_.GetWeakPtr()), |
- base::Bind(&ProxyDecryptor::OnSessionError, |
- weak_ptr_factory_.GetWeakPtr()), |
- base::Bind(&ProxyDecryptor::OnSessionKeysChange, |
- weak_ptr_factory_.GetWeakPtr()), |
- base::Bind(&ProxyDecryptor::OnSessionExpirationUpdate, |
- weak_ptr_factory_.GetWeakPtr())); |
+#endif |
+ base::Bind(&ProxyDecryptor::OnSessionMessage, weak_this), |
+ base::Bind(&ProxyDecryptor::OnSessionReady, weak_this), |
+ base::Bind(&ProxyDecryptor::OnSessionClosed, weak_this), |
+ base::Bind(&ProxyDecryptor::OnSessionError, weak_this), |
+ base::Bind(&ProxyDecryptor::OnSessionKeysChange, weak_this), |
+ base::Bind(&ProxyDecryptor::OnSessionExpirationUpdate, weak_this)); |
} |
void ProxyDecryptor::OnSessionMessage(const std::string& web_session_id, |