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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/frame_host/render_frame_host_impl.h" 5 #include "content/browser/frame_host/render_frame_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 3313 matching lines...) Expand 10 before | Expand all | Expand 10 after
3324 3324
3325 Send(new FrameMsg_RunFileChooserResponse(routing_id_, files)); 3325 Send(new FrameMsg_RunFileChooserResponse(routing_id_, files));
3326 } 3326 }
3327 3327
3328 bool RenderFrameHostImpl::HasSelection() { 3328 bool RenderFrameHostImpl::HasSelection() {
3329 return has_selection_; 3329 return has_selection_;
3330 } 3330 }
3331 3331
3332 void RenderFrameHostImpl::GetInterfaceProvider( 3332 void RenderFrameHostImpl::GetInterfaceProvider(
3333 service_manager::mojom::InterfaceProviderRequest interfaces) { 3333 service_manager::mojom::InterfaceProviderRequest interfaces) {
3334 service_manager::InterfaceProviderSpec browser_spec, renderer_spec; 3334 service_manager::Identity child_identity = GetProcess()->GetChildIdentity();
3335 // TODO(beng): CHECK these return true. 3335 child_identity.set_user_id(
3336 service_manager::GetInterfaceProviderSpec( 3336 BrowserContext::GetServiceUserIdFor(GetProcess()->GetBrowserContext()));
3337 mojom::kNavigation_FrameSpec, browser_info_.interface_provider_specs, 3337 service_manager::Connector* connector =
3338 &browser_spec); 3338 BrowserContext::GetConnectorFor(GetProcess()->GetBrowserContext());
3339 service_manager::GetInterfaceProviderSpec( 3339 connector->FilterInterfaces(
3340 mojom::kNavigation_FrameSpec, renderer_info_.interface_provider_specs, 3340 mojom::kNavigation_FrameSpec, child_identity, std::move(interfaces),
3341 &renderer_spec); 3341 interface_provider_bindings_.CreateInterfacePtrAndBind(this));
3342 interface_registry_->Bind(std::move(interfaces),
3343 browser_info_.identity, browser_spec,
3344 renderer_info_.identity, renderer_spec);
3345 } 3342 }
3346 3343
3347 #if BUILDFLAG(USE_EXTERNAL_POPUP_MENU) 3344 #if BUILDFLAG(USE_EXTERNAL_POPUP_MENU)
3348 #if defined(OS_MACOSX) 3345 #if defined(OS_MACOSX)
3349 3346
3350 void RenderFrameHostImpl::DidSelectPopupMenuItem(int selected_index) { 3347 void RenderFrameHostImpl::DidSelectPopupMenuItem(int selected_index) {
3351 Send(new FrameMsg_SelectPopupMenuItem(routing_id_, selected_index)); 3348 Send(new FrameMsg_SelectPopupMenuItem(routing_id_, selected_index));
3352 } 3349 }
3353 3350
3354 void RenderFrameHostImpl::DidCancelPopupMenu() { 3351 void RenderFrameHostImpl::DidCancelPopupMenu() {
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
3634 this, std::move(request), 3631 this, std::move(request),
3635 base::Bind(&RenderFrameHostImpl::OnMediaInterfaceFactoryConnectionError, 3632 base::Bind(&RenderFrameHostImpl::OnMediaInterfaceFactoryConnectionError,
3636 base::Unretained(this)))); 3633 base::Unretained(this))));
3637 } 3634 }
3638 3635
3639 void RenderFrameHostImpl::OnMediaInterfaceFactoryConnectionError() { 3636 void RenderFrameHostImpl::OnMediaInterfaceFactoryConnectionError() {
3640 DCHECK(media_interface_proxy_); 3637 DCHECK(media_interface_proxy_);
3641 media_interface_proxy_.reset(); 3638 media_interface_proxy_.reset();
3642 } 3639 }
3643 3640
3641 void RenderFrameHostImpl::GetInterface(
3642 const std::string& interface_name,
3643 mojo::ScopedMessagePipeHandle interface_pipe) {
3644 if (interface_registry_.get()) {
3645 interface_registry_->BindInterface(interface_name,
3646 std::move(interface_pipe));
3647 }
3648 }
3649
3644 std::unique_ptr<NavigationHandleImpl> 3650 std::unique_ptr<NavigationHandleImpl>
3645 RenderFrameHostImpl::TakeNavigationHandleForCommit( 3651 RenderFrameHostImpl::TakeNavigationHandleForCommit(
3646 const FrameHostMsg_DidCommitProvisionalLoad_Params& params) { 3652 const FrameHostMsg_DidCommitProvisionalLoad_Params& params) {
3647 bool is_browser_initiated = (params.nav_entry_id != 0); 3653 bool is_browser_initiated = (params.nav_entry_id != 0);
3648 3654
3649 if (params.was_within_same_document) { 3655 if (params.was_within_same_document) {
3650 if (IsBrowserSideNavigationEnabled()) { 3656 if (IsBrowserSideNavigationEnabled()) {
3651 // When browser-side navigation is enabled, a NavigationHandle is created 3657 // When browser-side navigation is enabled, a NavigationHandle is created
3652 // for browser-initiated same-document navigation. Try to take it if it's 3658 // for browser-initiated same-document navigation. Try to take it if it's
3653 // still available and matches the current navigation. 3659 // still available and matches the current navigation.
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
3786 } 3792 }
3787 3793
3788 void RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame( 3794 void RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame(
3789 const std::string& interface_name, 3795 const std::string& interface_name,
3790 mojo::ScopedMessagePipeHandle pipe) { 3796 mojo::ScopedMessagePipeHandle pipe) {
3791 GetRemoteInterfaces()->GetInterface(interface_name, std::move(pipe)); 3797 GetRemoteInterfaces()->GetInterface(interface_name, std::move(pipe));
3792 } 3798 }
3793 #endif 3799 #endif
3794 3800
3795 } // namespace content 3801 } // namespace content
OLDNEW
« 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