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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 #include "content/renderer/render_process.h" | 99 #include "content/renderer/render_process.h" |
100 #include "content/renderer/render_thread_impl.h" | 100 #include "content/renderer/render_thread_impl.h" |
101 #include "content/renderer/render_view_impl.h" | 101 #include "content/renderer/render_view_impl.h" |
102 #include "content/renderer/render_widget_fullscreen_pepper.h" | 102 #include "content/renderer/render_widget_fullscreen_pepper.h" |
103 #include "content/renderer/renderer_webapplicationcachehost_impl.h" | 103 #include "content/renderer/renderer_webapplicationcachehost_impl.h" |
104 #include "content/renderer/renderer_webcolorchooser_impl.h" | 104 #include "content/renderer/renderer_webcolorchooser_impl.h" |
105 #include "content/renderer/screen_orientation/screen_orientation_dispatcher.h" | 105 #include "content/renderer/screen_orientation/screen_orientation_dispatcher.h" |
106 #include "content/renderer/shared_worker_repository.h" | 106 #include "content/renderer/shared_worker_repository.h" |
107 #include "content/renderer/skia_benchmarking_extension.h" | 107 #include "content/renderer/skia_benchmarking_extension.h" |
108 #include "content/renderer/stats_collection_controller.h" | 108 #include "content/renderer/stats_collection_controller.h" |
| 109 #include "content/renderer/usb/web_usb_client_impl.h" |
109 #include "content/renderer/web_ui_extension.h" | 110 #include "content/renderer/web_ui_extension.h" |
110 #include "content/renderer/websharedworker_proxy.h" | 111 #include "content/renderer/websharedworker_proxy.h" |
| 112 #include "device/devices_app/public/cpp/constants.h" |
111 #include "gin/modules/module_registry.h" | 113 #include "gin/modules/module_registry.h" |
112 #include "media/base/audio_renderer_mixer_input.h" | 114 #include "media/base/audio_renderer_mixer_input.h" |
113 #include "media/base/media_log.h" | 115 #include "media/base/media_log.h" |
114 #include "media/blink/webencryptedmediaclient_impl.h" | 116 #include "media/blink/webencryptedmediaclient_impl.h" |
115 #include "media/blink/webmediaplayer_impl.h" | 117 #include "media/blink/webmediaplayer_impl.h" |
116 #include "media/blink/webmediaplayer_params.h" | 118 #include "media/blink/webmediaplayer_params.h" |
117 #include "media/renderers/gpu_video_accelerator_factories.h" | 119 #include "media/renderers/gpu_video_accelerator_factories.h" |
| 120 #include "mojo/common/url_type_converters.h" |
118 #include "net/base/data_url.h" | 121 #include "net/base/data_url.h" |
119 #include "net/base/net_errors.h" | 122 #include "net/base/net_errors.h" |
120 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 123 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
121 #include "net/http/http_util.h" | 124 #include "net/http/http_util.h" |
122 #include "third_party/WebKit/public/platform/WebStorageQuotaCallbacks.h" | 125 #include "third_party/WebKit/public/platform/WebStorageQuotaCallbacks.h" |
123 #include "third_party/WebKit/public/platform/WebString.h" | 126 #include "third_party/WebKit/public/platform/WebString.h" |
124 #include "third_party/WebKit/public/platform/WebURL.h" | 127 #include "third_party/WebKit/public/platform/WebURL.h" |
125 #include "third_party/WebKit/public/platform/WebURLError.h" | 128 #include "third_party/WebKit/public/platform/WebURLError.h" |
126 #include "third_party/WebKit/public/platform/WebURLResponse.h" | 129 #include "third_party/WebKit/public/platform/WebURLResponse.h" |
127 #include "third_party/WebKit/public/platform/WebVector.h" | 130 #include "third_party/WebKit/public/platform/WebVector.h" |
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
697 // deleted when the RenderFrame gets deleted. | 700 // deleted when the RenderFrame gets deleted. |
698 #if defined(OS_ANDROID) | 701 #if defined(OS_ANDROID) |
699 new GinJavaBridgeDispatcher(this); | 702 new GinJavaBridgeDispatcher(this); |
700 #endif | 703 #endif |
701 | 704 |
702 #if defined(ENABLE_PLUGINS) | 705 #if defined(ENABLE_PLUGINS) |
703 plugin_power_saver_helper_ = new PluginPowerSaverHelper(this); | 706 plugin_power_saver_helper_ = new PluginPowerSaverHelper(this); |
704 #endif | 707 #endif |
705 | 708 |
706 manifest_manager_ = new ManifestManager(this); | 709 manifest_manager_ = new ManifestManager(this); |
| 710 |
| 711 GetServiceRegistry()->ConnectToRemoteService(mojo::GetProxy(&mojo_shell_)); |
707 } | 712 } |
708 | 713 |
709 RenderFrameImpl::~RenderFrameImpl() { | 714 RenderFrameImpl::~RenderFrameImpl() { |
710 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone()); | 715 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone()); |
711 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct()); | 716 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct()); |
712 | 717 |
713 base::trace_event::TraceLog::GetInstance()->RemoveProcessLabel(routing_id_); | 718 base::trace_event::TraceLog::GetInstance()->RemoveProcessLabel(routing_id_); |
714 | 719 |
715 #if defined(VIDEO_HOLE) | 720 #if defined(VIDEO_HOLE) |
716 if (contains_media_player_) | 721 if (contains_media_player_) |
(...skipping 3093 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3810 | 3815 |
3811 blink::WebBluetooth* RenderFrameImpl::bluetooth() { | 3816 blink::WebBluetooth* RenderFrameImpl::bluetooth() { |
3812 if (!bluetooth_) { | 3817 if (!bluetooth_) { |
3813 bluetooth_.reset(new WebBluetoothImpl( | 3818 bluetooth_.reset(new WebBluetoothImpl( |
3814 ChildThreadImpl::current()->thread_safe_sender(), routing_id_)); | 3819 ChildThreadImpl::current()->thread_safe_sender(), routing_id_)); |
3815 } | 3820 } |
3816 | 3821 |
3817 return bluetooth_.get(); | 3822 return bluetooth_.get(); |
3818 } | 3823 } |
3819 | 3824 |
| 3825 blink::WebUSBClient* RenderFrameImpl::usbClient() { |
| 3826 if (!usb_client_) { |
| 3827 mojo::ServiceProviderPtr device_services = |
| 3828 ConnectToApplication(GURL(device::kDevicesMojoAppUrl)); |
| 3829 usb_client_.reset(new WebUSBClientImpl(device_services.Pass())); |
| 3830 } |
| 3831 return usb_client_.get(); |
| 3832 } |
| 3833 |
3820 #if defined(ENABLE_WEBVR) | 3834 #if defined(ENABLE_WEBVR) |
3821 blink::WebVRClient* RenderFrameImpl::webVRClient() { | 3835 blink::WebVRClient* RenderFrameImpl::webVRClient() { |
3822 if (!vr_dispatcher_) | 3836 if (!vr_dispatcher_) |
3823 vr_dispatcher_.reset(new VRDispatcher(GetServiceRegistry())); | 3837 vr_dispatcher_.reset(new VRDispatcher(GetServiceRegistry())); |
3824 | 3838 |
3825 return vr_dispatcher_.get(); | 3839 return vr_dispatcher_.get(); |
3826 } | 3840 } |
3827 #endif | 3841 #endif |
3828 | 3842 |
3829 void RenderFrameImpl::DidPlay(WebMediaPlayer* player) { | 3843 void RenderFrameImpl::DidPlay(WebMediaPlayer* player) { |
(...skipping 1170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5000 | 5014 |
5001 media::MediaPermission* RenderFrameImpl::GetMediaPermission() { | 5015 media::MediaPermission* RenderFrameImpl::GetMediaPermission() { |
5002 if (!media_permission_dispatcher_) | 5016 if (!media_permission_dispatcher_) |
5003 media_permission_dispatcher_ = new MediaPermissionDispatcher(this); | 5017 media_permission_dispatcher_ = new MediaPermissionDispatcher(this); |
5004 return media_permission_dispatcher_; | 5018 return media_permission_dispatcher_; |
5005 } | 5019 } |
5006 | 5020 |
5007 #if defined(ENABLE_MOJO_MEDIA) | 5021 #if defined(ENABLE_MOJO_MEDIA) |
5008 media::interfaces::ServiceFactory* RenderFrameImpl::GetMediaServiceFactory() { | 5022 media::interfaces::ServiceFactory* RenderFrameImpl::GetMediaServiceFactory() { |
5009 if (!media_service_factory_) { | 5023 if (!media_service_factory_) { |
5010 mojo::InterfacePtr<mojo::Shell> shell_ptr; | 5024 mojo::ServiceProviderPtr service_provider = |
5011 GetServiceRegistry()->ConnectToRemoteService(mojo::GetProxy(&shell_ptr)); | 5025 ConnectToApplication(GURL("mojo:media")); |
5012 | |
5013 mojo::ServiceProviderPtr service_provider; | |
5014 mojo::URLRequestPtr request(mojo::URLRequest::New()); | |
5015 request->url = mojo::String::From("mojo:media"); | |
5016 shell_ptr->ConnectToApplication(request.Pass(), GetProxy(&service_provider), | |
5017 nullptr, nullptr); | |
5018 | |
5019 mojo::ConnectToService(service_provider.get(), &media_service_factory_); | 5026 mojo::ConnectToService(service_provider.get(), &media_service_factory_); |
5020 | |
5021 media_service_factory_.set_connection_error_handler( | 5027 media_service_factory_.set_connection_error_handler( |
5022 base::Bind(&RenderFrameImpl::OnMediaServiceFactoryConnectionError, | 5028 base::Bind(&RenderFrameImpl::OnMediaServiceFactoryConnectionError, |
5023 base::Unretained(this))); | 5029 base::Unretained(this))); |
5024 } | 5030 } |
5025 | 5031 |
5026 return media_service_factory_.get(); | 5032 return media_service_factory_.get(); |
5027 } | 5033 } |
5028 | 5034 |
5029 void RenderFrameImpl::OnMediaServiceFactoryConnectionError() { | 5035 void RenderFrameImpl::OnMediaServiceFactoryConnectionError() { |
5030 // TODO(xhwang): Resetting |media_service_factory_| could cause access | 5036 // TODO(xhwang): Resetting |media_service_factory_| could cause access |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5072 | 5078 |
5073 void RenderFrameImpl::RegisterMojoServices() { | 5079 void RenderFrameImpl::RegisterMojoServices() { |
5074 // Only main frame have ImageDownloader service. | 5080 // Only main frame have ImageDownloader service. |
5075 if (!frame_->parent()) { | 5081 if (!frame_->parent()) { |
5076 GetServiceRegistry()->AddService<image_downloader::ImageDownloader>( | 5082 GetServiceRegistry()->AddService<image_downloader::ImageDownloader>( |
5077 base::Bind(&ImageDownloaderImpl::CreateMojoService, | 5083 base::Bind(&ImageDownloaderImpl::CreateMojoService, |
5078 base::Unretained(this))); | 5084 base::Unretained(this))); |
5079 } | 5085 } |
5080 } | 5086 } |
5081 | 5087 |
| 5088 mojo::ServiceProviderPtr RenderFrameImpl::ConnectToApplication( |
| 5089 const GURL& url) { |
| 5090 DCHECK(mojo_shell_); |
| 5091 mojo::ServiceProviderPtr service_provider; |
| 5092 mojo::URLRequestPtr request(mojo::URLRequest::New()); |
| 5093 request->url = mojo::String::From(url); |
| 5094 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), |
| 5095 nullptr, nullptr); |
| 5096 return service_provider.Pass(); |
| 5097 } |
| 5098 |
5082 } // namespace content | 5099 } // namespace content |
OLD | NEW |