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

Unified Diff: content/browser/frame_host/render_frame_host_impl.cc

Issue 2816393002: Implement Connector::ApplySpec() & use to enforce navigation:frame (Closed)
Patch Set: . Created 3 years, 8 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/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) {
« no previous file with comments | « content/browser/frame_host/render_frame_host_impl.h ('k') | content/browser/renderer_host/render_process_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698