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 #include <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 #include "media/mojo/clients/mojo_renderer_factory.h" // nogncheck | 252 #include "media/mojo/clients/mojo_renderer_factory.h" // nogncheck |
253 #else | 253 #else |
254 #include "media/renderers/default_renderer_factory.h" | 254 #include "media/renderers/default_renderer_factory.h" |
255 #endif | 255 #endif |
256 | 256 |
257 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER) | 257 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER) |
258 #include "media/mojo/clients/mojo_decoder_factory.h" // nogncheck | 258 #include "media/mojo/clients/mojo_decoder_factory.h" // nogncheck |
259 #endif | 259 #endif |
260 | 260 |
261 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | 261 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
262 #include "media/remoting/remoting_controller.h" // nogncheck | 262 #include "media/remoting/remoting_cdm_controller.h" // nogncheck |
| 263 #include "media/remoting/remoting_cdm_factory.h" // nogncheck |
| 264 #include "media/remoting/remoting_renderer_controller.h" // nogncheck |
263 #include "media/remoting/remoting_renderer_factory.h" // nogncheck | 265 #include "media/remoting/remoting_renderer_factory.h" // nogncheck |
264 #endif | 266 #endif |
265 | 267 |
266 using base::Time; | 268 using base::Time; |
267 using base::TimeDelta; | 269 using base::TimeDelta; |
268 using blink::WebCachePolicy; | 270 using blink::WebCachePolicy; |
269 using blink::WebContentDecryptionModule; | 271 using blink::WebContentDecryptionModule; |
270 using blink::WebContextMenuData; | 272 using blink::WebContextMenuData; |
271 using blink::WebCString; | 273 using blink::WebCString; |
272 using blink::WebData; | 274 using blink::WebData; |
(...skipping 2437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2710 | 2712 |
2711 WebPluginParams params_to_use = params; | 2713 WebPluginParams params_to_use = params; |
2712 params_to_use.mimeType = WebString::fromUTF8(mime_type); | 2714 params_to_use.mimeType = WebString::fromUTF8(mime_type); |
2713 return CreatePlugin(frame, info, params_to_use, nullptr /* throttler */); | 2715 return CreatePlugin(frame, info, params_to_use, nullptr /* throttler */); |
2714 #else | 2716 #else |
2715 return NULL; | 2717 return NULL; |
2716 #endif // defined(ENABLE_PLUGINS) | 2718 #endif // defined(ENABLE_PLUGINS) |
2717 } | 2719 } |
2718 | 2720 |
2719 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | 2721 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
2720 std::unique_ptr<media::RemotingController> | 2722 std::unique_ptr<media::RemotingRendererController> |
2721 RenderFrameImpl::CreateRemotingController() { | 2723 RenderFrameImpl::CreateRemotingRendererController() { |
2722 media::mojom::RemotingSourcePtr remoting_source; | 2724 media::mojom::RemotingSourcePtr remoting_source; |
2723 media::mojom::RemotingSourceRequest remoting_source_request = | 2725 media::mojom::RemotingSourceRequest remoting_source_request = |
2724 mojo::GetProxy(&remoting_source); | 2726 mojo::GetProxy(&remoting_source); |
2725 media::mojom::RemoterPtr remoter; | 2727 media::mojom::RemoterPtr remoter; |
2726 GetRemoterFactory()->Create(std::move(remoting_source), | 2728 GetRemoterFactory()->Create(std::move(remoting_source), |
2727 mojo::GetProxy(&remoter)); | 2729 mojo::GetProxy(&remoter)); |
2728 return base::MakeUnique<media::RemotingController>( | 2730 return base::MakeUnique<media::RemotingRendererController>( |
2729 std::move(remoting_source_request), std::move(remoter)); | 2731 make_scoped_refptr(new media::RemotingSourceImpl( |
| 2732 std::move(remoting_source_request), std::move(remoter)))); |
2730 } | 2733 } |
2731 #endif | 2734 #endif |
2732 | 2735 |
2733 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( | 2736 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
2734 const blink::WebMediaPlayerSource& source, | 2737 const blink::WebMediaPlayerSource& source, |
2735 WebMediaPlayerClient* client, | 2738 WebMediaPlayerClient* client, |
2736 WebMediaPlayerEncryptedMediaClient* encrypted_client, | 2739 WebMediaPlayerEncryptedMediaClient* encrypted_client, |
2737 WebContentDecryptionModule* initial_cdm, | 2740 WebContentDecryptionModule* initial_cdm, |
2738 const blink::WebString& sink_id) { | 2741 const blink::WebString& sink_id) { |
2739 blink::WebMediaStream web_stream = | 2742 blink::WebMediaStream web_stream = |
(...skipping 27 matching lines...) Expand all Loading... |
2767 | 2770 |
2768 scoped_refptr<media::MediaLog> media_log( | 2771 scoped_refptr<media::MediaLog> media_log( |
2769 new RenderMediaLog(url::Origin(frame_->getSecurityOrigin()).GetURL())); | 2772 new RenderMediaLog(url::Origin(frame_->getSecurityOrigin()).GetURL())); |
2770 | 2773 |
2771 #if defined(OS_ANDROID) | 2774 #if defined(OS_ANDROID) |
2772 if (UseWebMediaPlayerImpl(url) && !media_surface_manager_) | 2775 if (UseWebMediaPlayerImpl(url) && !media_surface_manager_) |
2773 media_surface_manager_ = new RendererSurfaceViewManager(this); | 2776 media_surface_manager_ = new RendererSurfaceViewManager(this); |
2774 #endif // defined(OS_ANDROID) | 2777 #endif // defined(OS_ANDROID) |
2775 | 2778 |
2776 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | 2779 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
2777 std::unique_ptr<media::RemotingController> remoting_controller = | 2780 std::unique_ptr<media::RemotingRendererController> remoting_controller = |
2778 CreateRemotingController(); | 2781 CreateRemotingRendererController(); |
2779 base::WeakPtr<media::MediaObserver> media_observer = | 2782 base::WeakPtr<media::MediaObserver> media_observer = |
2780 remoting_controller->GetWeakPtr(); | 2783 remoting_controller->GetWeakPtr(); |
2781 #else | 2784 #else |
2782 base::WeakPtr<media::MediaObserver> media_observer = nullptr; | 2785 base::WeakPtr<media::MediaObserver> media_observer = nullptr; |
2783 #endif | 2786 #endif |
2784 | 2787 |
2785 media::WebMediaPlayerParams params( | 2788 media::WebMediaPlayerParams params( |
2786 base::Bind(&ContentRendererClient::DeferMediaLoad, | 2789 base::Bind(&ContentRendererClient::DeferMediaLoad, |
2787 base::Unretained(GetContentClient()->renderer()), | 2790 base::Unretained(GetContentClient()->renderer()), |
2788 static_cast<RenderFrame*>(this), | 2791 static_cast<RenderFrame*>(this), |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2826 GetMediaInterfaceProvider()); | 2829 GetMediaInterfaceProvider()); |
2827 #else | 2830 #else |
2828 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( | 2831 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( |
2829 media_log, GetDecoderFactory(), | 2832 media_log, GetDecoderFactory(), |
2830 base::Bind(&RenderThreadImpl::GetGpuFactories, | 2833 base::Bind(&RenderThreadImpl::GetGpuFactories, |
2831 base::Unretained(render_thread))); | 2834 base::Unretained(render_thread))); |
2832 #endif | 2835 #endif |
2833 } | 2836 } |
2834 | 2837 |
2835 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | 2838 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
2836 media::RemotingController* remoting_controller_ptr = | 2839 media::RemotingRendererController* remoting_controller_ptr = |
2837 remoting_controller.get(); | 2840 remoting_controller.get(); |
2838 media_renderer_factory = base::MakeUnique<media::RemotingRendererFactory>( | 2841 media_renderer_factory = base::MakeUnique<media::RemotingRendererFactory>( |
2839 std::move(media_renderer_factory), std::move(remoting_controller)); | 2842 std::move(media_renderer_factory), std::move(remoting_controller)); |
2840 #endif | 2843 #endif |
2841 | 2844 |
2842 if (!url_index_.get() || url_index_->frame() != frame_) | 2845 if (!url_index_.get() || url_index_->frame() != frame_) |
2843 url_index_.reset(new media::UrlIndex(frame_)); | 2846 url_index_.reset(new media::UrlIndex(frame_)); |
2844 | 2847 |
2845 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl( | 2848 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl( |
2846 frame_, client, encrypted_client, | 2849 frame_, client, encrypted_client, |
(...skipping 3573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6420 | 6423 |
6421 #if defined(ENABLE_MOJO_CDM) | 6424 #if defined(ENABLE_MOJO_CDM) |
6422 if (UseMojoCdm()) { | 6425 if (UseMojoCdm()) { |
6423 cdm_factory_.reset(new media::MojoCdmFactory(GetMediaInterfaceProvider())); | 6426 cdm_factory_.reset(new media::MojoCdmFactory(GetMediaInterfaceProvider())); |
6424 return cdm_factory_.get(); | 6427 return cdm_factory_.get(); |
6425 } | 6428 } |
6426 #endif // defined(ENABLE_MOJO_CDM) | 6429 #endif // defined(ENABLE_MOJO_CDM) |
6427 | 6430 |
6428 #if BUILDFLAG(ENABLE_PEPPER_CDMS) | 6431 #if BUILDFLAG(ENABLE_PEPPER_CDMS) |
6429 DCHECK(frame_); | 6432 DCHECK(frame_); |
| 6433 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
| 6434 cdm_factory_.reset(new media::RemotingCdmFactory( |
| 6435 base::MakeUnique<RenderCdmFactory>( |
| 6436 base::Bind(&PepperCdmWrapperImpl::Create, frame_)), |
| 6437 GetRemoterFactory())); |
| 6438 #else |
6430 cdm_factory_.reset( | 6439 cdm_factory_.reset( |
6431 new RenderCdmFactory(base::Bind(&PepperCdmWrapperImpl::Create, frame_))); | 6440 new RenderCdmFactory(base::Bind(&PepperCdmWrapperImpl::Create, frame_))); |
| 6441 #endif // BUILDFLAG(ENABLE_MEDIA_REMOTING) |
6432 #endif // BUILDFLAG(ENABLE_PEPPER_CDMS) | 6442 #endif // BUILDFLAG(ENABLE_PEPPER_CDMS) |
6433 | 6443 |
6434 return cdm_factory_.get(); | 6444 return cdm_factory_.get(); |
6435 } | 6445 } |
6436 | 6446 |
6437 media::DecoderFactory* RenderFrameImpl::GetDecoderFactory() { | 6447 media::DecoderFactory* RenderFrameImpl::GetDecoderFactory() { |
6438 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER) | 6448 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER) |
6439 if (!decoder_factory_) { | 6449 if (!decoder_factory_) { |
6440 decoder_factory_.reset( | 6450 decoder_factory_.reset( |
6441 new media::MojoDecoderFactory(GetMediaInterfaceProvider())); | 6451 new media::MojoDecoderFactory(GetMediaInterfaceProvider())); |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6628 // event target. Potentially a Pepper plugin will receive the event. | 6638 // event target. Potentially a Pepper plugin will receive the event. |
6629 // In order to tell whether a plugin gets the last mouse event and which it | 6639 // In order to tell whether a plugin gets the last mouse event and which it |
6630 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets | 6640 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets |
6631 // the event, it will notify us via DidReceiveMouseEvent() and set itself as | 6641 // the event, it will notify us via DidReceiveMouseEvent() and set itself as |
6632 // |pepper_last_mouse_event_target_|. | 6642 // |pepper_last_mouse_event_target_|. |
6633 pepper_last_mouse_event_target_ = nullptr; | 6643 pepper_last_mouse_event_target_ = nullptr; |
6634 #endif | 6644 #endif |
6635 } | 6645 } |
6636 | 6646 |
6637 } // namespace content | 6647 } // namespace content |
OLD | NEW |