| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |