Chromium Code Reviews| OLD | NEW | 
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/renderer/render_thread_impl.h" | 5 #include "content/renderer/render_thread_impl.h" | 
| 6 | 6 | 
| 7 #include <algorithm> | 7 #include <algorithm> | 
| 8 #include <limits> | 8 #include <limits> | 
| 9 #include <map> | 9 #include <map> | 
| 10 #include <utility> | 10 #include <utility> | 
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 105 #include "content/renderer/input/input_handler_manager.h" | 105 #include "content/renderer/input/input_handler_manager.h" | 
| 106 #include "content/renderer/input/main_thread_input_event_filter.h" | 106 #include "content/renderer/input/main_thread_input_event_filter.h" | 
| 107 #include "content/renderer/media/audio_input_message_filter.h" | 107 #include "content/renderer/media/audio_input_message_filter.h" | 
| 108 #include "content/renderer/media/audio_message_filter.h" | 108 #include "content/renderer/media/audio_message_filter.h" | 
| 109 #include "content/renderer/media/audio_renderer_mixer_manager.h" | 109 #include "content/renderer/media/audio_renderer_mixer_manager.h" | 
| 110 #include "content/renderer/media/media_stream_center.h" | 110 #include "content/renderer/media/media_stream_center.h" | 
| 111 #include "content/renderer/media/midi_message_filter.h" | 111 #include "content/renderer/media/midi_message_filter.h" | 
| 112 #include "content/renderer/media/render_media_client.h" | 112 #include "content/renderer/media/render_media_client.h" | 
| 113 #include "content/renderer/media/renderer_gpu_video_accelerator_factories.h" | 113 #include "content/renderer/media/renderer_gpu_video_accelerator_factories.h" | 
| 114 #include "content/renderer/media/video_capture_impl_manager.h" | 114 #include "content/renderer/media/video_capture_impl_manager.h" | 
| 115 #include "content/renderer/mojo/thread_safe_associated_interface_ptr_provider.h" | |
| 115 #include "content/renderer/net_info_helper.h" | 116 #include "content/renderer/net_info_helper.h" | 
| 116 #include "content/renderer/p2p/socket_dispatcher.h" | 117 #include "content/renderer/p2p/socket_dispatcher.h" | 
| 117 #include "content/renderer/render_frame_proxy.h" | 118 #include "content/renderer/render_frame_proxy.h" | 
| 118 #include "content/renderer/render_process_impl.h" | 119 #include "content/renderer/render_process_impl.h" | 
| 119 #include "content/renderer/render_view_impl.h" | 120 #include "content/renderer/render_view_impl.h" | 
| 120 #include "content/renderer/renderer_blink_platform_impl.h" | 121 #include "content/renderer/renderer_blink_platform_impl.h" | 
| 121 #include "content/renderer/scheduler/resource_dispatch_throttler.h" | 122 #include "content/renderer/scheduler/resource_dispatch_throttler.h" | 
| 122 #include "content/renderer/service_worker/embedded_worker_dispatcher.h" | 123 #include "content/renderer/service_worker/embedded_worker_dispatcher.h" | 
| 123 #include "content/renderer/service_worker/embedded_worker_instance_client_impl.h " | 124 #include "content/renderer/service_worker/embedded_worker_instance_client_impl.h " | 
| 124 #include "content/renderer/service_worker/service_worker_context_client.h" | 125 #include "content/renderer/service_worker/service_worker_context_client.h" | 
| (...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 579 | 580 | 
| 580 // static | 581 // static | 
| 581 mojom::RenderMessageFilter* RenderThreadImpl::current_render_message_filter() { | 582 mojom::RenderMessageFilter* RenderThreadImpl::current_render_message_filter() { | 
| 582 if (g_render_message_filter_for_testing) | 583 if (g_render_message_filter_for_testing) | 
| 583 return g_render_message_filter_for_testing; | 584 return g_render_message_filter_for_testing; | 
| 584 DCHECK(current()); | 585 DCHECK(current()); | 
| 585 return current()->render_message_filter(); | 586 return current()->render_message_filter(); | 
| 586 } | 587 } | 
| 587 | 588 | 
| 588 // static | 589 // static | 
| 590 const scoped_refptr<mojom::ThreadSafeRenderMessageFilterAssociatedPtr>& | |
| 591 RenderThreadImpl::current_thread_safe_render_message_filter() { | |
| 592 DCHECK(current()); | |
| 593 return current()->thread_safe_render_message_filter(); | |
| 594 } | |
| 595 | |
| 596 // static | |
| 589 void RenderThreadImpl::SetRenderMessageFilterForTesting( | 597 void RenderThreadImpl::SetRenderMessageFilterForTesting( | 
| 590 mojom::RenderMessageFilter* render_message_filter) { | 598 mojom::RenderMessageFilter* render_message_filter) { | 
| 591 g_render_message_filter_for_testing = render_message_filter; | 599 g_render_message_filter_for_testing = render_message_filter; | 
| 592 } | 600 } | 
| 593 | 601 | 
| 594 // In single-process mode used for debugging, we don't pass a renderer client | 602 // In single-process mode used for debugging, we don't pass a renderer client | 
| 595 // ID via command line because RenderThreadImpl lives in the same process as | 603 // ID via command line because RenderThreadImpl lives in the same process as | 
| 596 // the browser | 604 // the browser | 
| 597 RenderThreadImpl::RenderThreadImpl( | 605 RenderThreadImpl::RenderThreadImpl( | 
| 598 const InProcessChildThreadParams& params, | 606 const InProcessChildThreadParams& params, | 
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 685 kMaxResourceRequestsPerFlushWhenThrottled)); | 693 kMaxResourceRequestsPerFlushWhenThrottled)); | 
| 686 resource_dispatcher()->set_message_sender(resource_dispatch_throttler_.get()); | 694 resource_dispatcher()->set_message_sender(resource_dispatch_throttler_.get()); | 
| 687 | 695 | 
| 688 media_stream_center_ = nullptr; | 696 media_stream_center_ = nullptr; | 
| 689 | 697 | 
| 690 blob_message_filter_ = new BlobMessageFilter(GetFileThreadTaskRunner()); | 698 blob_message_filter_ = new BlobMessageFilter(GetFileThreadTaskRunner()); | 
| 691 AddFilter(blob_message_filter_.get()); | 699 AddFilter(blob_message_filter_.get()); | 
| 692 db_message_filter_ = new DBMessageFilter(); | 700 db_message_filter_ = new DBMessageFilter(); | 
| 693 AddFilter(db_message_filter_.get()); | 701 AddFilter(db_message_filter_.get()); | 
| 694 | 702 | 
| 703 thread_safe_associated_interface_ptr_provider_ = | |
| 704 base::MakeUnique<ThreadSafeAssociatedInterfacePtrProvider>(channel()); | |
| 
 
