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

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

Issue 8480007: Change EXTENSION_PROCESS_CREATED observers to use EXTENSION_HOST_CREATED. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 1 month 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 47edeb79ba5e168de82525b480aa7579c6ab76ce..fb2f2ed830dc778030acb99bfeee1f3f6ff27dae 100644
--- a/chrome/browser/task_manager/task_manager_resource_providers.cc
+++ b/chrome/browser/task_manager/task_manager_resource_providers.cc
@@ -1161,33 +1161,31 @@ void TaskManagerExtensionProcessResourceProvider::StartUpdating() {
DCHECK(!updating_);
updating_ = true;
- // Add all the existing ExtensionHosts.
+ // Add all the existing ExtensionHosts from all Profiles, including those from
+ // incognito split mode.
ProfileManager* profile_manager = g_browser_process->profile_manager();
std::vector<Profile*> profiles(profile_manager->GetLoadedProfiles());
+ size_t num_default_profiles = profiles.size();
+ for (size_t i = 0; i < num_default_profiles; ++i) {
+ if (profiles[i]->HasOffTheRecordProfile()) {
+ profiles.push_back(profiles[i]->GetOffTheRecordProfile());
+ }
+ }
for (size_t i = 0; i < profiles.size(); ++i) {
ExtensionProcessManager* process_manager =
profiles[i]->GetExtensionProcessManager();
if (process_manager) {
ExtensionProcessManager::const_iterator jt;
- for (jt = process_manager->begin(); jt != process_manager->end(); ++jt)
- AddToTaskManager(*jt);
- }
-
- // If we have an incognito profile active, include the split-mode incognito
- // extensions.
- if (BrowserList::IsOffTheRecordSessionActiveForProfile(profiles[i])) {
- ExtensionProcessManager* process_manager =
- profiles[i]->GetOffTheRecordProfile()->GetExtensionProcessManager();
- if (process_manager) {
- ExtensionProcessManager::const_iterator jt;
- for (jt = process_manager->begin(); jt != process_manager->end(); ++jt)
- AddToTaskManager(*jt);
+ for (jt = process_manager->begin(); jt != process_manager->end(); ++jt) {
+ // Don't add dead extension processes.
+ if ((*jt)->IsRenderViewLive())
+ AddToTaskManager(*jt);
}
}
}
// Register for notifications about extension process changes.
- registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_PROCESS_CREATED,
+ registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_HOST_CREATED,
content::NotificationService::AllBrowserContextsAndSources());
registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_PROCESS_TERMINATED,
content::NotificationService::AllBrowserContextsAndSources());
@@ -1201,7 +1199,7 @@ void TaskManagerExtensionProcessResourceProvider::StopUpdating() {
// Unregister for notifications about extension process changes.
registrar_.Remove(
- this, chrome::NOTIFICATION_EXTENSION_PROCESS_CREATED,
+ this, chrome::NOTIFICATION_EXTENSION_HOST_CREATED,
content::NotificationService::AllBrowserContextsAndSources());
registrar_.Remove(
this, chrome::NOTIFICATION_EXTENSION_PROCESS_TERMINATED,
@@ -1222,7 +1220,7 @@ void TaskManagerExtensionProcessResourceProvider::Observe(
const content::NotificationSource& source,
const content::NotificationDetails& details) {
switch (type) {
- case chrome::NOTIFICATION_EXTENSION_PROCESS_CREATED:
+ case chrome::NOTIFICATION_EXTENSION_HOST_CREATED:
AddToTaskManager(content::Details<ExtensionHost>(details).ptr());
break;
case chrome::NOTIFICATION_EXTENSION_PROCESS_TERMINATED:
@@ -1237,10 +1235,6 @@ void TaskManagerExtensionProcessResourceProvider::Observe(
void TaskManagerExtensionProcessResourceProvider::AddToTaskManager(
ExtensionHost* extension_host) {
- // Don't add dead extension processes.
- if (!extension_host->IsRenderViewLive())
- return;
-
TaskManagerExtensionProcessResource* resource =
new TaskManagerExtensionProcessResource(extension_host);
DCHECK(resources_.find(extension_host) == resources_.end());
« no previous file with comments | « chrome/browser/extensions/extension_process_manager.cc ('k') | chrome/browser/ui/webui/options/extension_settings_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698