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

Side by Side Diff: content/renderer/render_thread_impl.cc

Issue 2522333002: Provide a Mojo equivalent of ThreadSafeSender. (Closed)
Patch Set: Clean-up Created 4 years 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 (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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698