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

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

Issue 2522333002: Provide a Mojo equivalent of ThreadSafeSender. (Closed)
Patch Set: Addresses @tsepez comment 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
« no previous file with comments | « content/renderer/render_thread_impl.h ('k') | ipc/ipc_channel_proxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 450 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 576
576 // static 577 // static
577 mojom::RenderMessageFilter* RenderThreadImpl::current_render_message_filter() { 578 mojom::RenderMessageFilter* RenderThreadImpl::current_render_message_filter() {
578 if (g_render_message_filter_for_testing) 579 if (g_render_message_filter_for_testing)
579 return g_render_message_filter_for_testing; 580 return g_render_message_filter_for_testing;
580 DCHECK(current()); 581 DCHECK(current());
581 return current()->render_message_filter(); 582 return current()->render_message_filter();
582 } 583 }
583 584
584 // static 585 // static
586 const scoped_refptr<mojom::ThreadSafeRenderMessageFilterAssociatedPtr>&
587 RenderThreadImpl::current_thread_safe_render_message_filter() {
588 DCHECK(current());
589 return current()->thread_safe_render_message_filter();
590 }
591
592 // static
585 void RenderThreadImpl::SetRenderMessageFilterForTesting( 593 void RenderThreadImpl::SetRenderMessageFilterForTesting(
586 mojom::RenderMessageFilter* render_message_filter) { 594 mojom::RenderMessageFilter* render_message_filter) {
587 g_render_message_filter_for_testing = render_message_filter; 595 g_render_message_filter_for_testing = render_message_filter;
588 } 596 }
589 597
590 // In single-process mode used for debugging, we don't pass a renderer client 598 // In single-process mode used for debugging, we don't pass a renderer client
591 // ID via command line because RenderThreadImpl lives in the same process as 599 // ID via command line because RenderThreadImpl lives in the same process as
592 // the browser 600 // the browser
593 RenderThreadImpl::RenderThreadImpl( 601 RenderThreadImpl::RenderThreadImpl(
594 const InProcessChildThreadParams& params, 602 const InProcessChildThreadParams& params,
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 kMaxResourceRequestsPerFlushWhenThrottled)); 689 kMaxResourceRequestsPerFlushWhenThrottled));
682 resource_dispatcher()->set_message_sender(resource_dispatch_throttler_.get()); 690 resource_dispatcher()->set_message_sender(resource_dispatch_throttler_.get());
683 691
684 media_stream_center_ = nullptr; 692 media_stream_center_ = nullptr;
685 693
686 blob_message_filter_ = new BlobMessageFilter(GetFileThreadTaskRunner()); 694 blob_message_filter_ = new BlobMessageFilter(GetFileThreadTaskRunner());
687 AddFilter(blob_message_filter_.get()); 695 AddFilter(blob_message_filter_.get());
688 db_message_filter_ = new DBMessageFilter(); 696 db_message_filter_ = new DBMessageFilter();
689 AddFilter(db_message_filter_.get()); 697 AddFilter(db_message_filter_.get());
690 698
699 thread_safe_associated_interface_ptr_provider_ =
700 base::MakeUnique<ThreadSafeAssociatedInterfacePtrProvider>(channel());
701 thread_safe_render_message_filter_ =
702 thread_safe_associated_interface_ptr_provider_
703 ->CreateInterfacePtr<mojom::RenderMessageFilter>();
704
691 vc_manager_.reset(new VideoCaptureImplManager()); 705 vc_manager_.reset(new VideoCaptureImplManager());
692 706
693 browser_plugin_manager_.reset(new BrowserPluginManager()); 707 browser_plugin_manager_.reset(new BrowserPluginManager());
694 AddObserver(browser_plugin_manager_.get()); 708 AddObserver(browser_plugin_manager_.get());
695 709
696 #if BUILDFLAG(ENABLE_WEBRTC) 710 #if BUILDFLAG(ENABLE_WEBRTC)
697 peer_connection_tracker_.reset(new PeerConnectionTracker()); 711 peer_connection_tracker_.reset(new PeerConnectionTracker());
698 AddObserver(peer_connection_tracker_.get()); 712 AddObserver(peer_connection_tracker_.get());
699 713
700 p2p_socket_dispatcher_ = new P2PSocketDispatcher(GetIOTaskRunner().get()); 714 p2p_socket_dispatcher_ = new P2PSocketDispatcher(GetIOTaskRunner().get());
(...skipping 1407 matching lines...) Expand 10 before | Expand all | Expand 10 after
2108 GetChannel()->GetRemoteAssociatedInterface(&render_frame_message_filter_); 2122 GetChannel()->GetRemoteAssociatedInterface(&render_frame_message_filter_);
2109 return render_frame_message_filter_.get(); 2123 return render_frame_message_filter_.get();
2110 } 2124 }
2111 2125
2112 mojom::RenderMessageFilter* RenderThreadImpl::render_message_filter() { 2126 mojom::RenderMessageFilter* RenderThreadImpl::render_message_filter() {
2113 if (!render_message_filter_) 2127 if (!render_message_filter_)
2114 GetChannel()->GetRemoteAssociatedInterface(&render_message_filter_); 2128 GetChannel()->GetRemoteAssociatedInterface(&render_message_filter_);
2115 return render_message_filter_.get(); 2129 return render_message_filter_.get();
2116 } 2130 }
2117 2131
2132 const scoped_refptr<mojom::ThreadSafeRenderMessageFilterAssociatedPtr>&
2133 RenderThreadImpl::thread_safe_render_message_filter() {
2134 return thread_safe_render_message_filter_;
2135 }
2136
2118 gpu::GpuChannelHost* RenderThreadImpl::GetGpuChannel() { 2137 gpu::GpuChannelHost* RenderThreadImpl::GetGpuChannel() {
2119 if (!gpu_channel_) 2138 if (!gpu_channel_)
2120 return nullptr; 2139 return nullptr;
2121 if (gpu_channel_->IsLost()) 2140 if (gpu_channel_->IsLost())
2122 return nullptr; 2141 return nullptr;
2123 return gpu_channel_.get(); 2142 return gpu_channel_.get();
2124 } 2143 }
2125 2144
2126 void RenderThreadImpl::CreateView(mojom::CreateViewParamsPtr params) { 2145 void RenderThreadImpl::CreateView(mojom::CreateViewParamsPtr params) {
2127 CompositorDependencies* compositor_deps = this; 2146 CompositorDependencies* compositor_deps = this;
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
2485 } 2504 }
2486 } 2505 }
2487 2506
2488 void RenderThreadImpl::OnRendererInterfaceRequest( 2507 void RenderThreadImpl::OnRendererInterfaceRequest(
2489 mojom::RendererAssociatedRequest request) { 2508 mojom::RendererAssociatedRequest request) {
2490 DCHECK(!renderer_binding_.is_bound()); 2509 DCHECK(!renderer_binding_.is_bound());
2491 renderer_binding_.Bind(std::move(request)); 2510 renderer_binding_.Bind(std::move(request));
2492 } 2511 }
2493 2512
2494 } // namespace content 2513 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_thread_impl.h ('k') | ipc/ipc_channel_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698