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

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

Issue 2079943002: Change RenderFrame to use InterfaceRegistry et al. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@a2
Patch Set: . Created 4 years, 6 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
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | content/renderer/render_thread_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 #include "content/common/view_messages.h" 66 #include "content/common/view_messages.h"
67 #include "content/public/common/bindings_policy.h" 67 #include "content/public/common/bindings_policy.h"
68 #include "content/public/common/browser_side_navigation_policy.h" 68 #include "content/public/common/browser_side_navigation_policy.h"
69 #include "content/public/common/content_constants.h" 69 #include "content/public/common/content_constants.h"
70 #include "content/public/common/content_features.h" 70 #include "content/public/common/content_features.h"
71 #include "content/public/common/content_switches.h" 71 #include "content/public/common/content_switches.h"
72 #include "content/public/common/context_menu_params.h" 72 #include "content/public/common/context_menu_params.h"
73 #include "content/public/common/file_chooser_file_info.h" 73 #include "content/public/common/file_chooser_file_info.h"
74 #include "content/public/common/file_chooser_params.h" 74 #include "content/public/common/file_chooser_params.h"
75 #include "content/public/common/isolated_world_ids.h" 75 #include "content/public/common/isolated_world_ids.h"
76 #include "content/public/common/mojo_shell_connection.h"
76 #include "content/public/common/page_state.h" 77 #include "content/public/common/page_state.h"
77 #include "content/public/common/resource_response.h" 78 #include "content/public/common/resource_response.h"
78 #include "content/public/common/url_constants.h" 79 #include "content/public/common/url_constants.h"
79 #include "content/public/common/url_utils.h" 80 #include "content/public/common/url_utils.h"
80 #include "content/public/renderer/browser_plugin_delegate.h" 81 #include "content/public/renderer/browser_plugin_delegate.h"
81 #include "content/public/renderer/content_renderer_client.h" 82 #include "content/public/renderer/content_renderer_client.h"
82 #include "content/public/renderer/context_menu_client.h" 83 #include "content/public/renderer/context_menu_client.h"
83 #include "content/public/renderer/document_state.h" 84 #include "content/public/renderer/document_state.h"
84 #include "content/public/renderer/navigation_state.h" 85 #include "content/public/renderer/navigation_state.h"
85 #include "content/public/renderer/render_frame_observer.h" 86 #include "content/public/renderer/render_frame_observer.h"
(...skipping 19 matching lines...) Expand all
105 #include "content/renderer/media/audio_device_factory.h" 106 #include "content/renderer/media/audio_device_factory.h"
106 #include "content/renderer/media/media_permission_dispatcher.h" 107 #include "content/renderer/media/media_permission_dispatcher.h"
107 #include "content/renderer/media/media_stream_dispatcher.h" 108 #include "content/renderer/media/media_stream_dispatcher.h"
108 #include "content/renderer/media/media_stream_renderer_factory_impl.h" 109 #include "content/renderer/media/media_stream_renderer_factory_impl.h"
109 #include "content/renderer/media/midi_dispatcher.h" 110 #include "content/renderer/media/midi_dispatcher.h"
110 #include "content/renderer/media/render_media_log.h" 111 #include "content/renderer/media/render_media_log.h"
111 #include "content/renderer/media/renderer_webmediaplayer_delegate.h" 112 #include "content/renderer/media/renderer_webmediaplayer_delegate.h"
112 #include "content/renderer/media/user_media_client_impl.h" 113 #include "content/renderer/media/user_media_client_impl.h"
113 #include "content/renderer/media/web_media_element_source_utils.h" 114 #include "content/renderer/media/web_media_element_source_utils.h"
114 #include "content/renderer/media/webmediaplayer_ms.h" 115 #include "content/renderer/media/webmediaplayer_ms.h"
115 #include "content/renderer/mojo/service_registry_js_wrapper.h" 116 #include "content/renderer/mojo/interface_provider_js_wrapper.h"
116 #include "content/renderer/mojo_bindings_controller.h" 117 #include "content/renderer/mojo_bindings_controller.h"
117 #include "content/renderer/navigation_state_impl.h" 118 #include "content/renderer/navigation_state_impl.h"
118 #include "content/renderer/notification_permission_dispatcher.h" 119 #include "content/renderer/notification_permission_dispatcher.h"
119 #include "content/renderer/pepper/plugin_instance_throttler_impl.h" 120 #include "content/renderer/pepper/plugin_instance_throttler_impl.h"
120 #include "content/renderer/presentation/presentation_dispatcher.h" 121 #include "content/renderer/presentation/presentation_dispatcher.h"
121 #include "content/renderer/push_messaging/push_messaging_dispatcher.h" 122 #include "content/renderer/push_messaging/push_messaging_dispatcher.h"
122 #include "content/renderer/render_frame_proxy.h" 123 #include "content/renderer/render_frame_proxy.h"
123 #include "content/renderer/render_process.h" 124 #include "content/renderer/render_process.h"
124 #include "content/renderer/render_thread_impl.h" 125 #include "content/renderer/render_thread_impl.h"
125 #include "content/renderer/render_view_impl.h" 126 #include "content/renderer/render_view_impl.h"
(...skipping 20 matching lines...) Expand all
146 #include "media/blink/url_index.h" 147 #include "media/blink/url_index.h"
147 #include "media/blink/webencryptedmediaclient_impl.h" 148 #include "media/blink/webencryptedmediaclient_impl.h"
148 #include "media/blink/webmediaplayer_impl.h" 149 #include "media/blink/webmediaplayer_impl.h"
149 #include "media/renderers/gpu_video_accelerator_factories.h" 150 #include "media/renderers/gpu_video_accelerator_factories.h"
150 #include "mojo/edk/js/core.h" 151 #include "mojo/edk/js/core.h"
151 #include "mojo/edk/js/support.h" 152 #include "mojo/edk/js/support.h"
152 #include "net/base/data_url.h" 153 #include "net/base/data_url.h"
153 #include "net/base/net_errors.h" 154 #include "net/base/net_errors.h"
154 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" 155 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
155 #include "net/http/http_util.h" 156 #include "net/http/http_util.h"
157 #include "services/shell/public/cpp/interface_provider.h"
158 #include "services/shell/public/cpp/interface_registry.h"
156 #include "storage/common/data_element.h" 159 #include "storage/common/data_element.h"
157 #include "third_party/WebKit/public/platform/FilePathConversion.h" 160 #include "third_party/WebKit/public/platform/FilePathConversion.h"
158 #include "third_party/WebKit/public/platform/URLConversion.h" 161 #include "third_party/WebKit/public/platform/URLConversion.h"
159 #include "third_party/WebKit/public/platform/WebCachePolicy.h" 162 #include "third_party/WebKit/public/platform/WebCachePolicy.h"
160 #include "third_party/WebKit/public/platform/WebData.h" 163 #include "third_party/WebKit/public/platform/WebData.h"
161 #include "third_party/WebKit/public/platform/WebMediaPlayer.h" 164 #include "third_party/WebKit/public/platform/WebMediaPlayer.h"
162 #include "third_party/WebKit/public/platform/WebMediaPlayerSource.h" 165 #include "third_party/WebKit/public/platform/WebMediaPlayerSource.h"
163 #include "third_party/WebKit/public/platform/WebPoint.h" 166 #include "third_party/WebKit/public/platform/WebPoint.h"
164 #include "third_party/WebKit/public/platform/WebSecurityOrigin.h" 167 #include "third_party/WebKit/public/platform/WebSecurityOrigin.h"
165 #include "third_party/WebKit/public/platform/WebStorageQuotaCallbacks.h" 168 #include "third_party/WebKit/public/platform/WebStorageQuotaCallbacks.h"
(...skipping 918 matching lines...) Expand 10 before | Expand all | Expand 10 after
1084 media_surface_manager_(nullptr), 1087 media_surface_manager_(nullptr),
1085 #if defined(ENABLE_BROWSER_CDMS) 1088 #if defined(ENABLE_BROWSER_CDMS)
1086 cdm_manager_(NULL), 1089 cdm_manager_(NULL),
1087 #endif 1090 #endif
1088 #if defined(VIDEO_HOLE) 1091 #if defined(VIDEO_HOLE)
1089 contains_media_player_(false), 1092 contains_media_player_(false),
1090 #endif 1093 #endif
1091 devtools_agent_(nullptr), 1094 devtools_agent_(nullptr),
1092 push_messaging_dispatcher_(NULL), 1095 push_messaging_dispatcher_(NULL),
1093 presentation_dispatcher_(NULL), 1096 presentation_dispatcher_(NULL),
1094 blink_service_registry_(service_registry_.GetWeakPtr()),
1095 screen_orientation_dispatcher_(NULL), 1097 screen_orientation_dispatcher_(NULL),
1096 manifest_manager_(NULL), 1098 manifest_manager_(NULL),
1097 accessibility_mode_(AccessibilityModeOff), 1099 accessibility_mode_(AccessibilityModeOff),
1098 renderer_accessibility_(NULL), 1100 renderer_accessibility_(NULL),
1099 media_player_delegate_(NULL), 1101 media_player_delegate_(NULL),
1100 is_using_lofi_(false), 1102 is_using_lofi_(false),
1101 effective_connection_type_( 1103 effective_connection_type_(
1102 blink::WebEffectiveConnectionType::TypeUnknown), 1104 blink::WebEffectiveConnectionType::TypeUnknown),
1103 is_pasting_(false), 1105 is_pasting_(false),
1104 suppress_further_dialogs_(false), 1106 suppress_further_dialogs_(false),
1105 blame_context_(nullptr), 1107 blame_context_(nullptr),
1106 #if defined(ENABLE_PLUGINS) 1108 #if defined(ENABLE_PLUGINS)
1107 focused_pepper_plugin_(nullptr), 1109 focused_pepper_plugin_(nullptr),
1108 pepper_last_mouse_event_target_(nullptr), 1110 pepper_last_mouse_event_target_(nullptr),
1109 #endif 1111 #endif
1110 frame_binding_(this), 1112 frame_binding_(this),
1111 weak_factory_(this) { 1113 weak_factory_(this) {
1114 // We don't have a shell::Connection at this point, so use nullptr.
1115 // TODO(beng): We should fix this, so we can apply policy about which
1116 // interfaces get exposed.
1117 interface_registry_.reset(new shell::InterfaceRegistry(nullptr));
1118 shell::mojom::InterfaceProviderPtr remote_interfaces;
1119 pending_remote_interface_provider_request_ = GetProxy(&remote_interfaces);
1120 remote_interfaces_.reset(
1121 new shell::InterfaceProvider(std::move(remote_interfaces)));
1122 blink_service_registry_.reset(new BlinkServiceRegistryImpl(
1123 remote_interfaces_->GetWeakPtr()));
1124
1112 std::pair<RoutingIDFrameMap::iterator, bool> result = 1125 std::pair<RoutingIDFrameMap::iterator, bool> result =
1113 g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this)); 1126 g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this));
1114 CHECK(result.second) << "Inserting a duplicate item."; 1127 CHECK(result.second) << "Inserting a duplicate item.";
1115 1128
1116 RenderThread::Get()->AddRoute(routing_id_, this); 1129 RenderThread::Get()->AddRoute(routing_id_, this);
1117 1130
1118 render_view_->RegisterRenderFrame(this); 1131 render_view_->RegisterRenderFrame(this);
1119 1132
1120 // Everything below subclasses RenderFrameObserver and is automatically 1133 // Everything below subclasses RenderFrameObserver and is automatically
1121 // deleted when the RenderFrame gets deleted. 1134 // deleted when the RenderFrame gets deleted.
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1206 new PepperBrowserConnection(this); 1219 new PepperBrowserConnection(this);
1207 #endif 1220 #endif
1208 new SharedWorkerRepository(this); 1221 new SharedWorkerRepository(this);
1209 1222
1210 if (IsLocalRoot()) { 1223 if (IsLocalRoot()) {
1211 // DevToolsAgent is a RenderFrameObserver, and will destruct itself 1224 // DevToolsAgent is a RenderFrameObserver, and will destruct itself
1212 // when |this| is deleted. 1225 // when |this| is deleted.
1213 devtools_agent_ = new DevToolsAgent(this); 1226 devtools_agent_ = new DevToolsAgent(this);
1214 } 1227 }
1215 1228
1216 RegisterMojoServices(); 1229 RegisterMojoInterfaces();
1217 1230
1218 // We delay calling this until we have the WebFrame so that any observer or 1231 // We delay calling this until we have the WebFrame so that any observer or
1219 // embedder can call GetWebFrame on any RenderFrame. 1232 // embedder can call GetWebFrame on any RenderFrame.
1220 GetContentClient()->renderer()->RenderFrameCreated(this); 1233 GetContentClient()->renderer()->RenderFrameCreated(this);
1221 1234
1222 RenderThreadImpl* render_thread = RenderThreadImpl::current(); 1235 RenderThreadImpl* render_thread = RenderThreadImpl::current();
1223 // render_thread may be NULL in tests. 1236 // render_thread may be NULL in tests.
1224 InputHandlerManager* input_handler_manager = 1237 InputHandlerManager* input_handler_manager =
1225 render_thread ? render_thread->input_handler_manager() : nullptr; 1238 render_thread ? render_thread->input_handler_manager() : nullptr;
1226 if (input_handler_manager) { 1239 if (input_handler_manager) {
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
1595 TRACE_EVENT2("navigation", "RenderFrameImpl::OnNavigate", "id", routing_id_, 1608 TRACE_EVENT2("navigation", "RenderFrameImpl::OnNavigate", "id", routing_id_,
1596 "url", common_params.url.possibly_invalid_spec()); 1609 "url", common_params.url.possibly_invalid_spec());
1597 NavigateInternal(common_params, start_params, request_params, 1610 NavigateInternal(common_params, start_params, request_params,
1598 std::unique_ptr<StreamOverrideParameters>()); 1611 std::unique_ptr<StreamOverrideParameters>());
1599 } 1612 }
1600 1613
1601 void RenderFrameImpl::Bind(mojom::FrameRequest request, 1614 void RenderFrameImpl::Bind(mojom::FrameRequest request,
1602 mojom::FrameHostPtr host) { 1615 mojom::FrameHostPtr host) {
1603 frame_binding_.Bind(std::move(request)); 1616 frame_binding_.Bind(std::move(request));
1604 frame_host_ = std::move(host); 1617 frame_host_ = std::move(host);
1605 frame_host_->GetInterfaceProvider(service_registry_.TakeRemoteRequest()); 1618 frame_host_->GetInterfaceProvider(
1619 std::move(pending_remote_interface_provider_request_));
1606 } 1620 }
1607 1621
1608 ManifestManager* RenderFrameImpl::manifest_manager() { 1622 ManifestManager* RenderFrameImpl::manifest_manager() {
1609 return manifest_manager_; 1623 return manifest_manager_;
1610 } 1624 }
1611 1625
1612 void RenderFrameImpl::SetPendingNavigationParams( 1626 void RenderFrameImpl::SetPendingNavigationParams(
1613 std::unique_ptr<NavigationParams> navigation_params) { 1627 std::unique_ptr<NavigationParams> navigation_params) {
1614 pending_navigation_params_ = std::move(navigation_params); 1628 pending_navigation_params_ = std::move(navigation_params);
1615 } 1629 }
(...skipping 789 matching lines...) Expand 10 before | Expand all | Expand 10 after
2405 2419
2406 void RenderFrameImpl::LoadURLExternally(const blink::WebURLRequest& request, 2420 void RenderFrameImpl::LoadURLExternally(const blink::WebURLRequest& request,
2407 blink::WebNavigationPolicy policy) { 2421 blink::WebNavigationPolicy policy) {
2408 loadURLExternally(request, policy, WebString(), false); 2422 loadURLExternally(request, policy, WebString(), false);
2409 } 2423 }
2410 2424
2411 void RenderFrameImpl::ExecuteJavaScript(const base::string16& javascript) { 2425 void RenderFrameImpl::ExecuteJavaScript(const base::string16& javascript) {
2412 OnJavaScriptExecuteRequest(javascript, 0, false); 2426 OnJavaScriptExecuteRequest(javascript, 0, false);
2413 } 2427 }
2414 2428
2415 ServiceRegistry* RenderFrameImpl::GetServiceRegistry() { 2429 shell::InterfaceRegistry* RenderFrameImpl::GetInterfaceRegistry() {
2416 return &service_registry_; 2430 return interface_registry_.get();
2431 }
2432
2433 shell::InterfaceProvider* RenderFrameImpl::GetRemoteInterfaces() {
2434 return remote_interfaces_.get();
2417 } 2435 }
2418 2436
2419 #if defined(ENABLE_PLUGINS) 2437 #if defined(ENABLE_PLUGINS)
2420 void RenderFrameImpl::RegisterPeripheralPlugin( 2438 void RenderFrameImpl::RegisterPeripheralPlugin(
2421 const url::Origin& content_origin, 2439 const url::Origin& content_origin,
2422 const base::Closure& unthrottle_callback) { 2440 const base::Closure& unthrottle_callback) {
2423 return plugin_power_saver_helper_->RegisterPeripheralPlugin( 2441 return plugin_power_saver_helper_->RegisterPeripheralPlugin(
2424 content_origin, unthrottle_callback); 2442 content_origin, unthrottle_callback);
2425 } 2443 }
2426 2444
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2469 gin::ModuleRegistry* registry = gin::ModuleRegistry::From(context); 2487 gin::ModuleRegistry* registry = gin::ModuleRegistry::From(context);
2470 if (registry->available_modules().count(mojo::edk::js::Core::kModuleName)) 2488 if (registry->available_modules().count(mojo::edk::js::Core::kModuleName))
2471 return; 2489 return;
2472 2490
2473 v8::HandleScope handle_scope(isolate); 2491 v8::HandleScope handle_scope(isolate);
2474 registry->AddBuiltinModule(isolate, mojo::edk::js::Core::kModuleName, 2492 registry->AddBuiltinModule(isolate, mojo::edk::js::Core::kModuleName,
2475 mojo::edk::js::Core::GetModule(isolate)); 2493 mojo::edk::js::Core::GetModule(isolate));
2476 registry->AddBuiltinModule(isolate, mojo::edk::js::Support::kModuleName, 2494 registry->AddBuiltinModule(isolate, mojo::edk::js::Support::kModuleName,
2477 mojo::edk::js::Support::GetModule(isolate)); 2495 mojo::edk::js::Support::GetModule(isolate));
2478 registry->AddBuiltinModule( 2496 registry->AddBuiltinModule(
2479 isolate, ServiceRegistryJsWrapper::kPerFrameModuleName, 2497 isolate, InterfaceProviderJsWrapper::kPerFrameModuleName,
2480 ServiceRegistryJsWrapper::Create(isolate, context, &service_registry_) 2498 InterfaceProviderJsWrapper::Create(
2499 isolate, context, remote_interfaces_.get())
2481 .ToV8()); 2500 .ToV8());
2482 registry->AddBuiltinModule( 2501 registry->AddBuiltinModule(
2483 isolate, ServiceRegistryJsWrapper::kPerProcessModuleName, 2502 isolate, InterfaceProviderJsWrapper::kPerProcessModuleName,
2484 ServiceRegistryJsWrapper::Create( 2503 InterfaceProviderJsWrapper::Create(
2485 isolate, context, RenderThread::Get()->GetServiceRegistry()) 2504 isolate, context, RenderThread::Get()->GetRemoteInterfaces())
2486 .ToV8()); 2505 .ToV8());
2487 } 2506 }
2488 2507
2489 void RenderFrameImpl::AddMessageToConsole(ConsoleMessageLevel level, 2508 void RenderFrameImpl::AddMessageToConsole(ConsoleMessageLevel level,
2490 const std::string& message) { 2509 const std::string& message) {
2491 blink::WebConsoleMessage::Level target_level = 2510 blink::WebConsoleMessage::Level target_level =
2492 blink::WebConsoleMessage::LevelLog; 2511 blink::WebConsoleMessage::LevelLog;
2493 switch (level) { 2512 switch (level) {
2494 case CONSOLE_MESSAGE_LEVEL_DEBUG: 2513 case CONSOLE_MESSAGE_LEVEL_DEBUG:
2495 target_level = blink::WebConsoleMessage::LevelDebug; 2514 target_level = blink::WebConsoleMessage::LevelDebug;
(...skipping 18 matching lines...) Expand all
2514 } 2533 }
2515 2534
2516 bool RenderFrameImpl::IsPasting() const { 2535 bool RenderFrameImpl::IsPasting() const {
2517 return is_pasting_; 2536 return is_pasting_;
2518 } 2537 }
2519 2538
2520 // mojom::Frame implementation ------------------------------------------------- 2539 // mojom::Frame implementation -------------------------------------------------
2521 2540
2522 void RenderFrameImpl::GetInterfaceProvider( 2541 void RenderFrameImpl::GetInterfaceProvider(
2523 shell::mojom::InterfaceProviderRequest request) { 2542 shell::mojom::InterfaceProviderRequest request) {
2524 service_registry_.Bind(std::move(request)); 2543 interface_registry_->Bind(std::move(request));
2525 } 2544 }
2526 2545
2527 // blink::WebFrameClient implementation ---------------------------------------- 2546 // blink::WebFrameClient implementation ----------------------------------------
2528 2547
2529 blink::WebPlugin* RenderFrameImpl::createPlugin( 2548 blink::WebPlugin* RenderFrameImpl::createPlugin(
2530 blink::WebLocalFrame* frame, 2549 blink::WebLocalFrame* frame,
2531 const blink::WebPluginParams& params) { 2550 const blink::WebPluginParams& params) {
2532 DCHECK_EQ(frame_, frame); 2551 DCHECK_EQ(frame_, frame);
2533 blink::WebPlugin* plugin = NULL; 2552 blink::WebPlugin* plugin = NULL;
2534 if (GetContentClient()->renderer()->OverrideCreatePlugin( 2553 if (GetContentClient()->renderer()->OverrideCreatePlugin(
(...skipping 1882 matching lines...) Expand 10 before | Expand all | Expand 10 after
4417 Send(new FrameHostMsg_ToggleFullscreen(routing_id_, true)); 4436 Send(new FrameHostMsg_ToggleFullscreen(routing_id_, true));
4418 return true; 4437 return true;
4419 } 4438 }
4420 4439
4421 bool RenderFrameImpl::exitFullscreen() { 4440 bool RenderFrameImpl::exitFullscreen() {
4422 Send(new FrameHostMsg_ToggleFullscreen(routing_id_, false)); 4441 Send(new FrameHostMsg_ToggleFullscreen(routing_id_, false));
4423 return true; 4442 return true;
4424 } 4443 }
4425 4444
4426 blink::WebPermissionClient* RenderFrameImpl::permissionClient() { 4445 blink::WebPermissionClient* RenderFrameImpl::permissionClient() {
4427 if (!permission_client_) 4446 if (!permission_client_) {
4428 permission_client_.reset(new PermissionDispatcher(GetServiceRegistry())); 4447 permission_client_.reset(
4429 4448 new PermissionDispatcher(GetRemoteInterfaces()));
4449 }
4430 return permission_client_.get(); 4450 return permission_client_.get();
4431 } 4451 }
4432 4452
4433 blink::WebAppBannerClient* RenderFrameImpl::appBannerClient() { 4453 blink::WebAppBannerClient* RenderFrameImpl::appBannerClient() {
4434 if (!app_banner_client_) { 4454 if (!app_banner_client_) {
4435 app_banner_client_ = 4455 app_banner_client_ =
4436 GetContentClient()->renderer()->CreateAppBannerClient(this); 4456 GetContentClient()->renderer()->CreateAppBannerClient(this);
4437 } 4457 }
4438 4458
4439 return app_banner_client_.get(); 4459 return app_banner_client_.get();
(...skipping 15 matching lines...) Expand all
4455 const WebURL& url) { 4475 const WebURL& url) {
4456 bool user_gesture = WebUserGestureIndicator::isProcessingUserGesture(); 4476 bool user_gesture = WebUserGestureIndicator::isProcessingUserGesture();
4457 Send(new FrameHostMsg_UnregisterProtocolHandler( 4477 Send(new FrameHostMsg_UnregisterProtocolHandler(
4458 routing_id_, 4478 routing_id_,
4459 base::UTF16ToUTF8(base::StringPiece16(scheme)), 4479 base::UTF16ToUTF8(base::StringPiece16(scheme)),
4460 url, 4480 url,
4461 user_gesture)); 4481 user_gesture));
4462 } 4482 }
4463 4483
4464 blink::WebBluetooth* RenderFrameImpl::bluetooth() { 4484 blink::WebBluetooth* RenderFrameImpl::bluetooth() {
4465 if (!bluetooth_.get()) { 4485 if (!bluetooth_.get())
4466 bluetooth_.reset(new WebBluetoothImpl(GetServiceRegistry())); 4486 bluetooth_.reset(new WebBluetoothImpl(GetRemoteInterfaces()));
4467 }
4468 return bluetooth_.get(); 4487 return bluetooth_.get();
4469 } 4488 }
4470 4489
4471 void RenderFrameImpl::didSerializeDataForFrame( 4490 void RenderFrameImpl::didSerializeDataForFrame(
4472 const WebCString& data, 4491 const WebCString& data,
4473 WebFrameSerializerClient::FrameSerializationStatus status) { 4492 WebFrameSerializerClient::FrameSerializationStatus status) {
4474 bool end_of_data = status == WebFrameSerializerClient::CurrentFrameIsFinished; 4493 bool end_of_data = status == WebFrameSerializerClient::CurrentFrameIsFinished;
4475 Send(new FrameHostMsg_SerializedHtmlWithLocalLinksResponse( 4494 Send(new FrameHostMsg_SerializedHtmlWithLocalLinksResponse(
4476 routing_id_, data, end_of_data)); 4495 routing_id_, data, end_of_data));
4477 } 4496 }
(...skipping 1649 matching lines...) Expand 10 before | Expand all | Expand 10 after
6127 media::DecoderFactory* RenderFrameImpl::GetDecoderFactory() { 6146 media::DecoderFactory* RenderFrameImpl::GetDecoderFactory() {
6128 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER) 6147 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER)
6129 if (!decoder_factory_) { 6148 if (!decoder_factory_) {
6130 decoder_factory_.reset( 6149 decoder_factory_.reset(
6131 new media::MojoDecoderFactory(GetMediaInterfaceProvider())); 6150 new media::MojoDecoderFactory(GetMediaInterfaceProvider()));
6132 } 6151 }
6133 #endif 6152 #endif
6134 return decoder_factory_.get(); 6153 return decoder_factory_.get();
6135 } 6154 }
6136 6155
6137 void RenderFrameImpl::RegisterMojoServices() { 6156 void RenderFrameImpl::RegisterMojoInterfaces() {
6138 // Only main frame have ImageDownloader service. 6157 // Only main frame have ImageDownloader service.
6139 if (!frame_->parent()) { 6158 if (!frame_->parent()) {
6140 GetServiceRegistry()->AddService(base::Bind( 6159 GetInterfaceRegistry()->AddInterface(base::Bind(
6141 &ImageDownloaderImpl::CreateMojoService, base::Unretained(this))); 6160 &ImageDownloaderImpl::CreateMojoService, base::Unretained(this)));
6142 } 6161 }
6143 } 6162 }
6144 6163
6145 template <typename Interface> 6164 template <typename Interface>
6146 void RenderFrameImpl::GetInterface(mojo::InterfaceRequest<Interface> request) { 6165 void RenderFrameImpl::GetInterface(mojo::InterfaceRequest<Interface> request) {
6147 GetServiceRegistry()->ConnectToRemoteService(std::move(request)); 6166 GetRemoteInterfaces()->GetInterface(std::move(request));
6148 } 6167 }
6149 6168
6150 shell::mojom::InterfaceProviderPtr RenderFrameImpl::ConnectToApplication( 6169 shell::mojom::InterfaceProviderPtr RenderFrameImpl::ConnectToApplication(
6151 const GURL& url) { 6170 const GURL& url) {
6152 if (!connector_) 6171 if (!connector_)
6153 GetServiceRegistry()->ConnectToRemoteService(mojo::GetProxy(&connector_)); 6172 GetRemoteInterfaces()->GetInterface(&connector_);
6154 shell::mojom::InterfaceProviderPtr interface_provider; 6173 shell::mojom::InterfaceProviderPtr interface_provider;
6155 shell::mojom::IdentityPtr target(shell::mojom::Identity::New()); 6174 shell::mojom::IdentityPtr target(shell::mojom::Identity::New());
6156 target->name = url.spec(); 6175 target->name = url.spec();
6157 target->user_id = shell::mojom::kInheritUserID; 6176 target->user_id = shell::mojom::kInheritUserID;
6158 target->instance = ""; 6177 target->instance = "";
6159 connector_->Connect(std::move(target), GetProxy(&interface_provider), nullptr, 6178 connector_->Connect(std::move(target), GetProxy(&interface_provider), nullptr,
6160 nullptr, base::Bind(&OnGotInstanceID)); 6179 nullptr, base::Bind(&OnGotInstanceID));
6161 return interface_provider; 6180 return interface_provider;
6162 } 6181 }
6163 6182
6164 media::RendererWebMediaPlayerDelegate* 6183 media::RendererWebMediaPlayerDelegate*
6165 RenderFrameImpl::GetWebMediaPlayerDelegate() { 6184 RenderFrameImpl::GetWebMediaPlayerDelegate() {
6166 if (!media_player_delegate_) 6185 if (!media_player_delegate_)
6167 media_player_delegate_ = new media::RendererWebMediaPlayerDelegate(this); 6186 media_player_delegate_ = new media::RendererWebMediaPlayerDelegate(this);
6168 return media_player_delegate_; 6187 return media_player_delegate_;
6169 } 6188 }
6170 6189
6171 void RenderFrameImpl::checkIfAudioSinkExistsAndIsAuthorized( 6190 void RenderFrameImpl::checkIfAudioSinkExistsAndIsAuthorized(
6172 const blink::WebString& sink_id, 6191 const blink::WebString& sink_id,
6173 const blink::WebSecurityOrigin& security_origin, 6192 const blink::WebSecurityOrigin& security_origin,
6174 blink::WebSetSinkIdCallbacks* web_callbacks) { 6193 blink::WebSetSinkIdCallbacks* web_callbacks) {
6175 media::OutputDeviceStatusCB callback = 6194 media::OutputDeviceStatusCB callback =
6176 media::ConvertToOutputDeviceStatusCB(web_callbacks); 6195 media::ConvertToOutputDeviceStatusCB(web_callbacks);
6177 callback.Run(AudioDeviceFactory::GetOutputDeviceInfo( 6196 callback.Run(AudioDeviceFactory::GetOutputDeviceInfo(
6178 routing_id_, 0, sink_id.utf8(), security_origin) 6197 routing_id_, 0, sink_id.utf8(), security_origin)
6179 .device_status()); 6198 .device_status());
6180 } 6199 }
6181 6200
6182 blink::ServiceRegistry* RenderFrameImpl::serviceRegistry() { 6201 blink::ServiceRegistry* RenderFrameImpl::serviceRegistry() {
6183 return &blink_service_registry_; 6202 return blink_service_registry_.get();
6184 } 6203 }
6185 6204
6186 blink::WebPlugin* RenderFrameImpl::GetWebPluginForFind() { 6205 blink::WebPlugin* RenderFrameImpl::GetWebPluginForFind() {
6187 if (frame_->document().isPluginDocument()) 6206 if (frame_->document().isPluginDocument())
6188 return frame_->document().to<WebPluginDocument>().plugin(); 6207 return frame_->document().to<WebPluginDocument>().plugin();
6189 6208
6190 #if defined(ENABLE_PLUGINS) 6209 #if defined(ENABLE_PLUGINS)
6191 if (plugin_find_handler_) 6210 if (plugin_find_handler_)
6192 return plugin_find_handler_->container()->plugin(); 6211 return plugin_find_handler_->container()->plugin();
6193 #endif 6212 #endif
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
6264 // event target. Potentially a Pepper plugin will receive the event. 6283 // event target. Potentially a Pepper plugin will receive the event.
6265 // In order to tell whether a plugin gets the last mouse event and which it 6284 // In order to tell whether a plugin gets the last mouse event and which it
6266 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets 6285 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets
6267 // the event, it will notify us via DidReceiveMouseEvent() and set itself as 6286 // the event, it will notify us via DidReceiveMouseEvent() and set itself as
6268 // |pepper_last_mouse_event_target_|. 6287 // |pepper_last_mouse_event_target_|.
6269 pepper_last_mouse_event_target_ = nullptr; 6288 pepper_last_mouse_event_target_ = nullptr;
6270 #endif 6289 #endif
6271 } 6290 }
6272 6291
6273 } // namespace content 6292 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | content/renderer/render_thread_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698