Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 5aead0f6ac08e24b1cd4912a879c6a01cc829075..cd33680fac12500751fc004e1b3ae7cf1c0d0409 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -174,6 +174,7 @@ |
#include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
#include "net/http/http_util.h" |
#include "ppapi/features/features.h" |
+#include "services/service_manager/public/cpp/connector.h" |
#include "services/service_manager/public/cpp/interface_provider.h" |
#include "services/service_manager/public/cpp/interface_registry.h" |
#include "services/ui/public/cpp/gpu/context_provider_command_buffer.h" |
@@ -1315,6 +1316,12 @@ void RenderFrameImpl::InitializeBlameContext(RenderFrameImpl* parent_frame) { |
blame_context_->Initialize(); |
} |
+void RenderFrameImpl::GetInterface( |
+ const std::string& interface_name, |
+ mojo::ScopedMessagePipeHandle interface_pipe) { |
+ interface_registry_->BindInterface(interface_name, std::move(interface_pipe)); |
+} |
+ |
RenderWidget* RenderFrameImpl::GetRenderWidget() { |
return GetLocalRoot()->render_widget_.get(); |
} |
@@ -2730,21 +2737,12 @@ void RenderFrameImpl::SetEngagementLevel(const url::Origin& origin, |
void RenderFrameImpl::GetInterfaceProvider( |
service_manager::mojom::InterfaceProviderRequest request) { |
- service_manager::ServiceInfo child_info = |
- ChildThreadImpl::current()->GetChildServiceInfo(); |
service_manager::ServiceInfo browser_info = |
ChildThreadImpl::current()->GetBrowserServiceInfo(); |
- |
- service_manager::InterfaceProviderSpec child_spec, browser_spec; |
- // TODO(beng): CHECK these return true. |
- service_manager::GetInterfaceProviderSpec( |
- mojom::kNavigation_FrameSpec, child_info.interface_provider_specs, |
- &child_spec); |
- service_manager::GetInterfaceProviderSpec( |
- mojom::kNavigation_FrameSpec, browser_info.interface_provider_specs, |
- &browser_spec); |
- interface_registry_->Bind(std::move(request), child_info.identity, child_spec, |
- browser_info.identity, browser_spec); |
+ service_manager::Connector* connector = ChildThread::Get()->GetConnector(); |
+ connector->FilterInterfaces( |
+ mojom::kNavigation_FrameSpec, browser_info.identity, std::move(request), |
+ interface_provider_bindings_.CreateInterfacePtrAndBind(this)); |
} |
void RenderFrameImpl::AllowBindings(int32_t enabled_bindings_flags) { |