| 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 3f3218f40fec8adb773aae280f0f2185919d6530..7c5dbdf81568851520551885d575d9ab2f9fb93a 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,30 +26,17 @@ 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),
|
| - cdm_id_(RendererCdmManager::kInvalidCdmId),
|
| -#endif // defined(ENABLE_PEPPER_CDMS)
|
| - key_added_cb_(key_added_cb),
|
| +ProxyDecryptor::ProxyDecryptor(const KeyAddedCB& key_added_cb,
|
| + const KeyErrorCB& key_error_cb,
|
| + const KeyMessageCB& key_message_cb)
|
| + : key_added_cb_(key_added_cb),
|
| key_error_cb_(key_error_cb),
|
| 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());
|
| +#if defined(ENABLE_BROWSER_CDMS)
|
| + cdm_id_(RendererCdmManager::kInvalidCdmId),
|
| #endif // defined(ENABLE_PEPPER_CDMS)
|
| + weak_ptr_factory_(this) {
|
| DCHECK(!key_added_cb_.is_null());
|
| DCHECK(!key_error_cb_.is_null());
|
| DCHECK(!key_message_cb_.is_null());
|
| @@ -74,12 +57,13 @@ int ProxyDecryptor::GetCdmId() {
|
| }
|
| #endif
|
|
|
| -bool ProxyDecryptor::InitializeCDM(const std::string& key_system,
|
| +bool ProxyDecryptor::InitializeCDM(const media::CdmFactory& cdm_factory,
|
| + const std::string& key_system,
|
| const GURL& security_origin) {
|
| DVLOG(1) << "InitializeCDM: key_system = " << key_system;
|
|
|
| DCHECK(!media_keys_);
|
| - media_keys_ = CreateMediaKeys(key_system, security_origin);
|
| + media_keys_ = CreateMediaKeys(cdm_factory, key_system, security_origin);
|
| if (!media_keys_)
|
| return false;
|
|
|
| @@ -223,29 +207,22 @@ void ProxyDecryptor::CancelKeyRequest(const std::string& web_session_id) {
|
| }
|
|
|
| scoped_ptr<media::MediaKeys> ProxyDecryptor::CreateMediaKeys(
|
| + const media::CdmFactory& cdm_factory,
|
| 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)
|
| &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,
|
|
|