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

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

Issue 1367853002: Move GeolocationDispatcher into blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix layout tests Created 5 years, 2 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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698