summaryrefslogtreecommitdiffstats
path: root/media/blink
diff options
context:
space:
mode:
authorxhwang <xhwang@chromium.org>2015-01-31 21:20:46 -0800
committerCommit bot <commit-bot@chromium.org>2015-02-01 05:21:45 +0000
commit60b430a11d662a93795cef0fd137cb7018172ab9 (patch)
treeb392babb6d1b234867be9a6b24b60931df56740f /media/blink
parent18493ebe8d788acb9be1a03f2af791d9c3eebd38 (diff)
downloadchromium_src-60b430a11d662a93795cef0fd137cb7018172ab9.zip
chromium_src-60b430a11d662a93795cef0fd137cb7018172ab9.tar.gz
chromium_src-60b430a11d662a93795cef0fd137cb7018172ab9.tar.bz2
media: Add DefaultMediaPermission.
Also pass MediaPermission to ProxyDecryptor, in preparation for triggering user prompt from ProxyDecryptor for prefixed EME implementation. TBR=jam@chromium.org,aa@chromium.org BUG=446263 Review URL: https://codereview.chromium.org/887873003 Cr-Commit-Position: refs/heads/master@{#314082}
Diffstat (limited to 'media/blink')
-rw-r--r--media/blink/encrypted_media_player_support.cc3
-rw-r--r--media/blink/encrypted_media_player_support.h4
-rw-r--r--media/blink/webencryptedmediaclient_impl.cc3
-rw-r--r--media/blink/webmediaplayer_impl.cc1
-rw-r--r--media/blink/webmediaplayer_params.cc2
-rw-r--r--media/blink/webmediaplayer_params.h10
6 files changed, 21 insertions, 2 deletions
diff --git a/media/blink/encrypted_media_player_support.cc b/media/blink/encrypted_media_player_support.cc
index 01422e5..920bfc9 100644
--- a/media/blink/encrypted_media_player_support.cc
+++ b/media/blink/encrypted_media_player_support.cc
@@ -115,9 +115,11 @@ static std::string GuessInitDataType(const unsigned char* init_data,
EncryptedMediaPlayerSupport::EncryptedMediaPlayerSupport(
scoped_ptr<CdmFactory> cdm_factory,
blink::WebMediaPlayerClient* client,
+ MediaPermission* media_permission,
const SetCdmContextCB& set_cdm_context_cb)
: cdm_factory_(cdm_factory.Pass()),
client_(client),
+ media_permission_(media_permission),
set_cdm_context_cb_(set_cdm_context_cb) {
}
@@ -156,6 +158,7 @@ EncryptedMediaPlayerSupport::GenerateKeyRequestInternal(
if (current_key_system_.empty()) {
if (!proxy_decryptor_) {
proxy_decryptor_.reset(new ProxyDecryptor(
+ media_permission_,
BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyAdded),
BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyError),
BIND_TO_RENDER_LOOP(&EncryptedMediaPlayerSupport::OnKeyMessage)));
diff --git a/media/blink/encrypted_media_player_support.h b/media/blink/encrypted_media_player_support.h
index c261ec3..c512026 100644
--- a/media/blink/encrypted_media_player_support.h
+++ b/media/blink/encrypted_media_player_support.h
@@ -27,6 +27,7 @@ class WebString;
namespace media {
+class MediaPermission;
class WebContentDecryptionModuleImpl;
// Provides support to prefixed EME implementation.
@@ -40,6 +41,7 @@ class EncryptedMediaPlayerSupport
EncryptedMediaPlayerSupport(scoped_ptr<CdmFactory> cdm_factory,
blink::WebMediaPlayerClient* client,
+ MediaPermission* media_permission,
const SetCdmContextCB& set_cdm_context_cb);
~EncryptedMediaPlayerSupport();
@@ -96,6 +98,8 @@ class EncryptedMediaPlayerSupport
blink::WebMediaPlayerClient* client_;
+ MediaPermission* media_permission_;
+
// The currently selected key system. Empty string means that no key system
// has been selected.
std::string current_key_system_;
diff --git a/media/blink/webencryptedmediaclient_impl.cc b/media/blink/webencryptedmediaclient_impl.cc
index 90b62d0..5cd9611 100644
--- a/media/blink/webencryptedmediaclient_impl.cc
+++ b/media/blink/webencryptedmediaclient_impl.cc
@@ -188,10 +188,11 @@ class WebEncryptedMediaClientImpl::Reporter {
WebEncryptedMediaClientImpl::WebEncryptedMediaClientImpl(
scoped_ptr<CdmFactory> cdm_factory,
- MediaPermission* /* media_permission */)
+ MediaPermission* media_permission)
: cdm_factory_(cdm_factory.Pass()) {
// TODO(sandersd): Use |media_permission| to check for media permissions in
// this class.
+ DCHECK(media_permission);
}
WebEncryptedMediaClientImpl::~WebEncryptedMediaClientImpl() {
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
index 21b8012..12839eb 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -144,6 +144,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
encrypted_media_support_(
cdm_factory.Pass(),
client,
+ params.media_permission(),
base::Bind(&WebMediaPlayerImpl::SetCdm, AsWeakPtr())),
renderer_factory_(renderer_factory.Pass()) {
// Threaded compositing isn't enabled universally yet.
diff --git a/media/blink/webmediaplayer_params.cc b/media/blink/webmediaplayer_params.cc
index df7f5b9..ec602a2 100644
--- a/media/blink/webmediaplayer_params.cc
+++ b/media/blink/webmediaplayer_params.cc
@@ -17,6 +17,7 @@ WebMediaPlayerParams::WebMediaPlayerParams(
const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner,
const Context3DCB& context_3d_cb,
+ MediaPermission* media_permission,
blink::WebContentDecryptionModule* initial_cdm)
: defer_load_cb_(defer_load_cb),
audio_renderer_sink_(audio_renderer_sink),
@@ -24,6 +25,7 @@ WebMediaPlayerParams::WebMediaPlayerParams(
media_task_runner_(media_task_runner),
compositor_task_runner_(compositor_task_runner),
context_3d_cb_(context_3d_cb),
+ media_permission_(media_permission),
initial_cdm_(initial_cdm) {
}
diff --git a/media/blink/webmediaplayer_params.h b/media/blink/webmediaplayer_params.h
index 6893ed6..02ca007 100644
--- a/media/blink/webmediaplayer_params.h
+++ b/media/blink/webmediaplayer_params.h
@@ -23,6 +23,7 @@ namespace media {
class AudioRendererSink;
class MediaLog;
+class MediaPermission;
// Holds parameters for constructing WebMediaPlayerImpl without having
// to plumb arguments through various abstraction layers.
@@ -40,6 +41,7 @@ class MEDIA_EXPORT WebMediaPlayerParams {
const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner,
const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner,
const Context3DCB& context_3d,
+ MediaPermission* media_permission,
blink::WebContentDecryptionModule* initial_cdm);
~WebMediaPlayerParams();
@@ -63,11 +65,14 @@ class MEDIA_EXPORT WebMediaPlayerParams {
return compositor_task_runner_;
}
+ Context3DCB context_3d_cb() const { return context_3d_cb_; }
+
+ MediaPermission* media_permission() const { return media_permission_; }
+
blink::WebContentDecryptionModule* initial_cdm() const {
return initial_cdm_;
}
- Context3DCB context_3d_cb() const { return context_3d_cb_; }
private:
DeferLoadCB defer_load_cb_;
@@ -76,6 +81,9 @@ class MEDIA_EXPORT WebMediaPlayerParams {
scoped_refptr<base::SingleThreadTaskRunner> media_task_runner_;
scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner_;
Context3DCB context_3d_cb_;
+
+ // TODO(xhwang): Remove after prefixed EME API support is removed.
+ MediaPermission* media_permission_;
blink::WebContentDecryptionModule* initial_cdm_;
DISALLOW_IMPLICIT_CONSTRUCTORS(WebMediaPlayerParams);