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 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 } | 259 } |
260 } | 260 } |
261 | 261 |
262 const int process_id_; | 262 const int process_id_; |
263 const int routing_id_; | 263 const int routing_id_; |
264 | 264 |
265 DISALLOW_COPY_AND_ASSIGN(RemoterFactoryImpl); | 265 DISALLOW_COPY_AND_ASSIGN(RemoterFactoryImpl); |
266 }; | 266 }; |
267 #endif // BUILDFLAG(ENABLE_MEDIA_REMOTING) | 267 #endif // BUILDFLAG(ENABLE_MEDIA_REMOTING) |
268 | 268 |
| 269 void CreateResourceCoordinatorFrameInterface( |
| 270 RenderFrameHostImpl* render_frame_host, |
| 271 const service_manager::BindSourceInfo& source_info, |
| 272 resource_coordinator::mojom::CoordinationUnitRequest request) { |
| 273 render_frame_host->GetFrameResourceCoordinator()->service()->Duplicate( |
| 274 std::move(request)); |
| 275 } |
| 276 |
269 template <typename Interface> | 277 template <typename Interface> |
270 void IgnoreInterfaceRequest(const service_manager::BindSourceInfo& source_info, | 278 void IgnoreInterfaceRequest(const service_manager::BindSourceInfo& source_info, |
271 mojo::InterfaceRequest<Interface> request) { | 279 mojo::InterfaceRequest<Interface> request) { |
272 // Intentionally ignore the interface request. | 280 // Intentionally ignore the interface request. |
273 } | 281 } |
274 | 282 |
275 // The following functions simplify code paths where the UI thread notifies the | 283 // The following functions simplify code paths where the UI thread notifies the |
276 // ResourceDispatcherHostImpl of information pertaining to loading behavior of | 284 // ResourceDispatcherHostImpl of information pertaining to loading behavior of |
277 // frame hosts. | 285 // frame hosts. |
278 void NotifyRouteChangesOnIO( | 286 void NotifyRouteChangesOnIO( |
(...skipping 2544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2823 routing_id_)); | 2831 routing_id_)); |
2824 | 2832 |
2825 #if BUILDFLAG(ENABLE_VR) | 2833 #if BUILDFLAG(ENABLE_VR) |
2826 GetInterfaceRegistry()->AddInterface<device::mojom::VRService>( | 2834 GetInterfaceRegistry()->AddInterface<device::mojom::VRService>( |
2827 base::Bind(&device::VRServiceImpl::Create)); | 2835 base::Bind(&device::VRServiceImpl::Create)); |
2828 #else | 2836 #else |
2829 GetInterfaceRegistry()->AddInterface<device::mojom::VRService>( | 2837 GetInterfaceRegistry()->AddInterface<device::mojom::VRService>( |
2830 base::Bind(&IgnoreInterfaceRequest<device::mojom::VRService>)); | 2838 base::Bind(&IgnoreInterfaceRequest<device::mojom::VRService>)); |
2831 #endif | 2839 #endif |
2832 | 2840 |
| 2841 GetInterfaceRegistry()->AddInterface(base::Bind( |
| 2842 &CreateResourceCoordinatorFrameInterface, base::Unretained(this))); |
| 2843 |
2833 #if BUILDFLAG(ENABLE_WEBRTC) | 2844 #if BUILDFLAG(ENABLE_WEBRTC) |
2834 // BrowserMainLoop::GetInstance() may be null on unit tests. | 2845 // BrowserMainLoop::GetInstance() may be null on unit tests. |
2835 if (BrowserMainLoop::GetInstance()) { | 2846 if (BrowserMainLoop::GetInstance()) { |
2836 // BrowserMainLoop, which owns MediaStreamManager, is alive for the lifetime | 2847 // BrowserMainLoop, which owns MediaStreamManager, is alive for the lifetime |
2837 // of Mojo communication (see BrowserMainLoop::ShutdownThreadsAndCleanUp(), | 2848 // of Mojo communication (see BrowserMainLoop::ShutdownThreadsAndCleanUp(), |
2838 // which shuts down Mojo). Hence, passing that MediaStreamManager instance | 2849 // which shuts down Mojo). Hence, passing that MediaStreamManager instance |
2839 // as a raw pointer here is safe. | 2850 // as a raw pointer here is safe. |
2840 MediaStreamManager* media_stream_manager = | 2851 MediaStreamManager* media_stream_manager = |
2841 BrowserMainLoop::GetInstance()->media_stream_manager(); | 2852 BrowserMainLoop::GetInstance()->media_stream_manager(); |
2842 GetInterfaceRegistry()->AddInterface( | 2853 GetInterfaceRegistry()->AddInterface( |
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3247 | 3258 |
3248 void RenderFrameHostImpl::InvalidateMojoConnection() { | 3259 void RenderFrameHostImpl::InvalidateMojoConnection() { |
3249 interface_registry_.reset(); | 3260 interface_registry_.reset(); |
3250 | 3261 |
3251 frame_.reset(); | 3262 frame_.reset(); |
3252 frame_host_interface_broker_binding_.Close(); | 3263 frame_host_interface_broker_binding_.Close(); |
3253 frame_bindings_control_.reset(); | 3264 frame_bindings_control_.reset(); |
3254 | 3265 |
3255 // Disconnect with ImageDownloader Mojo service in RenderFrame. | 3266 // Disconnect with ImageDownloader Mojo service in RenderFrame. |
3256 mojo_image_downloader_.reset(); | 3267 mojo_image_downloader_.reset(); |
| 3268 frame_resource_coordinator_.reset(); |
3257 } | 3269 } |
3258 | 3270 |
3259 bool RenderFrameHostImpl::IsFocused() { | 3271 bool RenderFrameHostImpl::IsFocused() { |
3260 return GetRenderWidgetHost()->is_focused() && | 3272 return GetRenderWidgetHost()->is_focused() && |
3261 frame_tree_->GetFocusedFrame() && | 3273 frame_tree_->GetFocusedFrame() && |
3262 (frame_tree_->GetFocusedFrame() == frame_tree_node() || | 3274 (frame_tree_->GetFocusedFrame() == frame_tree_node() || |
3263 frame_tree_->GetFocusedFrame()->IsDescendantOf(frame_tree_node())); | 3275 frame_tree_->GetFocusedFrame()->IsDescendantOf(frame_tree_node())); |
3264 } | 3276 } |
3265 | 3277 |
3266 bool RenderFrameHostImpl::UpdatePendingWebUI(const GURL& dest_url, | 3278 bool RenderFrameHostImpl::UpdatePendingWebUI(const GURL& dest_url, |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3353 web_ui_.reset(); | 3365 web_ui_.reset(); |
3354 } | 3366 } |
3355 | 3367 |
3356 const content::mojom::ImageDownloaderPtr& | 3368 const content::mojom::ImageDownloaderPtr& |
3357 RenderFrameHostImpl::GetMojoImageDownloader() { | 3369 RenderFrameHostImpl::GetMojoImageDownloader() { |
3358 if (!mojo_image_downloader_.get() && GetRemoteInterfaces()) | 3370 if (!mojo_image_downloader_.get() && GetRemoteInterfaces()) |
3359 GetRemoteInterfaces()->GetInterface(&mojo_image_downloader_); | 3371 GetRemoteInterfaces()->GetInterface(&mojo_image_downloader_); |
3360 return mojo_image_downloader_; | 3372 return mojo_image_downloader_; |
3361 } | 3373 } |
3362 | 3374 |
| 3375 resource_coordinator::ResourceCoordinatorInterface* |
| 3376 RenderFrameHostImpl::GetFrameResourceCoordinator() { |
| 3377 if (!frame_resource_coordinator_) { |
| 3378 frame_resource_coordinator_ = |
| 3379 base::MakeUnique<resource_coordinator::ResourceCoordinatorInterface>( |
| 3380 ServiceManagerConnection::GetForProcess()->GetConnector(), |
| 3381 resource_coordinator::CoordinationUnitType::kFrame); |
| 3382 } |
| 3383 |
| 3384 return frame_resource_coordinator_.get(); |
| 3385 } |
| 3386 |
3363 void RenderFrameHostImpl::ResetLoadingState() { | 3387 void RenderFrameHostImpl::ResetLoadingState() { |
3364 if (is_loading()) { | 3388 if (is_loading()) { |
3365 // When pending deletion, just set the loading state to not loading. | 3389 // When pending deletion, just set the loading state to not loading. |
3366 // Otherwise, OnDidStopLoading will take care of that, as well as sending | 3390 // Otherwise, OnDidStopLoading will take care of that, as well as sending |
3367 // notification to the FrameTreeNode about the change in loading state. | 3391 // notification to the FrameTreeNode about the change in loading state. |
3368 if (!is_active()) | 3392 if (!is_active()) |
3369 is_loading_ = false; | 3393 is_loading_ = false; |
3370 else | 3394 else |
3371 OnDidStopLoading(); | 3395 OnDidStopLoading(); |
3372 } | 3396 } |
(...skipping 692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4065 } | 4089 } |
4066 | 4090 |
4067 void RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame( | 4091 void RenderFrameHostImpl::ForwardGetInterfaceToRenderFrame( |
4068 const std::string& interface_name, | 4092 const std::string& interface_name, |
4069 mojo::ScopedMessagePipeHandle pipe) { | 4093 mojo::ScopedMessagePipeHandle pipe) { |
4070 GetRemoteInterfaces()->GetInterface(interface_name, std::move(pipe)); | 4094 GetRemoteInterfaces()->GetInterface(interface_name, std::move(pipe)); |
4071 } | 4095 } |
4072 #endif | 4096 #endif |
4073 | 4097 |
4074 } // namespace content | 4098 } // namespace content |
OLD | NEW |