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

Unified 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, 3 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/render_frame_impl.cc
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 5aed77678c39a1043d68ca080963acf06148d014..f181c72b360de64a985137eb984d6cd76c8682ec 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -70,7 +70,6 @@
#include "content/renderer/devtools/devtools_agent.h"
#include "content/renderer/dom_automation_controller.h"
#include "content/renderer/external_popup_menu.h"
-#include "content/renderer/geolocation_dispatcher.h"
#include "content/renderer/gpu/gpu_benchmarking_extension.h"
#include "content/renderer/history_controller.h"
#include "content/renderer/history_serialization.h"
@@ -514,6 +513,24 @@ RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl =
void OnGotContentHandlerID(uint32_t content_handler_id) {}
+class ForwardingServiceProvider : public mojo::ServiceProvider {
+ public:
+ ForwardingServiceProvider(base::WeakPtr<ServiceRegistry> service_registry)
+ : service_registry_(service_registry) {}
+
+ void ConnectToService(const mojo::String& interface_name,
+ mojo::ScopedMessagePipeHandle pipe) override {
+ if (service_registry_)
+ service_registry_->ConnectToRemoteService(
+ interface_name.To<std::string>(), pipe.Pass());
+ }
+
+ private:
+ base::WeakPtr<ServiceRegistry> service_registry_;
+
+ DISALLOW_COPY_AND_ASSIGN(ForwardingServiceProvider);
+};
+
} // namespace
// static
@@ -710,13 +727,14 @@ RenderFrameImpl::RenderFrameImpl(const CreateParams& params)
#endif
has_played_media_(false),
devtools_agent_(nullptr),
- geolocation_dispatcher_(NULL),
push_messaging_dispatcher_(NULL),
presentation_dispatcher_(NULL),
screen_orientation_dispatcher_(NULL),
manifest_manager_(NULL),
accessibility_mode_(AccessibilityModeOff),
renderer_accessibility_(NULL),
+ service_provider_(
+ new ForwardingServiceProvider(service_registry_.GetWeakPtr())),
weak_factory_(this) {
std::pair<RoutingIDFrameMap::iterator, bool> result =
g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this));
@@ -3595,12 +3613,6 @@ void RenderFrameImpl::willOpenWebSocket(blink::WebSocketHandle* handle) {
impl->set_render_frame_id(routing_id_);
}
-blink::WebGeolocationClient* RenderFrameImpl::geolocationClient() {
- if (!geolocation_dispatcher_)
- geolocation_dispatcher_ = new GeolocationDispatcher(this);
- return geolocation_dispatcher_;
-}
-
blink::WebPresentationClient* RenderFrameImpl::presentationClient() {
if (!presentation_dispatcher_)
presentation_dispatcher_ = new PresentationDispatcher(this);
@@ -3868,6 +3880,10 @@ blink::WebUSBClient* RenderFrameImpl::usbClient() {
return usb_client_.get();
}
+mojo::ServiceProvider* RenderFrameImpl::serviceProvider() {
+ return service_provider_.get();
+}
+
#if defined(ENABLE_WEBVR)
blink::WebVRClient* RenderFrameImpl::webVRClient() {
if (!vr_dispatcher_)

Powered by Google App Engine
This is Rietveld 408576698