summaryrefslogtreecommitdiffstats
path: root/chrome/browser/task_manager
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-20 22:14:40 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-20 22:14:40 +0000
commit4967f792930a150b81d2cd3ca31d101cecde24e8 (patch)
treeb64930d118529431fdc4530d277a3cac03114efc /chrome/browser/task_manager
parentf0e342256f44ff6228a7bcd8fb2e221facb6368c (diff)
downloadchromium_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.cc10
-rw-r--r--chrome/browser/task_manager/task_manager_worker_resource_provider.cc13
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()));
}
}