yzshen1
2016/11/28 18:05:45
I thought channel()'s return value didn't pass own
 
Jay Civelli
2016/11/28 18:46:10
It does not pass ownership. Here we are taking own
 
yzshen1
2016/11/28 18:50:21
Ah, I see, it calls the constructor of ThreadSafeA
 
 | |
| 705 thread_safe_render_message_filter_ = | |
| 706 thread_safe_associated_interface_ptr_provider_ | |
| 707 ->CreateInterfacePtr<mojom::RenderMessageFilter>(); | |
| 708 | |
| 695 vc_manager_.reset(new VideoCaptureImplManager()); | 709 vc_manager_.reset(new VideoCaptureImplManager()); | 
| 696 | 710 | 
| 697 browser_plugin_manager_.reset(new BrowserPluginManager()); | 711 browser_plugin_manager_.reset(new BrowserPluginManager()); | 
| 698 AddObserver(browser_plugin_manager_.get()); | 712 AddObserver(browser_plugin_manager_.get()); | 
| 699 | 713 | 
| 700 #if BUILDFLAG(ENABLE_WEBRTC) | 714 #if BUILDFLAG(ENABLE_WEBRTC) | 
| 701 peer_connection_tracker_.reset(new PeerConnectionTracker()); | 715 peer_connection_tracker_.reset(new PeerConnectionTracker()); | 
| 702 AddObserver(peer_connection_tracker_.get()); | 716 AddObserver(peer_connection_tracker_.get()); | 
| 703 | 717 | 
| 704 p2p_socket_dispatcher_ = new P2PSocketDispatcher(GetIOTaskRunner().get()); | 718 p2p_socket_dispatcher_ = new P2PSocketDispatcher(GetIOTaskRunner().get()); | 
| (...skipping 1407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2112 GetChannel()->GetRemoteAssociatedInterface(&render_frame_message_filter_); | 2126 GetChannel()->GetRemoteAssociatedInterface(&render_frame_message_filter_); | 
| 2113 return render_frame_message_filter_.get(); | 2127 return render_frame_message_filter_.get(); | 
| 2114 } | 2128 } | 
| 2115 | 2129 | 
| 2116 mojom::RenderMessageFilter* RenderThreadImpl::render_message_filter() { | 2130 mojom::RenderMessageFilter* RenderThreadImpl::render_message_filter() { | 
| 2117 if (!render_message_filter_) | 2131 if (!render_message_filter_) | 
| 2118 GetChannel()->GetRemoteAssociatedInterface(&render_message_filter_); | 2132 GetChannel()->GetRemoteAssociatedInterface(&render_message_filter_); | 
| 2119 return render_message_filter_.get(); | 2133 return render_message_filter_.get(); | 
| 2120 } | 2134 } | 
| 2121 | 2135 | 
| 2136 const scoped_refptr<mojom::ThreadSafeRenderMessageFilterAssociatedPtr>& | |
| 2137 RenderThreadImpl::thread_safe_render_message_filter() { | |
| 2138 return thread_safe_render_message_filter_; | |
| 2139 } | |
| 2140 | |
| 2122 gpu::GpuChannelHost* RenderThreadImpl::GetGpuChannel() { | 2141 gpu::GpuChannelHost* RenderThreadImpl::GetGpuChannel() { | 
| 2123 if (!gpu_channel_) | 2142 if (!gpu_channel_) | 
| 2124 return nullptr; | 2143 return nullptr; | 
| 2125 if (gpu_channel_->IsLost()) | 2144 if (gpu_channel_->IsLost()) | 
| 2126 return nullptr; | 2145 return nullptr; | 
| 2127 return gpu_channel_.get(); | 2146 return gpu_channel_.get(); | 
| 2128 } | 2147 } | 
| 2129 | 2148 | 
| 2130 void RenderThreadImpl::CreateView(mojom::CreateViewParamsPtr params) { | 2149 void RenderThreadImpl::CreateView(mojom::CreateViewParamsPtr params) { | 
| 2131 CompositorDependencies* compositor_deps = this; | 2150 CompositorDependencies* compositor_deps = this; | 
| (...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2489 } | 2508 } | 
| 2490 } | 2509 } | 
| 2491 | 2510 | 
| 2492 void RenderThreadImpl::OnRendererInterfaceRequest( | 2511 void RenderThreadImpl::OnRendererInterfaceRequest( | 
| 2493 mojom::RendererAssociatedRequest request) { | 2512 mojom::RendererAssociatedRequest request) { | 
| 2494 DCHECK(!renderer_binding_.is_bound()); | 2513 DCHECK(!renderer_binding_.is_bound()); | 
| 2495 renderer_binding_.Bind(std::move(request)); | 2514 renderer_binding_.Bind(std::move(request)); | 
| 2496 } | 2515 } | 
| 2497 | 2516 | 
| 2498 } // namespace content | 2517 } // namespace content | 
| OLD | NEW |