| 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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |