| 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_)
|
|
|