Chromium Code Reviews| Index: content/renderer/render_thread_impl.cc | 
| diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc | 
| index 5426e8aa67a192bfd5a4f6cd25242ab1ecd53418..b03269f9d5c7adc4d441f30a3666332d48443b3e 100644 | 
| --- a/content/renderer/render_thread_impl.cc | 
| +++ b/content/renderer/render_thread_impl.cc | 
| @@ -112,6 +112,7 @@ | 
| #include "content/renderer/media/render_media_client.h" | 
| #include "content/renderer/media/renderer_gpu_video_accelerator_factories.h" | 
| #include "content/renderer/media/video_capture_impl_manager.h" | 
| +#include "content/renderer/mojo/thread_safe_associated_interface_ptr_provider.h" | 
| #include "content/renderer/net_info_helper.h" | 
| #include "content/renderer/p2p/socket_dispatcher.h" | 
| #include "content/renderer/render_frame_proxy.h" | 
| @@ -586,6 +587,13 @@ mojom::RenderMessageFilter* RenderThreadImpl::current_render_message_filter() { | 
| } | 
| // static | 
| +const scoped_refptr<mojom::ThreadSafeRenderMessageFilterAssociatedPtr>& | 
| +RenderThreadImpl::current_thread_safe_render_message_filter() { | 
| + DCHECK(current()); | 
| + return current()->thread_safe_render_message_filter(); | 
| +} | 
| + | 
| +// static | 
| void RenderThreadImpl::SetRenderMessageFilterForTesting( | 
| mojom::RenderMessageFilter* render_message_filter) { | 
| g_render_message_filter_for_testing = render_message_filter; | 
| @@ -692,6 +700,12 @@ void RenderThreadImpl::Init( | 
| db_message_filter_ = new DBMessageFilter(); | 
| AddFilter(db_message_filter_.get()); | 
| + thread_safe_associated_interface_ptr_provider_ = | 
| + 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
 
 | 
| + thread_safe_render_message_filter_ = | 
| + thread_safe_associated_interface_ptr_provider_ | 
| + ->CreateInterfacePtr<mojom::RenderMessageFilter>(); | 
| + | 
| vc_manager_.reset(new VideoCaptureImplManager()); | 
| browser_plugin_manager_.reset(new BrowserPluginManager()); | 
| @@ -2119,6 +2133,11 @@ mojom::RenderMessageFilter* RenderThreadImpl::render_message_filter() { | 
| return render_message_filter_.get(); | 
| } | 
| +const scoped_refptr<mojom::ThreadSafeRenderMessageFilterAssociatedPtr>& | 
| +RenderThreadImpl::thread_safe_render_message_filter() { | 
| + return thread_safe_render_message_filter_; | 
| +} | 
| + | 
| gpu::GpuChannelHost* RenderThreadImpl::GetGpuChannel() { | 
| if (!gpu_channel_) | 
| return nullptr; |