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

Unified Diff: chrome/browser/task_manager/task_manager_resource_providers.cc

Issue 10119003: Pull shell window stuff out of ExtensionHost and put in ShellWindow (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Comments Created 8 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/task_manager/task_manager_resource_providers.cc
diff --git a/chrome/browser/task_manager/task_manager_resource_providers.cc b/chrome/browser/task_manager/task_manager_resource_providers.cc
index 327ea9a265b8c75771baac224f8a3b9b0e90cf7c..b252812887f1e054721a385f7c2b8722e8b5b906 100644
--- a/chrome/browser/task_manager/task_manager_resource_providers.cc
+++ b/chrome/browser/task_manager/task_manager_resource_providers.cc
@@ -1259,28 +1259,17 @@ void TaskManagerExtensionProcessResourceProvider::StartUpdating() {
if (!rvh->IsRenderViewLive())
continue;
- // Don't add WebContents (those are handled by
- // TaskManagerTabContentsResourceProvider) or background contents
- // (handled by TaskManagerBackgroundResourceProvider).
- // TODO(benwells): create specific chrome::VIEW_TYPE_TAB_CONTENTS for
- // tab contents, as VIEW_TYPE_WEB_CONTENTS is the default.
- content::ViewType view_type = rvh->GetDelegate()->GetRenderViewType();
- if (view_type == content::VIEW_TYPE_WEB_CONTENTS ||
- view_type == chrome::VIEW_TYPE_BACKGROUND_CONTENTS) {
- continue;
- }
-
AddToTaskManager(rvh);
}
}
}
// Register for notifications about extension process changes.
- registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_HOST_CREATED,
+ registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_VIEW_REGISTERED,
content::NotificationService::AllBrowserContextsAndSources());
registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_PROCESS_TERMINATED,
content::NotificationService::AllBrowserContextsAndSources());
- registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED,
+ registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_VIEW_UNREGISTERED,
content::NotificationService::AllBrowserContextsAndSources());
}
@@ -1290,13 +1279,13 @@ void TaskManagerExtensionProcessResourceProvider::StopUpdating() {
// Unregister for notifications about extension process changes.
registrar_.Remove(
- this, chrome::NOTIFICATION_EXTENSION_HOST_CREATED,
+ this, chrome::NOTIFICATION_EXTENSION_VIEW_REGISTERED,
content::NotificationService::AllBrowserContextsAndSources());
registrar_.Remove(
this, chrome::NOTIFICATION_EXTENSION_PROCESS_TERMINATED,
content::NotificationService::AllBrowserContextsAndSources());
registrar_.Remove(
- this, chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED,
+ this, chrome::NOTIFICATION_EXTENSION_VIEW_UNREGISTERED,
content::NotificationService::AllBrowserContextsAndSources());
// Delete all the resources.
@@ -1311,23 +1300,42 @@ void TaskManagerExtensionProcessResourceProvider::Observe(
const content::NotificationSource& source,
const content::NotificationDetails& details) {
switch (type) {
- case chrome::NOTIFICATION_EXTENSION_HOST_CREATED:
+ case chrome::NOTIFICATION_EXTENSION_VIEW_REGISTERED:
AddToTaskManager(
- content::Details<ExtensionHost>(details).ptr()->render_view_host());
+ content::Details<content::RenderViewHost>(details).ptr());
break;
case chrome::NOTIFICATION_EXTENSION_PROCESS_TERMINATED:
- case chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED:
RemoveFromTaskManager(
content::Details<ExtensionHost>(details).ptr()->render_view_host());
break;
+ case chrome::NOTIFICATION_EXTENSION_VIEW_UNREGISTERED:
+ RemoveFromTaskManager(
+ content::Details<content::RenderViewHost>(details).ptr());
+ break;
default:
NOTREACHED() << "Unexpected notification.";
return;
}
}
+bool TaskManagerExtensionProcessResourceProvider::
+ IsHandledByThisProvider(content::RenderViewHost* render_view_host) {
+ // Don't add WebContents (those are handled by
+ // TaskManagerTabContentsResourceProvider) or background contents (handled
+ // by TaskManagerBackgroundResourceProvider).
+ // TODO(benwells): create specific chrome::VIEW_TYPE_TAB_CONTENTS for
+ // tab contents, as VIEW_TYPE_WEB_CONTENTS is the default.
+ content::ViewType view_type =
+ render_view_host->GetDelegate()->GetRenderViewType();
+ return (view_type != content::VIEW_TYPE_WEB_CONTENTS &&
+ view_type != chrome::VIEW_TYPE_BACKGROUND_CONTENTS);
+}
+
void TaskManagerExtensionProcessResourceProvider::AddToTaskManager(
content::RenderViewHost* render_view_host) {
+ if (!IsHandledByThisProvider(render_view_host))
+ return;
+
TaskManagerExtensionProcessResource* resource =
new TaskManagerExtensionProcessResource(render_view_host);
DCHECK(resources_.find(render_view_host) == resources_.end());

Powered by Google App Engine
This is Rietveld 408576698