Chromium Code Reviews| Index: content/browser/renderer_host/render_process_host_impl.cc |
| diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc |
| index 9919ef63993362ed241ab62a7e52e012066e566d..1c73a18ba26f263d6da8f918bd399219a0652a98 100644 |
| --- a/content/browser/renderer_host/render_process_host_impl.cc |
| +++ b/content/browser/renderer_host/render_process_host_impl.cc |
| @@ -78,6 +78,7 @@ |
| #include "content/browser/indexed_db/indexed_db_dispatcher_host.h" |
| #include "content/browser/loader/resource_message_filter.h" |
| #include "content/browser/loader/resource_scheduler_filter.h" |
| +#include "content/browser/loader/url_loader_factory_impl.h" |
| #include "content/browser/media/capture/audio_mirroring_manager.h" |
| #include "content/browser/media/capture/image_capture_impl.h" |
| #include "content/browser/media/media_internals.h" |
| @@ -712,6 +713,7 @@ void RenderProcessHostImpl::RegisterRendererMainThreadFactory( |
| } |
| RenderProcessHostImpl::~RenderProcessHostImpl() { |
| + DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| #ifndef NDEBUG |
| DCHECK(is_self_deleted_) |
| << "RenderProcessHostImpl is destroyed by something other than itself"; |
| @@ -957,15 +959,15 @@ void RenderProcessHostImpl::CreateMessageFilters() { |
| scoped_refptr<ChromeBlobStorageContext> blob_storage_context = |
| ChromeBlobStorageContext::GetFor(browser_context); |
| - ResourceMessageFilter* resource_message_filter = new ResourceMessageFilter( |
| + resource_message_filter_ = new ResourceMessageFilter( |
| GetID(), PROCESS_TYPE_RENDERER, |
| - storage_partition_impl_->GetAppCacheService(), |
| - blob_storage_context.get(), |
| + storage_partition_impl_->GetAppCacheService(), blob_storage_context.get(), |
| storage_partition_impl_->GetFileSystemContext(), |
| storage_partition_impl_->GetServiceWorkerContext(), |
| get_contexts_callback); |
| - AddFilter(resource_message_filter); |
| + AddFilter(resource_message_filter_.get()); |
| + |
| MediaStreamManager* media_stream_manager = |
| BrowserMainLoop::GetInstance()->media_stream_manager(); |
| // The AudioInputRendererHost and AudioRendererHost needs to be available for |
| @@ -1167,6 +1169,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() { |
| registry->AddInterface(base::Bind(&DeviceMotionHost::Create)); |
| registry->AddInterface(base::Bind(&DeviceOrientationHost::Create)); |
| registry->AddInterface(base::Bind(&DeviceOrientationAbsoluteHost::Create)); |
| + registry->AddInterface( |
| + base::Bind(&URLLoaderFactoryImpl::Create, resource_message_filter_)); |
|
kinuko
2016/08/09 15:44:28
Cool :)
|
| GetContentClient()->browser()->ExposeInterfacesToRenderer(registry.get(), |
| this); |
| @@ -1917,6 +1921,7 @@ bool RenderProcessHostImpl::IgnoreInputEvents() const { |
| } |
| void RenderProcessHostImpl::Cleanup() { |
| + DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| // Keep the one renderer thread around forever in single process mode. |
| if (run_renderer_in_process()) |
| return; |