Index: content/browser/frame_host/render_frame_host_impl.cc |
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc |
index 45cf9cfdc865ed82c82a655cf49b05212c2ef109..0f23fd85c33f2434a851df13339733c261bd1210 100644 |
--- a/content/browser/frame_host/render_frame_host_impl.cc |
+++ b/content/browser/frame_host/render_frame_host_impl.cc |
@@ -3331,17 +3331,14 @@ bool RenderFrameHostImpl::HasSelection() { |
void RenderFrameHostImpl::GetInterfaceProvider( |
service_manager::mojom::InterfaceProviderRequest interfaces) { |
- service_manager::InterfaceProviderSpec browser_spec, renderer_spec; |
- // TODO(beng): CHECK these return true. |
- service_manager::GetInterfaceProviderSpec( |
- mojom::kNavigation_FrameSpec, browser_info_.interface_provider_specs, |
- &browser_spec); |
- service_manager::GetInterfaceProviderSpec( |
- mojom::kNavigation_FrameSpec, renderer_info_.interface_provider_specs, |
- &renderer_spec); |
- interface_registry_->Bind(std::move(interfaces), |
- browser_info_.identity, browser_spec, |
- renderer_info_.identity, renderer_spec); |
+ service_manager::Identity child_identity = GetProcess()->GetChildIdentity(); |
+ child_identity.set_user_id( |
+ BrowserContext::GetServiceUserIdFor(GetProcess()->GetBrowserContext())); |
+ service_manager::Connector* connector = |
+ BrowserContext::GetConnectorFor(GetProcess()->GetBrowserContext()); |
+ connector->FilterInterfaces( |
+ mojom::kNavigation_FrameSpec, child_identity, std::move(interfaces), |
+ interface_provider_bindings_.CreateInterfacePtrAndBind(this)); |
} |
#if BUILDFLAG(USE_EXTERNAL_POPUP_MENU) |
@@ -3641,6 +3638,15 @@ void RenderFrameHostImpl::OnMediaInterfaceFactoryConnectionError() { |
media_interface_proxy_.reset(); |
} |
+void RenderFrameHostImpl::GetInterface( |
+ const std::string& interface_name, |
+ mojo::ScopedMessagePipeHandle interface_pipe) { |
+ if (interface_registry_.get()) { |
+ interface_registry_->BindInterface(interface_name, |
+ std::move(interface_pipe)); |
+ } |
+} |
+ |
std::unique_ptr<NavigationHandleImpl> |
RenderFrameHostImpl::TakeNavigationHandleForCommit( |
const FrameHostMsg_DidCommitProvisionalLoad_Params& params) { |