diff options
author | xhwang <xhwang@chromium.org> | 2015-01-31 21:20:46 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-01 05:21:45 +0000 |
commit | 60b430a11d662a93795cef0fd137cb7018172ab9 (patch) | |
tree | b392babb6d1b234867be9a6b24b60931df56740f /media/blink | |
parent | 18493ebe8d788acb9be1a03f2af791d9c3eebd38 (diff) | |
download | chromium_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.cc | 3 | ||||
-rw-r--r-- | media/blink/encrypted_media_player_support.h | 4 | ||||
-rw-r--r-- | media/blink/webencryptedmediaclient_impl.cc | 3 | ||||
-rw-r--r-- | media/blink/webmediaplayer_impl.cc | 1 | ||||
-rw-r--r-- | media/blink/webmediaplayer_params.cc | 2 | ||||
-rw-r--r-- | media/blink/webmediaplayer_params.h | 10 |
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); |