Chromium Code Reviews| 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 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 263 #endif | 263 #endif |
| 264 | 264 |
| 265 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER) | 265 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER) |
| 266 #include "media/mojo/clients/mojo_decoder_factory.h" // nogncheck | 266 #include "media/mojo/clients/mojo_decoder_factory.h" // nogncheck |
| 267 #endif | 267 #endif |
| 268 | 268 |
| 269 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | 269 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
| 270 #include "content/renderer/image_downloader/single_image_downloader.h" // nognc heck | 270 #include "content/renderer/image_downloader/single_image_downloader.h" // nognc heck |
| 271 #include "media/remoting/remoting_cdm_controller.h" // nogncheck | 271 #include "media/remoting/remoting_cdm_controller.h" // nogncheck |
| 272 #include "media/remoting/remoting_cdm_factory.h" // nogncheck | 272 #include "media/remoting/remoting_cdm_factory.h" // nogncheck |
| 273 #include "media/remoting/remoting_renderer_controller.h" // nogncheck | 273 #include "media/remoting/shared_session.h" // nogncheck |
| 274 #include "media/remoting/remoting_renderer_factory.h" // nogncheck | 274 #include "media/remoting/sink_availability_observer.h" // nogncheck |
| 275 #include "media/remoting/remoting_sink_observer.h" // nogncheck | 275 #include "media/remoting/situational_renderer_factory.h" // nogncheck |
| 276 #include "media/remoting/user_experience_controller.h" // nogncheck | |
|
xjz
2017/01/23 23:08:13
Do you mean renderer_controller.h now?
miu
2017/01/24 00:19:40
Done. Whoops! Forgot to update this file.
| |
| 276 #endif | 277 #endif |
| 277 | 278 |
| 278 using base::Time; | 279 using base::Time; |
| 279 using base::TimeDelta; | 280 using base::TimeDelta; |
| 280 using blink::WebCachePolicy; | 281 using blink::WebCachePolicy; |
| 281 using blink::WebContentDecryptionModule; | 282 using blink::WebContentDecryptionModule; |
| 282 using blink::WebContextMenuData; | 283 using blink::WebContextMenuData; |
| 283 using blink::WebCString; | 284 using blink::WebCString; |
| 284 using blink::WebData; | 285 using blink::WebData; |
| 285 using blink::WebDataSource; | 286 using blink::WebDataSource; |
| (...skipping 861 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1147 #endif | 1148 #endif |
| 1148 | 1149 |
| 1149 #if BUILDFLAG(ENABLE_PLUGINS) | 1150 #if BUILDFLAG(ENABLE_PLUGINS) |
| 1150 // Manages its own lifetime. | 1151 // Manages its own lifetime. |
| 1151 plugin_power_saver_helper_ = new PluginPowerSaverHelper(this); | 1152 plugin_power_saver_helper_ = new PluginPowerSaverHelper(this); |
| 1152 #endif | 1153 #endif |
| 1153 | 1154 |
| 1154 manifest_manager_ = new ManifestManager(this); | 1155 manifest_manager_ = new ManifestManager(this); |
| 1155 | 1156 |
| 1156 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | 1157 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
| 1157 // Create the RemotingSinkObserver to monitor the remoting sink availablity. | 1158 // Create the SinkAvailabilityObserver to monitor the remoting sink |
| 1159 // availablity. | |
| 1158 media::mojom::RemotingSourcePtr remoting_source; | 1160 media::mojom::RemotingSourcePtr remoting_source; |
| 1159 media::mojom::RemotingSourceRequest remoting_source_request(&remoting_source); | 1161 media::mojom::RemotingSourceRequest remoting_source_request(&remoting_source); |
| 1160 media::mojom::RemoterPtr remoter; | 1162 media::mojom::RemoterPtr remoter; |
| 1161 GetRemoterFactory()->Create(std::move(remoting_source), | 1163 GetRemoterFactory()->Create(std::move(remoting_source), |
| 1162 mojo::MakeRequest(&remoter)); | 1164 mojo::MakeRequest(&remoter)); |
| 1163 remoting_sink_observer_ = base::MakeUnique<media::RemotingSinkObserver>( | 1165 remoting_sink_observer_ = |
| 1164 std::move(remoting_source_request), std::move(remoter)); | 1166 base::MakeUnique<media::remoting::SinkAvailabilityObserver>( |
| 1167 std::move(remoting_source_request), std::move(remoter)); | |
| 1165 #endif // BUILDFLAG(ENABLE_MEDIA_REMOTING) | 1168 #endif // BUILDFLAG(ENABLE_MEDIA_REMOTING) |
| 1166 } | 1169 } |
| 1167 | 1170 |
| 1168 RenderFrameImpl::~RenderFrameImpl() { | 1171 RenderFrameImpl::~RenderFrameImpl() { |
| 1169 // If file chooser is still waiting for answer, dispatch empty answer. | 1172 // If file chooser is still waiting for answer, dispatch empty answer. |
| 1170 while (!file_chooser_completions_.empty()) { | 1173 while (!file_chooser_completions_.empty()) { |
| 1171 if (file_chooser_completions_.front()->completion) { | 1174 if (file_chooser_completions_.front()->completion) { |
| 1172 file_chooser_completions_.front()->completion->didChooseFile( | 1175 file_chooser_completions_.front()->completion->didChooseFile( |
| 1173 WebVector<WebString>()); | 1176 WebVector<WebString>()); |
| 1174 } | 1177 } |
| (...skipping 1582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2757 return NULL; | 2760 return NULL; |
| 2758 | 2761 |
| 2759 WebPluginParams params_to_use = params; | 2762 WebPluginParams params_to_use = params; |
| 2760 params_to_use.mimeType = WebString::fromUTF8(mime_type); | 2763 params_to_use.mimeType = WebString::fromUTF8(mime_type); |
| 2761 return CreatePlugin(frame, info, params_to_use, nullptr /* throttler */); | 2764 return CreatePlugin(frame, info, params_to_use, nullptr /* throttler */); |
| 2762 #else | 2765 #else |
| 2763 return NULL; | 2766 return NULL; |
| 2764 #endif // BUILDFLAG(ENABLE_PLUGINS) | 2767 #endif // BUILDFLAG(ENABLE_PLUGINS) |
| 2765 } | 2768 } |
| 2766 | 2769 |
| 2767 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | |
| 2768 std::unique_ptr<media::RemotingRendererController> | |
| 2769 RenderFrameImpl::CreateRemotingRendererController() { | |
| 2770 media::mojom::RemotingSourcePtr remoting_source; | |
| 2771 media::mojom::RemotingSourceRequest remoting_source_request(&remoting_source); | |
| 2772 media::mojom::RemoterPtr remoter; | |
| 2773 GetRemoterFactory()->Create(std::move(remoting_source), | |
| 2774 mojo::MakeRequest(&remoter)); | |
| 2775 return base::MakeUnique<media::RemotingRendererController>( | |
| 2776 make_scoped_refptr(new media::RemotingSourceImpl( | |
| 2777 std::move(remoting_source_request), std::move(remoter)))); | |
| 2778 } | |
| 2779 #endif | |
| 2780 | |
| 2781 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( | 2770 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
| 2782 const blink::WebMediaPlayerSource& source, | 2771 const blink::WebMediaPlayerSource& source, |
| 2783 WebMediaPlayerClient* client, | 2772 WebMediaPlayerClient* client, |
| 2784 WebMediaPlayerEncryptedMediaClient* encrypted_client, | 2773 WebMediaPlayerEncryptedMediaClient* encrypted_client, |
| 2785 WebContentDecryptionModule* initial_cdm, | 2774 WebContentDecryptionModule* initial_cdm, |
| 2786 const blink::WebString& sink_id) { | 2775 const blink::WebString& sink_id) { |
| 2787 blink::WebMediaStream web_stream = | 2776 blink::WebMediaStream web_stream = |
| 2788 GetWebMediaStreamFromWebMediaPlayerSource(source); | 2777 GetWebMediaStreamFromWebMediaPlayerSource(source); |
| 2789 if (!web_stream.isNull()) | 2778 if (!web_stream.isNull()) |
| 2790 return CreateWebMediaPlayerForMediaStream(client, sink_id, | 2779 return CreateWebMediaPlayerForMediaStream(client, sink_id, |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 2815 | 2804 |
| 2816 scoped_refptr<media::MediaLog> media_log( | 2805 scoped_refptr<media::MediaLog> media_log( |
| 2817 new RenderMediaLog(url::Origin(frame_->getSecurityOrigin()).GetURL())); | 2806 new RenderMediaLog(url::Origin(frame_->getSecurityOrigin()).GetURL())); |
| 2818 | 2807 |
| 2819 #if defined(OS_ANDROID) | 2808 #if defined(OS_ANDROID) |
| 2820 if (UseWebMediaPlayerImpl(url) && !media_surface_manager_) | 2809 if (UseWebMediaPlayerImpl(url) && !media_surface_manager_) |
| 2821 media_surface_manager_ = new RendererSurfaceViewManager(this); | 2810 media_surface_manager_ = new RendererSurfaceViewManager(this); |
| 2822 #endif // defined(OS_ANDROID) | 2811 #endif // defined(OS_ANDROID) |
| 2823 | 2812 |
| 2824 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | 2813 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
| 2825 std::unique_ptr<media::RemotingRendererController> remoting_controller = | 2814 media::mojom::RemotingSourcePtr remoting_source; |
| 2826 CreateRemotingRendererController(); | 2815 media::mojom::RemotingSourceRequest remoting_source_request(&remoting_source); |
| 2816 media::mojom::RemoterPtr remoter; | |
| 2817 GetRemoterFactory()->Create(std::move(remoting_source), | |
| 2818 mojo::MakeRequest(&remoter)); | |
| 2819 using RemotingController = media::remoting::UserExperienceController; | |
|
xjz
2017/01/23 23:08:13
s/UserExperienceController/RendererController
miu
2017/01/24 00:19:40
Done.
| |
| 2820 std::unique_ptr<RemotingController> remoting_controller( | |
| 2821 new RemotingController(new media::remoting::SharedSession( | |
| 2822 std::move(remoting_source_request), std::move(remoter)))); | |
| 2827 base::WeakPtr<media::MediaObserver> media_observer = | 2823 base::WeakPtr<media::MediaObserver> media_observer = |
| 2828 remoting_controller->GetWeakPtr(); | 2824 remoting_controller->GetWeakPtr(); |
| 2829 #else | 2825 #else |
| 2830 base::WeakPtr<media::MediaObserver> media_observer = nullptr; | 2826 base::WeakPtr<media::MediaObserver> media_observer = nullptr; |
| 2831 #endif | 2827 #endif |
| 2832 | 2828 |
| 2833 media::WebMediaPlayerParams params( | 2829 media::WebMediaPlayerParams params( |
| 2834 base::Bind(&ContentRendererClient::DeferMediaLoad, | 2830 base::Bind(&ContentRendererClient::DeferMediaLoad, |
| 2835 base::Unretained(GetContentClient()->renderer()), | 2831 base::Unretained(GetContentClient()->renderer()), |
| 2836 static_cast<RenderFrame*>(this), | 2832 static_cast<RenderFrame*>(this), |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2878 GetMediaInterfaceProvider()); | 2874 GetMediaInterfaceProvider()); |
| 2879 #else | 2875 #else |
| 2880 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( | 2876 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( |
| 2881 media_log, GetDecoderFactory(), | 2877 media_log, GetDecoderFactory(), |
| 2882 base::Bind(&RenderThreadImpl::GetGpuFactories, | 2878 base::Bind(&RenderThreadImpl::GetGpuFactories, |
| 2883 base::Unretained(render_thread))); | 2879 base::Unretained(render_thread))); |
| 2884 #endif | 2880 #endif |
| 2885 } | 2881 } |
| 2886 | 2882 |
| 2887 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | 2883 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
| 2888 media::RemotingRendererController* remoting_controller_ptr = | 2884 auto* const remoting_controller_ptr = remoting_controller.get(); |
| 2889 remoting_controller.get(); | 2885 media_renderer_factory = |
| 2890 media_renderer_factory = base::MakeUnique<media::RemotingRendererFactory>( | 2886 base::MakeUnique<media::remoting::SituationalRendererFactory>( |
| 2891 std::move(media_renderer_factory), std::move(remoting_controller)); | 2887 std::move(media_renderer_factory), std::move(remoting_controller)); |
| 2892 #endif | 2888 #endif |
| 2893 | 2889 |
| 2894 if (!url_index_.get() || url_index_->frame() != frame_) | 2890 if (!url_index_.get() || url_index_->frame() != frame_) |
| 2895 url_index_.reset(new media::UrlIndex(frame_)); | 2891 url_index_.reset(new media::UrlIndex(frame_)); |
| 2896 | 2892 |
| 2897 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl( | 2893 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl( |
| 2898 frame_, client, encrypted_client, | 2894 frame_, client, encrypted_client, |
| 2899 GetWebMediaPlayerDelegate()->AsWeakPtr(), | 2895 GetWebMediaPlayerDelegate()->AsWeakPtr(), |
| 2900 std::move(media_renderer_factory), url_index_, params); | 2896 std::move(media_renderer_factory), url_index_, params); |
| 2901 | 2897 |
| (...skipping 3702 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6604 } | 6600 } |
| 6605 #endif // defined(ENABLE_MOJO_CDM) | 6601 #endif // defined(ENABLE_MOJO_CDM) |
| 6606 | 6602 |
| 6607 #if BUILDFLAG(ENABLE_PEPPER_CDMS) | 6603 #if BUILDFLAG(ENABLE_PEPPER_CDMS) |
| 6608 DCHECK(frame_); | 6604 DCHECK(frame_); |
| 6609 cdm_factory_.reset( | 6605 cdm_factory_.reset( |
| 6610 new RenderCdmFactory(base::Bind(&PepperCdmWrapperImpl::Create, frame_))); | 6606 new RenderCdmFactory(base::Bind(&PepperCdmWrapperImpl::Create, frame_))); |
| 6611 #endif // BUILDFLAG(ENABLE_PEPPER_CDMS) | 6607 #endif // BUILDFLAG(ENABLE_PEPPER_CDMS) |
| 6612 | 6608 |
| 6613 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | 6609 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
| 6614 cdm_factory_.reset(new media::RemotingCdmFactory( | 6610 cdm_factory_.reset(new media::remoting::RemotingCdmFactory( |
| 6615 std::move(cdm_factory_), GetRemoterFactory(), | 6611 std::move(cdm_factory_), GetRemoterFactory(), |
| 6616 std::move(remoting_sink_observer_))); | 6612 std::move(remoting_sink_observer_))); |
| 6617 #endif // BUILDFLAG(ENABLE_MEDIA_REMOTING) | 6613 #endif // BUILDFLAG(ENABLE_MEDIA_REMOTING) |
| 6618 | 6614 |
| 6619 return cdm_factory_.get(); | 6615 return cdm_factory_.get(); |
| 6620 } | 6616 } |
| 6621 | 6617 |
| 6622 media::DecoderFactory* RenderFrameImpl::GetDecoderFactory() { | 6618 media::DecoderFactory* RenderFrameImpl::GetDecoderFactory() { |
| 6623 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER) | 6619 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER) |
| 6624 if (!decoder_factory_) { | 6620 if (!decoder_factory_) { |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6880 // event target. Potentially a Pepper plugin will receive the event. | 6876 // event target. Potentially a Pepper plugin will receive the event. |
| 6881 // In order to tell whether a plugin gets the last mouse event and which it | 6877 // In order to tell whether a plugin gets the last mouse event and which it |
| 6882 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets | 6878 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets |
| 6883 // the event, it will notify us via DidReceiveMouseEvent() and set itself as | 6879 // the event, it will notify us via DidReceiveMouseEvent() and set itself as |
| 6884 // |pepper_last_mouse_event_target_|. | 6880 // |pepper_last_mouse_event_target_|. |
| 6885 pepper_last_mouse_event_target_ = nullptr; | 6881 pepper_last_mouse_event_target_ = nullptr; |
| 6886 #endif | 6882 #endif |
| 6887 } | 6883 } |
| 6888 | 6884 |
| 6889 } // namespace content | 6885 } // namespace content |
| OLD | NEW |