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

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

Issue 660673002: Introduce CdmFactory interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@move_result_promise
Patch Set: comments addressed 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/encrypted_media_player_support_impl.cc
diff --git a/content/renderer/media/crypto/encrypted_media_player_support_impl.cc b/content/renderer/media/crypto/encrypted_media_player_support_impl.cc
index e3f70b393d18d6e316057648e99da1f20219f456..6cdf15ad5743e9dc745123ae3bb0e9488720a9ae 100644
--- a/content/renderer/media/crypto/encrypted_media_player_support_impl.cc
+++ b/content/renderer/media/crypto/encrypted_media_player_support_impl.cc
@@ -13,8 +13,8 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "content/renderer/media/crypto/key_systems.h"
+#include "content/renderer/media/crypto/render_cdm_factory.h"
#include "content/renderer/media/webcontentdecryptionmodule_impl.h"
-#include "content/renderer/pepper/pepper_webplugin_impl.h"
#include "media/base/bind_to_current_loop.h"
#include "media/blink/encrypted_media_player_support.h"
#include "third_party/WebKit/public/platform/WebContentDecryptionModule.h"
@@ -26,6 +26,8 @@
#if defined(ENABLE_PEPPER_CDMS)
#include "content/renderer/media/crypto/pepper_cdm_wrapper_impl.h"
+#elif defined(ENABLE_BROWSER_CDMS)
+#error Browser side CDM in WMPI for prefixed EME API not supported yet.
#endif
using blink::WebMediaPlayer;
@@ -40,7 +42,6 @@ namespace content {
#define BIND_TO_RENDER_LOOP1(function, arg1) \
(media::BindToCurrentLoop(base::Bind(function, AsWeakPtr(), arg1)))
-
// Prefix for histograms related to Encrypted Media Extensions.
static const char* kMediaEme = "Media.EME.";
@@ -159,7 +160,6 @@ EncryptedMediaPlayerSupportImpl::GenerateKeyRequest(
return e;
}
-
WebMediaPlayer::MediaKeyException
EncryptedMediaPlayerSupportImpl::GenerateKeyRequestInternal(
blink::WebLocalFrame* frame,
@@ -173,21 +173,23 @@ EncryptedMediaPlayerSupportImpl::GenerateKeyRequestInternal(
if (current_key_system_.empty()) {
if (!proxy_decryptor_) {
proxy_decryptor_.reset(new ProxyDecryptor(
-#if defined(ENABLE_PEPPER_CDMS)
- // Create() must be called synchronously as |frame| may not be
- // valid afterwards.
- base::Bind(&PepperCdmWrapperImpl::Create, frame),
-#elif defined(ENABLE_BROWSER_CDMS)
-#error Browser side CDM in WMPI for prefixed EME API not supported yet.
-#endif
BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupportImpl::OnKeyAdded),
BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupportImpl::OnKeyError),
BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupportImpl::OnKeyMessage)));
}
GURL security_origin(frame->document().securityOrigin().toString());
- if (!proxy_decryptor_->InitializeCDM(key_system, security_origin))
+
+ RenderCdmFactory cdm_factory(
+#if defined(ENABLE_PEPPER_CDMS)
+ base::Bind(&PepperCdmWrapperImpl::Create, frame)
+#endif
+ );
+
+ if (!proxy_decryptor_->InitializeCDM(&cdm_factory, key_system,
+ security_origin)) {
return WebMediaPlayer::MediaKeyExceptionKeySystemNotSupported;
+ }
if (proxy_decryptor_ && !decryptor_ready_cb_.is_null()) {
base::ResetAndReturn(&decryptor_ready_cb_)
« no previous file with comments | « content/renderer/media/crypto/content_decryption_module_factory.cc ('k') | content/renderer/media/crypto/proxy_decryptor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698