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

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

Issue 660673002: Introduce CdmFactory interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@move_result_promise
Patch Set: Created 6 years, 2 months 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_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,

Powered by Google App Engine
This is Rietveld 408576698