summaryrefslogtreecommitdiffstats
path: root/content/renderer/media/webmediaplayer_impl.cc
diff options
context:
space:
mode:
authorjrummell@chromium.org <jrummell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-27 19:40:27 +0000
committerjrummell@chromium.org <jrummell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-27 19:40:27 +0000
commitbf54920ec8cdd09ca4619a0689fc5d5713a99287 (patch)
tree803573dc6ef5481fe9023cac830ee9caed92a532 /content/renderer/media/webmediaplayer_impl.cc
parent3aa9ca7d36a77ac1cf4077ed041b0c624dea8eb2 (diff)
downloadchromium_src-bf54920ec8cdd09ca4619a0689fc5d5713a99287.zip
chromium_src-bf54920ec8cdd09ca4619a0689fc5d5713a99287.tar.gz
chromium_src-bf54920ec8cdd09ca4619a0689fc5d5713a99287.tar.bz2
Have PpapiDecryptor own the helper plugin
PpapiDecryptor now owns the Pepper helper plugin, which is wrapped in a class so that the helper plugin is destroyed properly. This also removes the dependency on WebMediaPlayerClientImpl to create the plugin so that it could also be created by ContentDecryptionModule::create() for EME WD (once we figure out how to pass the context). BUG=250049 TEST=EME content tests pass Review URL: https://codereview.chromium.org/138383009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253900 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/media/webmediaplayer_impl.cc')
-rw-r--r--content/renderer/media/webmediaplayer_impl.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/content/renderer/media/webmediaplayer_impl.cc b/content/renderer/media/webmediaplayer_impl.cc
index a034bce..215148a 100644
--- a/content/renderer/media/webmediaplayer_impl.cc
+++ b/content/renderer/media/webmediaplayer_impl.cc
@@ -69,6 +69,10 @@
#include "v8/include/v8.h"
#include "webkit/renderer/compositor_bindings/web_layer_impl.h"
+#if defined(ENABLE_PEPPER_CDMS)
+#include "content/renderer/media/crypto/pepper_cdm_wrapper_impl.h"
+#endif
+
using blink::WebCanvas;
using blink::WebMediaPlayer;
using blink::WebRect;
@@ -764,8 +768,9 @@ WebMediaPlayerImpl::GenerateKeyRequestInternal(const std::string& key_system,
if (!proxy_decryptor_) {
proxy_decryptor_.reset(new ProxyDecryptor(
#if defined(ENABLE_PEPPER_CDMS)
- client_,
- frame_,
+ // Create() must be called synchronously as |frame_| may not be
+ // valid afterwards.
+ base::Bind(&PepperCdmWrapperImpl::Create, frame_),
#endif
BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnKeyAdded),
BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnKeyError),