Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(167)

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 1293253002: Connect WebUSB client interface to the devices app (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698