diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-20 22:14:40 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-20 22:14:40 +0000 |
commit | 4967f792930a150b81d2cd3ca31d101cecde24e8 (patch) | |
tree | b64930d118529431fdc4530d277a3cac03114efc /chrome/browser/task_manager | |
parent | f0e342256f44ff6228a7bcd8fb2e221facb6368c (diff) | |
download | chromium_src-4967f792930a150b81d2cd3ca31d101cecde24e8.zip chromium_src-4967f792930a150b81d2cd3ca31d101cecde24e8.tar.gz chromium_src-4967f792930a150b81d2cd3ca31d101cecde24e8.tar.bz2 |
Add a Content API around BrowserChildProcessHost, similar to what was done with ChildProcessHost. Now classes like PluginProcessHost don't derive from it, but instead use composition.
I've also moved the iterator class into its own file in the public directory. Since classes don't derive from BrowserChildProcessHost and so can't static_cast from it, I added a template helper that does this.
BUG=98716
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=118415
Review URL: https://chromiumcodereview.appspot.com/9150017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118516 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/task_manager')
-rw-r--r-- | chrome/browser/task_manager/task_manager_resource_providers.cc | 10 | ||||
-rw-r--r-- | chrome/browser/task_manager/task_manager_worker_resource_provider.cc | 13 |
2 files changed, 11 insertions, 12 deletions
diff --git a/chrome/browser/task_manager/task_manager_resource_providers.cc b/chrome/browser/task_manager/task_manager_resource_providers.cc index 383c7ef..19cf9e8 100644 --- a/chrome/browser/task_manager/task_manager_resource_providers.cc +++ b/chrome/browser/task_manager/task_manager_resource_providers.cc @@ -41,9 +41,10 @@ #include "chrome/common/extensions/extension.h" #include "chrome/common/render_messages.h" #include "chrome/common/url_constants.h" -#include "content/browser/browser_child_process_host.h" #include "content/browser/renderer_host/render_view_host.h" +#include "content/public/browser/browser_child_process_host_iterator.h" #include "content/public/browser/browser_thread.h" +#include "content/public/browser/child_process_data.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/web_contents.h" @@ -64,6 +65,7 @@ #include "ui/gfx/icon_util.h" #endif // defined(OS_WIN) +using content::BrowserChildProcessHostIterator; using content::BrowserThread; using content::WebContents; @@ -1068,11 +1070,11 @@ void TaskManagerChildProcessResourceProvider::AddToTaskManager( // The ChildProcessData::Iterator has to be used from the IO thread. void TaskManagerChildProcessResourceProvider::RetrieveChildProcessData() { std::vector<content::ChildProcessData> child_processes; - for (BrowserChildProcessHost::Iterator iter; !iter.Done(); ++iter) { + for (BrowserChildProcessHostIterator iter; !iter.Done(); ++iter) { // Only add processes which are already started, since we need their handle. - if ((*iter)->data().handle == base::kNullProcessHandle) + if (iter.GetData().handle == base::kNullProcessHandle) continue; - child_processes.push_back((*iter)->data()); + child_processes.push_back(iter.GetData()); } // Now notify the UI thread that we have retrieved information about child // processes. diff --git a/chrome/browser/task_manager/task_manager_worker_resource_provider.cc b/chrome/browser/task_manager/task_manager_worker_resource_provider.cc index a3fccb6..5712732 100644 --- a/chrome/browser/task_manager/task_manager_worker_resource_provider.cc +++ b/chrome/browser/task_manager/task_manager_worker_resource_provider.cc @@ -11,7 +11,6 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/debugger/devtools_window.h" #include "chrome/browser/profiles/profile_manager.h" -#include "content/browser/browser_child_process_host.h" #include "content/browser/worker_host/worker_process_host.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/child_process_data.h" @@ -218,7 +217,7 @@ void TaskManagerWorkerResourceProvider::WorkerCreated( WorkerProcessHost* process, const WorkerProcessHost::WorkerInstance& instance) { TaskManagerSharedWorkerResource* resource = - new TaskManagerSharedWorkerResource(process->data(), + new TaskManagerSharedWorkerResource(process->GetData(), instance.worker_route_id(), instance.url(), instance.name()); BrowserThread::PostTask( @@ -233,7 +232,7 @@ void TaskManagerWorkerResourceProvider::WorkerDestroyed( BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, base::Bind( &TaskManagerWorkerResourceProvider::NotifyWorkerDestroyed, - this, process->data().id, worker_route_id)); + this, process->GetData().id, worker_route_id)); } void TaskManagerWorkerResourceProvider::Observe( @@ -304,14 +303,12 @@ void TaskManagerWorkerResourceProvider::StartObservingWorkers() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); scoped_ptr<WorkerResourceListHolder> holder(new WorkerResourceListHolder); - BrowserChildProcessHost::Iterator iter(content::PROCESS_TYPE_WORKER); - for (; !iter.Done(); ++iter) { - WorkerProcessHost* worker = static_cast<WorkerProcessHost*>(*iter); - const WorkerProcessHost::Instances& instances = worker->instances(); + for (WorkerProcessHostIterator iter; !iter.Done(); ++iter) { + const WorkerProcessHost::Instances& instances = (*iter)->instances(); for (WorkerProcessHost::Instances::const_iterator i = instances.begin(); i != instances.end(); ++i) { holder->resources()->push_back(new TaskManagerSharedWorkerResource( - (*iter)->data(), i->worker_route_id(), i->url(), i->name())); + iter.GetData(), i->worker_route_id(), i->url(), i->name())); } } |