| 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 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 #include "content/renderer/stats_collection_controller.h" | 108 #include "content/renderer/stats_collection_controller.h" |
| 109 #include "content/renderer/web_ui_extension.h" | 109 #include "content/renderer/web_ui_extension.h" |
| 110 #include "content/renderer/websharedworker_proxy.h" | 110 #include "content/renderer/websharedworker_proxy.h" |
| 111 #include "gin/modules/module_registry.h" | 111 #include "gin/modules/module_registry.h" |
| 112 #include "media/base/audio_renderer_mixer_input.h" | 112 #include "media/base/audio_renderer_mixer_input.h" |
| 113 #include "media/base/media_log.h" | 113 #include "media/base/media_log.h" |
| 114 #include "media/blink/webencryptedmediaclient_impl.h" | 114 #include "media/blink/webencryptedmediaclient_impl.h" |
| 115 #include "media/blink/webmediaplayer_impl.h" | 115 #include "media/blink/webmediaplayer_impl.h" |
| 116 #include "media/blink/webmediaplayer_params.h" | 116 #include "media/blink/webmediaplayer_params.h" |
| 117 #include "media/renderers/gpu_video_accelerator_factories.h" | 117 #include "media/renderers/gpu_video_accelerator_factories.h" |
| 118 #include "mojo/common/url_type_converters.h" |
| 118 #include "net/base/data_url.h" | 119 #include "net/base/data_url.h" |
| 119 #include "net/base/net_errors.h" | 120 #include "net/base/net_errors.h" |
| 120 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 121 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
| 121 #include "net/http/http_util.h" | 122 #include "net/http/http_util.h" |
| 122 #include "third_party/WebKit/public/platform/WebStorageQuotaCallbacks.h" | 123 #include "third_party/WebKit/public/platform/WebStorageQuotaCallbacks.h" |
| 123 #include "third_party/WebKit/public/platform/WebString.h" | 124 #include "third_party/WebKit/public/platform/WebString.h" |
| 124 #include "third_party/WebKit/public/platform/WebURL.h" | 125 #include "third_party/WebKit/public/platform/WebURL.h" |
| 125 #include "third_party/WebKit/public/platform/WebURLError.h" | 126 #include "third_party/WebKit/public/platform/WebURLError.h" |
| 126 #include "third_party/WebKit/public/platform/WebURLResponse.h" | 127 #include "third_party/WebKit/public/platform/WebURLResponse.h" |
| 127 #include "third_party/WebKit/public/platform/WebVector.h" | 128 #include "third_party/WebKit/public/platform/WebVector.h" |
| 129 #include "third_party/WebKit/public/platform/modules/webusb/WebUSBClient.h" |
| 128 #include "third_party/WebKit/public/web/WebColorSuggestion.h" | 130 #include "third_party/WebKit/public/web/WebColorSuggestion.h" |
| 129 #include "third_party/WebKit/public/web/WebDocument.h" | 131 #include "third_party/WebKit/public/web/WebDocument.h" |
| 130 #include "third_party/WebKit/public/web/WebFrameWidget.h" | 132 #include "third_party/WebKit/public/web/WebFrameWidget.h" |
| 131 #include "third_party/WebKit/public/web/WebGlyphCache.h" | 133 #include "third_party/WebKit/public/web/WebGlyphCache.h" |
| 132 #include "third_party/WebKit/public/web/WebKit.h" | 134 #include "third_party/WebKit/public/web/WebKit.h" |
| 133 #include "third_party/WebKit/public/web/WebLocalFrame.h" | 135 #include "third_party/WebKit/public/web/WebLocalFrame.h" |
| 134 #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h" | 136 #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h" |
| 135 #include "third_party/WebKit/public/web/WebNavigationPolicy.h" | 137 #include "third_party/WebKit/public/web/WebNavigationPolicy.h" |
| 136 #include "third_party/WebKit/public/web/WebPlugin.h" | 138 #include "third_party/WebKit/public/web/WebPlugin.h" |
| 137 #include "third_party/WebKit/public/web/WebPluginParams.h" | 139 #include "third_party/WebKit/public/web/WebPluginParams.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 167 #include <cpu-features.h> | 169 #include <cpu-features.h> |
| 168 | 170 |
| 169 #include "content/common/gpu/client/context_provider_command_buffer.h" | 171 #include "content/common/gpu/client/context_provider_command_buffer.h" |
| 170 #include "content/renderer/android/synchronous_compositor_factory.h" | 172 #include "content/renderer/android/synchronous_compositor_factory.h" |
| 171 #include "content/renderer/java/gin_java_bridge_dispatcher.h" | 173 #include "content/renderer/java/gin_java_bridge_dispatcher.h" |
| 172 #include "content/renderer/media/android/renderer_media_player_manager.h" | 174 #include "content/renderer/media/android/renderer_media_player_manager.h" |
| 173 #include "content/renderer/media/android/stream_texture_factory_impl.h" | 175 #include "content/renderer/media/android/stream_texture_factory_impl.h" |
| 174 #include "content/renderer/media/android/webmediaplayer_android.h" | 176 #include "content/renderer/media/android/webmediaplayer_android.h" |
| 175 #else | 177 #else |
| 176 #include "cc/blink/context_provider_web_context.h" | 178 #include "cc/blink/context_provider_web_context.h" |
| 179 #include "content/renderer/usb/web_usb_client_impl.h" |
| 180 #include "device/devices_app/public/cpp/constants.h" |
| 177 #endif | 181 #endif |
| 178 | 182 |
| 179 #if defined(ENABLE_PEPPER_CDMS) | 183 #if defined(ENABLE_PEPPER_CDMS) |
| 180 #include "content/renderer/media/crypto/pepper_cdm_wrapper_impl.h" | 184 #include "content/renderer/media/crypto/pepper_cdm_wrapper_impl.h" |
| 181 #elif defined(ENABLE_BROWSER_CDMS) | 185 #elif defined(ENABLE_BROWSER_CDMS) |
| 182 #include "content/renderer/media/crypto/renderer_cdm_manager.h" | 186 #include "content/renderer/media/crypto/renderer_cdm_manager.h" |
| 183 #endif | 187 #endif |
| 184 | 188 |
| 185 #if defined(ENABLE_MOJO_MEDIA) | 189 #if defined(ENABLE_MOJO_MEDIA) |
| 186 #include "media/mojo/services/mojo_cdm_factory.h" | 190 #include "media/mojo/services/mojo_cdm_factory.h" |
| (...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 698 // deleted when the RenderFrame gets deleted. | 702 // deleted when the RenderFrame gets deleted. |
| 699 #if defined(OS_ANDROID) | 703 #if defined(OS_ANDROID) |
| 700 new GinJavaBridgeDispatcher(this); | 704 new GinJavaBridgeDispatcher(this); |
| 701 #endif | 705 #endif |
| 702 | 706 |
| 703 #if defined(ENABLE_PLUGINS) | 707 #if defined(ENABLE_PLUGINS) |
| 704 plugin_power_saver_helper_ = new PluginPowerSaverHelper(this); | 708 plugin_power_saver_helper_ = new PluginPowerSaverHelper(this); |
| 705 #endif | 709 #endif |
| 706 | 710 |
| 707 manifest_manager_ = new ManifestManager(this); | 711 manifest_manager_ = new ManifestManager(this); |
| 712 |
| 713 GetServiceRegistry()->ConnectToRemoteService(mojo::GetProxy(&mojo_shell_)); |
| 708 } | 714 } |
| 709 | 715 |
| 710 RenderFrameImpl::~RenderFrameImpl() { | 716 RenderFrameImpl::~RenderFrameImpl() { |
| 711 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone()); | 717 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, RenderFrameGone()); |
| 712 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct()); | 718 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnDestruct()); |
| 713 | 719 |
| 714 base::trace_event::TraceLog::GetInstance()->RemoveProcessLabel(routing_id_); | 720 base::trace_event::TraceLog::GetInstance()->RemoveProcessLabel(routing_id_); |
| 715 | 721 |
| 716 #if defined(VIDEO_HOLE) | 722 #if defined(VIDEO_HOLE) |
| 717 if (contains_media_player_) | 723 if (contains_media_player_) |
| (...skipping 3086 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3804 | 3810 |
| 3805 blink::WebBluetooth* RenderFrameImpl::bluetooth() { | 3811 blink::WebBluetooth* RenderFrameImpl::bluetooth() { |
| 3806 if (!bluetooth_) { | 3812 if (!bluetooth_) { |
| 3807 bluetooth_.reset(new WebBluetoothImpl( | 3813 bluetooth_.reset(new WebBluetoothImpl( |
| 3808 ChildThreadImpl::current()->thread_safe_sender(), routing_id_)); | 3814 ChildThreadImpl::current()->thread_safe_sender(), routing_id_)); |
| 3809 } | 3815 } |
| 3810 | 3816 |
| 3811 return bluetooth_.get(); | 3817 return bluetooth_.get(); |
| 3812 } | 3818 } |
| 3813 | 3819 |
| 3820 blink::WebUSBClient* RenderFrameImpl::usbClient() { |
| 3821 #if !defined(OS_ANDROID) |
| 3822 if (!usb_client_) { |
| 3823 mojo::ServiceProviderPtr device_services = |
| 3824 ConnectToApplication(GURL(device::kDevicesMojoAppUrl)); |
| 3825 usb_client_.reset(new WebUSBClientImpl(device_services.Pass())); |
| 3826 } |
| 3827 #endif |
| 3828 return usb_client_.get(); |
| 3829 } |
| 3830 |
| 3814 #if defined(ENABLE_WEBVR) | 3831 #if defined(ENABLE_WEBVR) |
| 3815 blink::WebVRClient* RenderFrameImpl::webVRClient() { | 3832 blink::WebVRClient* RenderFrameImpl::webVRClient() { |
| 3816 if (!vr_dispatcher_) | 3833 if (!vr_dispatcher_) |
| 3817 vr_dispatcher_.reset(new VRDispatcher(GetServiceRegistry())); | 3834 vr_dispatcher_.reset(new VRDispatcher(GetServiceRegistry())); |
| 3818 | 3835 |
| 3819 return vr_dispatcher_.get(); | 3836 return vr_dispatcher_.get(); |
| 3820 } | 3837 } |
| 3821 #endif | 3838 #endif |
| 3822 | 3839 |
| 3823 void RenderFrameImpl::DidPlay(WebMediaPlayer* player) { | 3840 void RenderFrameImpl::DidPlay(WebMediaPlayer* player) { |
| (...skipping 1171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4995 | 5012 |
| 4996 media::MediaPermission* RenderFrameImpl::GetMediaPermission() { | 5013 media::MediaPermission* RenderFrameImpl::GetMediaPermission() { |
| 4997 if (!media_permission_dispatcher_) | 5014 if (!media_permission_dispatcher_) |
| 4998 media_permission_dispatcher_ = new MediaPermissionDispatcher(this); | 5015 media_permission_dispatcher_ = new MediaPermissionDispatcher(this); |
| 4999 return media_permission_dispatcher_; | 5016 return media_permission_dispatcher_; |
| 5000 } | 5017 } |
| 5001 | 5018 |
| 5002 #if defined(ENABLE_MOJO_MEDIA) | 5019 #if defined(ENABLE_MOJO_MEDIA) |
| 5003 media::interfaces::ServiceFactory* RenderFrameImpl::GetMediaServiceFactory() { | 5020 media::interfaces::ServiceFactory* RenderFrameImpl::GetMediaServiceFactory() { |
| 5004 if (!media_service_factory_) { | 5021 if (!media_service_factory_) { |
| 5005 mojo::InterfacePtr<mojo::Shell> shell_ptr; | 5022 mojo::ServiceProviderPtr service_provider = |
| 5006 GetServiceRegistry()->ConnectToRemoteService(mojo::GetProxy(&shell_ptr)); | 5023 ConnectToApplication(GURL("mojo:media")); |
| 5007 | |
| 5008 mojo::ServiceProviderPtr service_provider; | |
| 5009 mojo::URLRequestPtr request(mojo::URLRequest::New()); | |
| 5010 request->url = mojo::String::From("mojo:media"); | |
| 5011 shell_ptr->ConnectToApplication(request.Pass(), GetProxy(&service_provider), | |
| 5012 nullptr, nullptr); | |
| 5013 | |
| 5014 mojo::ConnectToService(service_provider.get(), &media_service_factory_); | 5024 mojo::ConnectToService(service_provider.get(), &media_service_factory_); |
| 5015 | |
| 5016 media_service_factory_.set_connection_error_handler( | 5025 media_service_factory_.set_connection_error_handler( |
| 5017 base::Bind(&RenderFrameImpl::OnMediaServiceFactoryConnectionError, | 5026 base::Bind(&RenderFrameImpl::OnMediaServiceFactoryConnectionError, |
| 5018 base::Unretained(this))); | 5027 base::Unretained(this))); |
| 5019 } | 5028 } |
| 5020 | 5029 |
| 5021 return media_service_factory_.get(); | 5030 return media_service_factory_.get(); |
| 5022 } | 5031 } |
| 5023 | 5032 |
| 5024 void RenderFrameImpl::OnMediaServiceFactoryConnectionError() { | 5033 void RenderFrameImpl::OnMediaServiceFactoryConnectionError() { |
| 5025 // TODO(xhwang): Resetting |media_service_factory_| could cause access | 5034 // TODO(xhwang): Resetting |media_service_factory_| could cause access |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5067 | 5076 |
| 5068 void RenderFrameImpl::RegisterMojoServices() { | 5077 void RenderFrameImpl::RegisterMojoServices() { |
| 5069 // Only main frame have ImageDownloader service. | 5078 // Only main frame have ImageDownloader service. |
| 5070 if (!frame_->parent()) { | 5079 if (!frame_->parent()) { |
| 5071 GetServiceRegistry()->AddService<image_downloader::ImageDownloader>( | 5080 GetServiceRegistry()->AddService<image_downloader::ImageDownloader>( |
| 5072 base::Bind(&ImageDownloaderImpl::CreateMojoService, | 5081 base::Bind(&ImageDownloaderImpl::CreateMojoService, |
| 5073 base::Unretained(this))); | 5082 base::Unretained(this))); |
| 5074 } | 5083 } |
| 5075 } | 5084 } |
| 5076 | 5085 |
| 5086 mojo::ServiceProviderPtr RenderFrameImpl::ConnectToApplication( |
| 5087 const GURL& url) { |
| 5088 DCHECK(mojo_shell_); |
| 5089 mojo::ServiceProviderPtr service_provider; |
| 5090 mojo::URLRequestPtr request(mojo::URLRequest::New()); |
| 5091 request->url = mojo::String::From(url); |
| 5092 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), |
| 5093 nullptr, nullptr); |
| 5094 return service_provider.Pass(); |
| 5095 } |
| 5096 |
| 5077 } // namespace content | 5097 } // namespace content |
| OLD | NEW |