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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 #include "content/public/renderer/renderer_ppapi_host.h" | 63 #include "content/public/renderer/renderer_ppapi_host.h" |
64 #include "content/renderer/accessibility/renderer_accessibility.h" | 64 #include "content/renderer/accessibility/renderer_accessibility.h" |
65 #include "content/renderer/bluetooth/web_bluetooth_impl.h" | 65 #include "content/renderer/bluetooth/web_bluetooth_impl.h" |
66 #include "content/renderer/browser_plugin/browser_plugin.h" | 66 #include "content/renderer/browser_plugin/browser_plugin.h" |
67 #include "content/renderer/browser_plugin/browser_plugin_manager.h" | 67 #include "content/renderer/browser_plugin/browser_plugin_manager.h" |
68 #include "content/renderer/child_frame_compositing_helper.h" | 68 #include "content/renderer/child_frame_compositing_helper.h" |
69 #include "content/renderer/context_menu_params_builder.h" | 69 #include "content/renderer/context_menu_params_builder.h" |
70 #include "content/renderer/devtools/devtools_agent.h" | 70 #include "content/renderer/devtools/devtools_agent.h" |
71 #include "content/renderer/dom_automation_controller.h" | 71 #include "content/renderer/dom_automation_controller.h" |
72 #include "content/renderer/external_popup_menu.h" | 72 #include "content/renderer/external_popup_menu.h" |
73 #include "content/renderer/geolocation_dispatcher.h" | |
74 #include "content/renderer/gpu/gpu_benchmarking_extension.h" | 73 #include "content/renderer/gpu/gpu_benchmarking_extension.h" |
75 #include "content/renderer/history_controller.h" | 74 #include "content/renderer/history_controller.h" |
76 #include "content/renderer/history_serialization.h" | 75 #include "content/renderer/history_serialization.h" |
77 #include "content/renderer/image_downloader/image_downloader_impl.h" | 76 #include "content/renderer/image_downloader/image_downloader_impl.h" |
78 #include "content/renderer/ime_event_guard.h" | 77 #include "content/renderer/ime_event_guard.h" |
79 #include "content/renderer/internal_document_state_data.h" | 78 #include "content/renderer/internal_document_state_data.h" |
80 #include "content/renderer/manifest/manifest_manager.h" | 79 #include "content/renderer/manifest/manifest_manager.h" |
81 #include "content/renderer/media/audio_renderer_mixer_manager.h" | 80 #include "content/renderer/media/audio_renderer_mixer_manager.h" |
82 #include "content/renderer/media/crypto/render_cdm_factory.h" | 81 #include "content/renderer/media/crypto/render_cdm_factory.h" |
83 #include "content/renderer/media/media_permission_dispatcher_impl.h" | 82 #include "content/renderer/media/media_permission_dispatcher_impl.h" |
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 return navigation_type == FrameMsg_Navigate_Type::RELOAD || | 506 return navigation_type == FrameMsg_Navigate_Type::RELOAD || |
508 navigation_type == FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE || | 507 navigation_type == FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE || |
509 navigation_type == FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL; | 508 navigation_type == FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL; |
510 } | 509 } |
511 | 510 |
512 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = | 511 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = |
513 nullptr; | 512 nullptr; |
514 | 513 |
515 void OnGotContentHandlerID(uint32_t content_handler_id) {} | 514 void OnGotContentHandlerID(uint32_t content_handler_id) {} |
516 | 515 |
| 516 class ForwardingServiceProvider : public mojo::ServiceProvider { |
| 517 public: |
| 518 ForwardingServiceProvider(base::WeakPtr<ServiceRegistry> service_registry) |
| 519 : service_registry_(service_registry) {} |
| 520 |
| 521 void ConnectToService(const mojo::String& interface_name, |
| 522 mojo::ScopedMessagePipeHandle pipe) override { |
| 523 if (service_registry_) |
| 524 service_registry_->ConnectToRemoteService( |
| 525 interface_name.To<std::string>(), pipe.Pass()); |
| 526 } |
| 527 |
| 528 private: |
| 529 base::WeakPtr<ServiceRegistry> service_registry_; |
| 530 |
| 531 DISALLOW_COPY_AND_ASSIGN(ForwardingServiceProvider); |
| 532 }; |
| 533 |
517 } // namespace | 534 } // namespace |
518 | 535 |
519 // static | 536 // static |
520 RenderFrameImpl* RenderFrameImpl::Create(RenderViewImpl* render_view, | 537 RenderFrameImpl* RenderFrameImpl::Create(RenderViewImpl* render_view, |
521 int32 routing_id) { | 538 int32 routing_id) { |
522 DCHECK(routing_id != MSG_ROUTING_NONE); | 539 DCHECK(routing_id != MSG_ROUTING_NONE); |
523 CreateParams params(render_view, routing_id); | 540 CreateParams params(render_view, routing_id); |
524 | 541 |
525 if (g_create_render_frame_impl) | 542 if (g_create_render_frame_impl) |
526 return g_create_render_frame_impl(params); | 543 return g_create_render_frame_impl(params); |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
703 media_player_manager_(NULL), | 720 media_player_manager_(NULL), |
704 #endif | 721 #endif |
705 #if defined(ENABLE_BROWSER_CDMS) | 722 #if defined(ENABLE_BROWSER_CDMS) |
706 cdm_manager_(NULL), | 723 cdm_manager_(NULL), |
707 #endif | 724 #endif |
708 #if defined(VIDEO_HOLE) | 725 #if defined(VIDEO_HOLE) |
709 contains_media_player_(false), | 726 contains_media_player_(false), |
710 #endif | 727 #endif |
711 has_played_media_(false), | 728 has_played_media_(false), |
712 devtools_agent_(nullptr), | 729 devtools_agent_(nullptr), |
713 geolocation_dispatcher_(NULL), | |
714 push_messaging_dispatcher_(NULL), | 730 push_messaging_dispatcher_(NULL), |
715 presentation_dispatcher_(NULL), | 731 presentation_dispatcher_(NULL), |
716 screen_orientation_dispatcher_(NULL), | 732 screen_orientation_dispatcher_(NULL), |
717 manifest_manager_(NULL), | 733 manifest_manager_(NULL), |
718 accessibility_mode_(AccessibilityModeOff), | 734 accessibility_mode_(AccessibilityModeOff), |
719 renderer_accessibility_(NULL), | 735 renderer_accessibility_(NULL), |
| 736 service_provider_( |
| 737 new ForwardingServiceProvider(service_registry_.GetWeakPtr())), |
720 weak_factory_(this) { | 738 weak_factory_(this) { |
721 std::pair<RoutingIDFrameMap::iterator, bool> result = | 739 std::pair<RoutingIDFrameMap::iterator, bool> result = |
722 g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this)); | 740 g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this)); |
723 CHECK(result.second) << "Inserting a duplicate item."; | 741 CHECK(result.second) << "Inserting a duplicate item."; |
724 | 742 |
725 RenderThread::Get()->AddRoute(routing_id_, this); | 743 RenderThread::Get()->AddRoute(routing_id_, this); |
726 | 744 |
727 render_view_->RegisterRenderFrame(this); | 745 render_view_->RegisterRenderFrame(this); |
728 | 746 |
729 // Everything below subclasses RenderFrameObserver and is automatically | 747 // Everything below subclasses RenderFrameObserver and is automatically |
(...skipping 2858 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3588 static_cast<storage::StorageType>(type), | 3606 static_cast<storage::StorageType>(type), |
3589 requested_size, | 3607 requested_size, |
3590 QuotaDispatcher::CreateWebStorageQuotaCallbacksWrapper(callbacks)); | 3608 QuotaDispatcher::CreateWebStorageQuotaCallbacksWrapper(callbacks)); |
3591 } | 3609 } |
3592 | 3610 |
3593 void RenderFrameImpl::willOpenWebSocket(blink::WebSocketHandle* handle) { | 3611 void RenderFrameImpl::willOpenWebSocket(blink::WebSocketHandle* handle) { |
3594 WebSocketBridge* impl = static_cast<WebSocketBridge*>(handle); | 3612 WebSocketBridge* impl = static_cast<WebSocketBridge*>(handle); |
3595 impl->set_render_frame_id(routing_id_); | 3613 impl->set_render_frame_id(routing_id_); |
3596 } | 3614 } |
3597 | 3615 |
3598 blink::WebGeolocationClient* RenderFrameImpl::geolocationClient() { | |
3599 if (!geolocation_dispatcher_) | |
3600 geolocation_dispatcher_ = new GeolocationDispatcher(this); | |
3601 return geolocation_dispatcher_; | |
3602 } | |
3603 | |
3604 blink::WebPresentationClient* RenderFrameImpl::presentationClient() { | 3616 blink::WebPresentationClient* RenderFrameImpl::presentationClient() { |
3605 if (!presentation_dispatcher_) | 3617 if (!presentation_dispatcher_) |
3606 presentation_dispatcher_ = new PresentationDispatcher(this); | 3618 presentation_dispatcher_ = new PresentationDispatcher(this); |
3607 return presentation_dispatcher_; | 3619 return presentation_dispatcher_; |
3608 } | 3620 } |
3609 | 3621 |
3610 blink::WebPushClient* RenderFrameImpl::pushClient() { | 3622 blink::WebPushClient* RenderFrameImpl::pushClient() { |
3611 if (!push_messaging_dispatcher_) | 3623 if (!push_messaging_dispatcher_) |
3612 push_messaging_dispatcher_ = new PushMessagingDispatcher(this); | 3624 push_messaging_dispatcher_ = new PushMessagingDispatcher(this); |
3613 return push_messaging_dispatcher_; | 3625 return push_messaging_dispatcher_; |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3861 #if !defined(OS_ANDROID) | 3873 #if !defined(OS_ANDROID) |
3862 if (!usb_client_) { | 3874 if (!usb_client_) { |
3863 mojo::ServiceProviderPtr device_services = | 3875 mojo::ServiceProviderPtr device_services = |
3864 ConnectToApplication(GURL(device::kDevicesMojoAppUrl)); | 3876 ConnectToApplication(GURL(device::kDevicesMojoAppUrl)); |
3865 usb_client_.reset(new WebUSBClientImpl(device_services.Pass())); | 3877 usb_client_.reset(new WebUSBClientImpl(device_services.Pass())); |
3866 } | 3878 } |
3867 #endif | 3879 #endif |
3868 return usb_client_.get(); | 3880 return usb_client_.get(); |
3869 } | 3881 } |
3870 | 3882 |
| 3883 mojo::ServiceProvider* RenderFrameImpl::serviceProvider() { |
| 3884 return service_provider_.get(); |
| 3885 } |
| 3886 |
3871 #if defined(ENABLE_WEBVR) | 3887 #if defined(ENABLE_WEBVR) |
3872 blink::WebVRClient* RenderFrameImpl::webVRClient() { | 3888 blink::WebVRClient* RenderFrameImpl::webVRClient() { |
3873 if (!vr_dispatcher_) | 3889 if (!vr_dispatcher_) |
3874 vr_dispatcher_.reset(new VRDispatcher(GetServiceRegistry())); | 3890 vr_dispatcher_.reset(new VRDispatcher(GetServiceRegistry())); |
3875 | 3891 |
3876 return vr_dispatcher_.get(); | 3892 return vr_dispatcher_.get(); |
3877 } | 3893 } |
3878 #endif | 3894 #endif |
3879 | 3895 |
3880 void RenderFrameImpl::DidPlay(WebMediaPlayer* player) { | 3896 void RenderFrameImpl::DidPlay(WebMediaPlayer* player) { |
(...skipping 1257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5138 mojo::ServiceProviderPtr service_provider; | 5154 mojo::ServiceProviderPtr service_provider; |
5139 mojo::URLRequestPtr request(mojo::URLRequest::New()); | 5155 mojo::URLRequestPtr request(mojo::URLRequest::New()); |
5140 request->url = mojo::String::From(url); | 5156 request->url = mojo::String::From(url); |
5141 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), | 5157 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), |
5142 nullptr, nullptr, | 5158 nullptr, nullptr, |
5143 base::Bind(&OnGotContentHandlerID)); | 5159 base::Bind(&OnGotContentHandlerID)); |
5144 return service_provider.Pass(); | 5160 return service_provider.Pass(); |
5145 } | 5161 } |
5146 | 5162 |
5147 } // namespace content | 5163 } // namespace content |
OLD | NEW |