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

Side by Side Diff: chrome/browser/task_manager/task_manager_worker_resource_provider.cc

Issue 9150017: Add a Content API around BrowserChildProcessHost, similar to what was done with ChildProcessHost.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix?! 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/task_manager/task_manager_worker_resource_provider.h" 5 #include "chrome/browser/task_manager/task_manager_worker_resource_provider.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
11 #include "chrome/browser/browser_process.h" 11 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/debugger/devtools_window.h" 12 #include "chrome/browser/debugger/devtools_window.h"
13 #include "chrome/browser/profiles/profile_manager.h" 13 #include "chrome/browser/profiles/profile_manager.h"
14 #include "content/browser/browser_child_process_host.h"
15 #include "content/browser/worker_host/worker_process_host.h" 14 #include "content/browser/worker_host/worker_process_host.h"
16 #include "content/public/browser/browser_thread.h" 15 #include "content/public/browser/browser_thread.h"
17 #include "content/public/browser/child_process_data.h" 16 #include "content/public/browser/child_process_data.h"
18 #include "content/public/browser/devtools_agent_host_registry.h" 17 #include "content/public/browser/devtools_agent_host_registry.h"
19 #include "content/public/browser/notification_service.h" 18 #include "content/public/browser/notification_service.h"
20 #include "content/public/browser/notification_types.h" 19 #include "content/public/browser/notification_types.h"
21 #include "content/public/browser/worker_service.h" 20 #include "content/public/browser/worker_service.h"
22 #include "grit/generated_resources.h" 21 #include "grit/generated_resources.h"
23 #include "grit/theme_resources_standard.h" 22 #include "grit/theme_resources_standard.h"
24 #include "third_party/skia/include/core/SkBitmap.h" 23 #include "third_party/skia/include/core/SkBitmap.h"
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 BrowserThread::PostTask( 210 BrowserThread::PostTask(
212 BrowserThread::IO, FROM_HERE, base::Bind( 211 BrowserThread::IO, FROM_HERE, base::Bind(
213 &TaskManagerWorkerResourceProvider::StopObservingWorkers, 212 &TaskManagerWorkerResourceProvider::StopObservingWorkers,
214 this)); 213 this));
215 } 214 }
216 215
217 void TaskManagerWorkerResourceProvider::WorkerCreated( 216 void TaskManagerWorkerResourceProvider::WorkerCreated(
218 WorkerProcessHost* process, 217 WorkerProcessHost* process,
219 const WorkerProcessHost::WorkerInstance& instance) { 218 const WorkerProcessHost::WorkerInstance& instance) {
220 TaskManagerSharedWorkerResource* resource = 219 TaskManagerSharedWorkerResource* resource =
221 new TaskManagerSharedWorkerResource(process->data(), 220 new TaskManagerSharedWorkerResource(process->GetData(),
222 instance.worker_route_id(), 221 instance.worker_route_id(),
223 instance.url(), instance.name()); 222 instance.url(), instance.name());
224 BrowserThread::PostTask( 223 BrowserThread::PostTask(
225 BrowserThread::UI, FROM_HERE, 224 BrowserThread::UI, FROM_HERE,
226 base::Bind(&TaskManagerWorkerResourceProvider::NotifyWorkerCreated, 225 base::Bind(&TaskManagerWorkerResourceProvider::NotifyWorkerCreated,
227 this, base::Owned(new WorkerResourceHolder(resource)))); 226 this, base::Owned(new WorkerResourceHolder(resource))));
228 } 227 }
229 228
230 void TaskManagerWorkerResourceProvider::WorkerDestroyed( 229 void TaskManagerWorkerResourceProvider::WorkerDestroyed(
231 WorkerProcessHost* process, 230 WorkerProcessHost* process,
232 int worker_route_id) { 231 int worker_route_id) {
233 BrowserThread::PostTask( 232 BrowserThread::PostTask(
234 BrowserThread::UI, FROM_HERE, base::Bind( 233 BrowserThread::UI, FROM_HERE, base::Bind(
235 &TaskManagerWorkerResourceProvider::NotifyWorkerDestroyed, 234 &TaskManagerWorkerResourceProvider::NotifyWorkerDestroyed,
236 this, process->data().id, worker_route_id)); 235 this, process->GetData().id, worker_route_id));
237 } 236 }
238 237
239 void TaskManagerWorkerResourceProvider::Observe( 238 void TaskManagerWorkerResourceProvider::Observe(
240 int type, 239 int type,
241 const content::NotificationSource& source, 240 const content::NotificationSource& source,
242 const content::NotificationDetails& details) { 241 const content::NotificationDetails& details) {
243 content::ChildProcessData* process_data = 242 content::ChildProcessData* process_data =
244 content::Details<content::ChildProcessData>(details).ptr(); 243 content::Details<content::ChildProcessData>(details).ptr();
245 if (process_data->type != content::PROCESS_TYPE_WORKER) 244 if (process_data->type != content::PROCESS_TYPE_WORKER)
246 return; 245 return;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 resources_.erase(it); 296 resources_.erase(it);
298 return; 297 return;
299 } 298 }
300 } 299 }
301 } 300 }
302 301
303 void TaskManagerWorkerResourceProvider::StartObservingWorkers() { 302 void TaskManagerWorkerResourceProvider::StartObservingWorkers() {
304 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 303 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
305 304
306 scoped_ptr<WorkerResourceListHolder> holder(new WorkerResourceListHolder); 305 scoped_ptr<WorkerResourceListHolder> holder(new WorkerResourceListHolder);
307 BrowserChildProcessHost::Iterator iter(content::PROCESS_TYPE_WORKER); 306 for (WorkerProcessHostIterator iter; !iter.Done(); ++iter) {
308 for (; !iter.Done(); ++iter) { 307 const WorkerProcessHost::Instances& instances = (*iter)->instances();
309 WorkerProcessHost* worker = static_cast<WorkerProcessHost*>(*iter);
310 const WorkerProcessHost::Instances& instances = worker->instances();
311 for (WorkerProcessHost::Instances::const_iterator i = instances.begin(); 308 for (WorkerProcessHost::Instances::const_iterator i = instances.begin();
312 i != instances.end(); ++i) { 309 i != instances.end(); ++i) {
313 holder->resources()->push_back(new TaskManagerSharedWorkerResource( 310 holder->resources()->push_back(new TaskManagerSharedWorkerResource(
314 (*iter)->data(), i->worker_route_id(), i->url(), i->name())); 311 iter.GetData(), i->worker_route_id(), i->url(), i->name()));
315 } 312 }
316 } 313 }
317 314
318 BrowserThread::PostTask( 315 BrowserThread::PostTask(
319 BrowserThread::UI, FROM_HERE, 316 BrowserThread::UI, FROM_HERE,
320 base::Bind( 317 base::Bind(
321 &TaskManagerWorkerResourceProvider::AddWorkerResourceList, 318 &TaskManagerWorkerResourceProvider::AddWorkerResourceList,
322 this, base::Owned(holder.release()))); 319 this, base::Owned(holder.release())));
323 320
324 WorkerService::GetInstance()->AddObserver(this); 321 WorkerService::GetInstance()->AddObserver(this);
(...skipping 24 matching lines...) Expand all
349 int process_id = resource->process_data().id; 346 int process_id = resource->process_data().id;
350 launching_workers_[process_id].push_back(resource); 347 launching_workers_[process_id].push_back(resource);
351 } else { 348 } else {
352 task_manager_->AddResource(resource); 349 task_manager_->AddResource(resource);
353 } 350 }
354 } 351 }
355 352
356 void TaskManagerWorkerResourceProvider::DeleteAllResources() { 353 void TaskManagerWorkerResourceProvider::DeleteAllResources() {
357 STLDeleteElements(&resources_); 354 STLDeleteElements(&resources_);
358 } 355 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698