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 3313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |