OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/render_frame_impl.h" | 5 #include "content/renderer/render_frame_impl.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 3568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3579 | 3579 |
3580 blink::WebUserMediaClient* RenderFrameImpl::userMediaClient() { | 3580 blink::WebUserMediaClient* RenderFrameImpl::userMediaClient() { |
3581 if (!web_user_media_client_) | 3581 if (!web_user_media_client_) |
3582 InitializeUserMediaClient(); | 3582 InitializeUserMediaClient(); |
3583 return web_user_media_client_; | 3583 return web_user_media_client_; |
3584 } | 3584 } |
3585 | 3585 |
3586 blink::WebEncryptedMediaClient* RenderFrameImpl::encryptedMediaClient() { | 3586 blink::WebEncryptedMediaClient* RenderFrameImpl::encryptedMediaClient() { |
3587 if (!web_encrypted_media_client_) { | 3587 if (!web_encrypted_media_client_) { |
3588 web_encrypted_media_client_.reset(new media::WebEncryptedMediaClientImpl( | 3588 web_encrypted_media_client_.reset(new media::WebEncryptedMediaClientImpl( |
3589 // base::Unretained(this) is safe because WebEncryptedMediaClientImpl | |
3590 // is destructed before |this|, and does not give away ownership of the | |
3591 // callback. | |
3592 base::Bind(&RenderFrameImpl::AreSecureCodecsSupported, | |
3593 base::Unretained(this)), | |
3594 GetCdmFactory(), GetMediaPermission())); | 3589 GetCdmFactory(), GetMediaPermission())); |
3595 } | 3590 } |
3596 return web_encrypted_media_client_.get(); | 3591 return web_encrypted_media_client_.get(); |
3597 } | 3592 } |
3598 | 3593 |
3599 blink::WebMIDIClient* RenderFrameImpl::webMIDIClient() { | 3594 blink::WebMIDIClient* RenderFrameImpl::webMIDIClient() { |
3600 if (!midi_dispatcher_) | 3595 if (!midi_dispatcher_) |
3601 midi_dispatcher_ = new MidiDispatcher(this); | 3596 midi_dispatcher_ = new MidiDispatcher(this); |
3602 return midi_dispatcher_; | 3597 return midi_dispatcher_; |
3603 } | 3598 } |
(...skipping 1312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4916 } | 4911 } |
4917 | 4912 |
4918 #endif // defined(OS_ANDROID) | 4913 #endif // defined(OS_ANDROID) |
4919 | 4914 |
4920 media::MediaPermission* RenderFrameImpl::GetMediaPermission() { | 4915 media::MediaPermission* RenderFrameImpl::GetMediaPermission() { |
4921 if (!media_permission_dispatcher_) | 4916 if (!media_permission_dispatcher_) |
4922 media_permission_dispatcher_ = new MediaPermissionDispatcher(this); | 4917 media_permission_dispatcher_ = new MediaPermissionDispatcher(this); |
4923 return media_permission_dispatcher_; | 4918 return media_permission_dispatcher_; |
4924 } | 4919 } |
4925 | 4920 |
4926 bool RenderFrameImpl::AreSecureCodecsSupported() { | |
4927 #if defined(OS_ANDROID) | |
4928 // Hardware-secure codecs are only supported if secure surfaces are enabled. | |
4929 return render_view_->renderer_preferences_ | |
4930 .use_video_overlay_for_embedded_encrypted_video; | |
4931 #else | |
4932 return false; | |
4933 #endif // defined(OS_ANDROID) | |
4934 } | |
4935 | |
4936 media::CdmFactory* RenderFrameImpl::GetCdmFactory() { | 4921 media::CdmFactory* RenderFrameImpl::GetCdmFactory() { |
4937 #if defined(ENABLE_BROWSER_CDMS) | 4922 #if defined(ENABLE_BROWSER_CDMS) |
4938 if (!cdm_manager_) | 4923 if (!cdm_manager_) |
4939 cdm_manager_ = new RendererCdmManager(this); | 4924 cdm_manager_ = new RendererCdmManager(this); |
4940 #endif // defined(ENABLE_BROWSER_CDMS) | 4925 #endif // defined(ENABLE_BROWSER_CDMS) |
4941 | 4926 |
4942 if (!cdm_factory_) { | 4927 if (!cdm_factory_) { |
4943 DCHECK(frame_); | 4928 DCHECK(frame_); |
4944 cdm_factory_ = new RenderCdmFactory( | 4929 cdm_factory_ = new RenderCdmFactory( |
4945 #if defined(ENABLE_PEPPER_CDMS) | 4930 #if defined(ENABLE_PEPPER_CDMS) |
4946 base::Bind(&PepperCdmWrapperImpl::Create, frame_), | 4931 base::Bind(&PepperCdmWrapperImpl::Create, frame_), |
4947 #elif defined(ENABLE_BROWSER_CDMS) | 4932 #elif defined(ENABLE_BROWSER_CDMS) |
4948 cdm_manager_, | 4933 cdm_manager_, |
4949 #endif | 4934 #endif |
4950 this); | 4935 this); |
4951 } | 4936 } |
4952 | 4937 |
4953 return cdm_factory_; | 4938 return cdm_factory_; |
4954 } | 4939 } |
4955 | 4940 |
4956 } // namespace content | 4941 } // namespace content |
OLD | NEW |