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

Side by Side Diff: content/browser/worker_host/worker_process_host.cc

Issue 9150016: Move creation and ownership of ResourceDispatcherHost and PluginService to content. This gives a ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix chromeos ui_tests Created 8 years, 11 months 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 | Annotate | Revision Log
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/browser/worker_host/worker_process_host.h" 5 #include "content/browser/worker_host/worker_process_host.h"
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/base_switches.h" 10 #include "base/base_switches.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 78
79 // Notifies RenderViewHost that one or more worker objects crashed. 79 // Notifies RenderViewHost that one or more worker objects crashed.
80 void WorkerCrashCallback(int render_process_unique_id, int render_view_id) { 80 void WorkerCrashCallback(int render_process_unique_id, int render_view_id) {
81 RenderViewHost* host = 81 RenderViewHost* host =
82 RenderViewHost::FromID(render_process_unique_id, render_view_id); 82 RenderViewHost::FromID(render_process_unique_id, render_view_id);
83 if (host) 83 if (host)
84 host->delegate()->WorkerCrashed(); 84 host->delegate()->WorkerCrashed();
85 } 85 }
86 86
87 WorkerProcessHost::WorkerProcessHost( 87 WorkerProcessHost::WorkerProcessHost(
88 const content::ResourceContext* resource_context, 88 const content::ResourceContext* resource_context)
89 ResourceDispatcherHost* resource_dispatcher_host)
90 : BrowserChildProcessHost(content::PROCESS_TYPE_WORKER), 89 : BrowserChildProcessHost(content::PROCESS_TYPE_WORKER),
91 resource_context_(resource_context), 90 resource_context_(resource_context) {
92 resource_dispatcher_host_(resource_dispatcher_host) {
93 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 91 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
94 DCHECK(resource_context); 92 DCHECK(resource_context);
95 } 93 }
96 94
97 WorkerProcessHost::~WorkerProcessHost() { 95 WorkerProcessHost::~WorkerProcessHost() {
98 // If we crashed, tell the RenderViewHosts. 96 // If we crashed, tell the RenderViewHosts.
99 for (Instances::iterator i = instances_.begin(); i != instances_.end(); ++i) { 97 for (Instances::iterator i = instances_.begin(); i != instances_.end(); ++i) {
100 const WorkerDocumentSet::DocumentInfoSet& parents = 98 const WorkerDocumentSet::DocumentInfoSet& parents =
101 i->worker_document_set()->documents(); 99 i->worker_document_set()->documents();
102 for (WorkerDocumentSet::DocumentInfoSet::const_iterator parent_iter = 100 for (WorkerDocumentSet::DocumentInfoSet::const_iterator parent_iter =
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 return true; 230 return true;
233 } 231 }
234 232
235 void WorkerProcessHost::CreateMessageFilters(int render_process_id) { 233 void WorkerProcessHost::CreateMessageFilters(int render_process_id) {
236 DCHECK(resource_context_); 234 DCHECK(resource_context_);
237 net::URLRequestContext* request_context = 235 net::URLRequestContext* request_context =
238 resource_context_->request_context(); 236 resource_context_->request_context();
239 237
240 ResourceMessageFilter* resource_message_filter = new ResourceMessageFilter( 238 ResourceMessageFilter* resource_message_filter = new ResourceMessageFilter(
241 id(), content::PROCESS_TYPE_WORKER, resource_context_, 239 id(), content::PROCESS_TYPE_WORKER, resource_context_,
242 new URLRequestContextSelector(request_context), 240 new URLRequestContextSelector(request_context));
243 resource_dispatcher_host_);
244 child_process_host()->AddFilter(resource_message_filter); 241 child_process_host()->AddFilter(resource_message_filter);
245 242
246 worker_message_filter_ = new WorkerMessageFilter( 243 worker_message_filter_ = new WorkerMessageFilter(
247 render_process_id, resource_context_, resource_dispatcher_host_, 244 render_process_id, resource_context_,
248 base::Bind(&WorkerServiceImpl::next_worker_route_id, 245 base::Bind(&WorkerServiceImpl::next_worker_route_id,
249 base::Unretained(WorkerServiceImpl::GetInstance()))); 246 base::Unretained(WorkerServiceImpl::GetInstance())));
250 child_process_host()->AddFilter(worker_message_filter_); 247 child_process_host()->AddFilter(worker_message_filter_);
251 child_process_host()->AddFilter(new AppCacheDispatcherHost( 248 child_process_host()->AddFilter(new AppCacheDispatcherHost(
252 resource_context_->appcache_service(), id())); 249 resource_context_->appcache_service(), id()));
253 child_process_host()->AddFilter(new FileSystemDispatcherHost( 250 child_process_host()->AddFilter(new FileSystemDispatcherHost(
254 request_context, resource_context_->file_system_context())); 251 request_context, resource_context_->file_system_context()));
255 child_process_host()->AddFilter(new FileUtilitiesMessageFilter(id())); 252 child_process_host()->AddFilter(new FileUtilitiesMessageFilter(id()));
256 child_process_host()->AddFilter(new BlobMessageFilter( 253 child_process_host()->AddFilter(new BlobMessageFilter(
257 id(), resource_context_->blob_storage_context())); 254 id(), resource_context_->blob_storage_context()));
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 } 627 }
631 } 628 }
632 return false; 629 return false;
633 } 630 }
634 631
635 WorkerProcessHost::WorkerInstance::FilterInfo 632 WorkerProcessHost::WorkerInstance::FilterInfo
636 WorkerProcessHost::WorkerInstance::GetFilter() const { 633 WorkerProcessHost::WorkerInstance::GetFilter() const {
637 DCHECK(NumFilters() == 1); 634 DCHECK(NumFilters() == 1);
638 return *filters_.begin(); 635 return *filters_.begin();
639 } 636 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698