| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index ad515e04ec88f74915717fe28144c4a654ecfeec..e23571e1355edd425317a61ac09b85e672bb6d7d 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -3586,6 +3586,11 @@ blink::WebUserMediaClient* RenderFrameImpl::userMediaClient() {
|
| blink::WebEncryptedMediaClient* RenderFrameImpl::encryptedMediaClient() {
|
| if (!web_encrypted_media_client_) {
|
| web_encrypted_media_client_.reset(new media::WebEncryptedMediaClientImpl(
|
| + // base::Unretained(this) is safe because WebEncryptedMediaClientImpl
|
| + // is destructed before |this|, and does not give away ownership of the
|
| + // callback.
|
| + base::Bind(&RenderFrameImpl::AreSecureCodecsSupported,
|
| + base::Unretained(this)),
|
| GetCdmFactory(), GetMediaPermission()));
|
| }
|
| return web_encrypted_media_client_.get();
|
| @@ -4918,6 +4923,16 @@ media::MediaPermission* RenderFrameImpl::GetMediaPermission() {
|
| return media_permission_dispatcher_;
|
| }
|
|
|
| +bool RenderFrameImpl::AreSecureCodecsSupported() {
|
| +#if defined(OS_ANDROID)
|
| + // Hardware-secure codecs are only supported if secure surfaces are enabled.
|
| + return render_view_->renderer_preferences_
|
| + .use_video_overlay_for_embedded_encrypted_video;
|
| +#else
|
| + return false;
|
| +#endif // defined(OS_ANDROID)
|
| +}
|
| +
|
| media::CdmFactory* RenderFrameImpl::GetCdmFactory() {
|
| #if defined(ENABLE_BROWSER_CDMS)
|
| if (!cdm_manager_)
|
|
|