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

Side by Side Diff: content/browser/frame_host/render_frame_host_impl.cc

Issue 2844923002: Replace InterfaceRegistry on RenderFrameHostImpl with BinderRegistry (Closed)
Patch Set: . Created 3 years, 7 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 622 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 } 633 }
634 634
635 void RenderFrameHostImpl::SaveImageAt(int x, int y) { 635 void RenderFrameHostImpl::SaveImageAt(int x, int y) {
636 Send(new FrameMsg_SaveImageAt(routing_id_, x, y)); 636 Send(new FrameMsg_SaveImageAt(routing_id_, x, y));
637 } 637 }
638 638
639 RenderViewHost* RenderFrameHostImpl::GetRenderViewHost() { 639 RenderViewHost* RenderFrameHostImpl::GetRenderViewHost() {
640 return render_view_host_; 640 return render_view_host_;
641 } 641 }
642 642
643 service_manager::InterfaceRegistry* 643 service_manager::BinderRegistry* RenderFrameHostImpl::GetInterfaceRegistry() {
644 RenderFrameHostImpl::GetInterfaceRegistry() {
645 return interface_registry_.get(); 644 return interface_registry_.get();
646 } 645 }
647 646
648 service_manager::InterfaceProvider* RenderFrameHostImpl::GetRemoteInterfaces() { 647 service_manager::InterfaceProvider* RenderFrameHostImpl::GetRemoteInterfaces() {
649 return remote_interfaces_.get(); 648 return remote_interfaces_.get();
650 } 649 }
651 650
652 AssociatedInterfaceProvider* 651 AssociatedInterfaceProvider*
653 RenderFrameHostImpl::GetRemoteAssociatedInterfaces() { 652 RenderFrameHostImpl::GetRemoteAssociatedInterfaces() {
654 if (!remote_associated_interfaces_) { 653 if (!remote_associated_interfaces_) {
(...skipping 1996 matching lines...) Expand 10 before | Expand all | Expand 10 after
2651 base::Unretained(media_stream_manager)), 2650 base::Unretained(media_stream_manager)),
2652 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)); 2651 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO));
2653 } 2652 }
2654 #endif 2653 #endif
2655 2654
2656 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 2655 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
2657 GetInterfaceRegistry()->AddInterface(base::Bind( 2656 GetInterfaceRegistry()->AddInterface(base::Bind(
2658 &RemoterFactoryImpl::Bind, GetProcess()->GetID(), GetRoutingID())); 2657 &RemoterFactoryImpl::Bind, GetProcess()->GetID(), GetRoutingID()));
2659 #endif // BUILDFLAG(ENABLE_MEDIA_REMOTING) 2658 #endif // BUILDFLAG(ENABLE_MEDIA_REMOTING)
2660 2659
2661 GetContentClient()->browser()->RegisterRenderFrameMojoInterfaces( 2660 GetContentClient()->browser()->ExposeInterfacesToFrame(GetInterfaceRegistry(),
2662 GetInterfaceRegistry(), this); 2661 this);
2663 } 2662 }
2664 2663
2665 void RenderFrameHostImpl::ResetWaitingState() { 2664 void RenderFrameHostImpl::ResetWaitingState() {
2666 DCHECK(is_active()); 2665 DCHECK(is_active());
2667 2666
2668 // Whenever we reset the RFH state, we should not be waiting for beforeunload 2667 // Whenever we reset the RFH state, we should not be waiting for beforeunload
2669 // or close acks. We clear them here to be safe, since they can cause 2668 // or close acks. We clear them here to be safe, since they can cause
2670 // navigations to be ignored in OnDidCommitProvisionalLoad. 2669 // navigations to be ignored in OnDidCommitProvisionalLoad.
2671 if (is_waiting_for_beforeunload_ack_) { 2670 if (is_waiting_for_beforeunload_ack_) {
2672 is_waiting_for_beforeunload_ack_ = false; 2671 is_waiting_for_beforeunload_ack_ = false;
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
2997 // An error page is expected to commit, hence why is_loading_ is set to true. 2996 // An error page is expected to commit, hence why is_loading_ is set to true.
2998 is_loading_ = true; 2997 is_loading_ = true;
2999 frame_tree_node_->ResetNavigationRequest(true, true); 2998 frame_tree_node_->ResetNavigationRequest(true, true);
3000 } 2999 }
3001 3000
3002 void RenderFrameHostImpl::SetUpMojoIfNeeded() { 3001 void RenderFrameHostImpl::SetUpMojoIfNeeded() {
3003 if (interface_registry_.get()) 3002 if (interface_registry_.get())
3004 return; 3003 return;
3005 3004
3006 associated_registry_ = base::MakeUnique<AssociatedInterfaceRegistryImpl>(); 3005 associated_registry_ = base::MakeUnique<AssociatedInterfaceRegistryImpl>();
3007 interface_registry_ = base::MakeUnique<service_manager::InterfaceRegistry>( 3006 interface_registry_ = base::MakeUnique<service_manager::BinderRegistry>();
3008 mojom::kNavigation_FrameSpec);
3009 3007
3010 auto make_binding = [](RenderFrameHostImpl* impl, 3008 auto make_binding = [](RenderFrameHostImpl* impl,
3011 mojom::FrameHostAssociatedRequest request) { 3009 mojom::FrameHostAssociatedRequest request) {
3012 impl->frame_host_associated_binding_.Bind(std::move(request)); 3010 impl->frame_host_associated_binding_.Bind(std::move(request));
3013 }; 3011 };
3014 static_cast<AssociatedInterfaceRegistry*>(associated_registry_.get()) 3012 static_cast<AssociatedInterfaceRegistry*>(associated_registry_.get())
3015 ->AddInterface(base::Bind(make_binding, base::Unretained(this))); 3013 ->AddInterface(base::Bind(make_binding, base::Unretained(this)));
3016 3014
3017 ServiceManagerConnection* service_manager_connection = 3015 ServiceManagerConnection* service_manager_connection =
3018 BrowserContext::GetServiceManagerConnectionFor( 3016 BrowserContext::GetServiceManagerConnectionFor(
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
3325 Send(new FrameMsg_RunFileChooserResponse(routing_id_, files)); 3323 Send(new FrameMsg_RunFileChooserResponse(routing_id_, files));
3326 } 3324 }
3327 3325
3328 bool RenderFrameHostImpl::HasSelection() { 3326 bool RenderFrameHostImpl::HasSelection() {
3329 return has_selection_; 3327 return has_selection_;
3330 } 3328 }
3331 3329
3332 void RenderFrameHostImpl::GetInterfaceProvider( 3330 void RenderFrameHostImpl::GetInterfaceProvider(
3333 service_manager::mojom::InterfaceProviderRequest interfaces) { 3331 service_manager::mojom::InterfaceProviderRequest interfaces) {
3334 service_manager::Identity child_identity = GetProcess()->GetChildIdentity(); 3332 service_manager::Identity child_identity = GetProcess()->GetChildIdentity();
3335 child_identity.set_user_id(
3336 BrowserContext::GetServiceUserIdFor(GetProcess()->GetBrowserContext()));
3337 service_manager::Connector* connector = 3333 service_manager::Connector* connector =
3338 BrowserContext::GetConnectorFor(GetProcess()->GetBrowserContext()); 3334 BrowserContext::GetConnectorFor(GetProcess()->GetBrowserContext());
3339 connector->FilterInterfaces( 3335 connector->FilterInterfaces(
3340 mojom::kNavigation_FrameSpec, child_identity, std::move(interfaces), 3336 mojom::kNavigation_FrameSpec, child_identity, std::move(interfaces),
3341 interface_provider_bindings_.CreateInterfacePtrAndBind(this)); 3337 interface_provider_bindings_.CreateInterfacePtrAndBind(this));
3342 } 3338 }
3343 3339
3344 #if BUILDFLAG(USE_EXTERNAL_POPUP_MENU) 3340 #if BUILDFLAG(USE_EXTERNAL_POPUP_MENU)
3345 #if defined(OS_MACOSX) 3341 #if defined(OS_MACOSX)
3346 3342
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
3635 3631
3636 void RenderFrameHostImpl::OnMediaInterfaceFactoryConnectionError() { 3632 void RenderFrameHostImpl::OnMediaInterfaceFactoryConnectionError() {
3637 DCHECK(media_interface_proxy_); 3633 DCHECK(media_interface_proxy_);
3638 media_interface_proxy_.reset(); 3634 media_interface_proxy_.reset();
3639 } 3635 }
3640 3636
3641 void RenderFrameHostImpl::GetInterface( 3637 void RenderFrameHostImpl::GetInterface(
3642 const std::string& interface_name, 3638 const std::string& interface_name,
3643 mojo::ScopedMessagePipeHandle interface_pipe) { 3639 mojo::ScopedMessagePipeHandle interface_pipe) {
3644 if (interface_registry_.get()) { 3640 if (interface_registry_.get()) {
3645 interface_registry_->BindInterface(interface_name, 3641 interface_registry_->BindInterface(GetProcess()->GetChildIdentity(),
3642 interface_name,
3646 std::move(interface_pipe)); 3643 std::move(interface_pipe));
3647 } 3644 }
3648 } 3645 }
3649 3646
3650 std::unique_ptr<NavigationHandleImpl> 3647 std::unique_ptr<NavigationHandleImpl>
3651 RenderFrameHostImpl::TakeNavigationHandleForCommit( 3648 RenderFrameHostImpl::TakeNavigationHandleForCommit(
3652 const FrameHostMsg_DidCommitProvisionalLoad_Params& params) { 3649 const FrameHostMsg_DidCommitProvisionalLoad_Params& params) {
3653 bool is_browser_initiated = (params.nav_entry_id != 0); 3650 bool is_browser_initiated = (params.nav_entry_id != 0);
3654 3651
3655 if (params.was_within_same_document) { 3652 if (params.was_within_same_document) {
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
3792 } 3789 }
3793 3790
3794 void RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame( 3791 void RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame(
3795 const std::string& interface_name, 3792 const std::string& interface_name,
3796 mojo::ScopedMessagePipeHandle pipe) { 3793 mojo::ScopedMessagePipeHandle pipe) {
3797 GetRemoteInterfaces()->GetInterface(interface_name, std::move(pipe)); 3794 GetRemoteInterfaces()->GetInterface(interface_name, std::move(pipe));
3798 } 3795 }
3799 #endif 3796 #endif
3800 3797
3801 } // namespace content 3798 } // 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.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698