Chromium Code Reviews| 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, |