summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authormirandac@google.com <mirandac@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-02 07:21:26 +0000
committermirandac@google.com <mirandac@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-02 07:21:26 +0000
commitc30a6040a16df040bce8008bd5b8b8f9c9f15068 (patch)
tree7c76006abf711b53c32e00daa680cf9eb6c46271 /chrome/browser
parentadf6aafe95f4689ffcb1bde3d94c994d2405d90f (diff)
downloadchromium_src-c30a6040a16df040bce8008bd5b8b8f9c9f15068.zip
chromium_src-c30a6040a16df040bce8008bd5b8b8f9c9f15068.tar.gz
chromium_src-c30a6040a16df040bce8008bd5b8b8f9c9f15068.tar.bz2
Add Profile data to the Task Manager on OS Mac.
BUG=94936 TEST=existing tests modified. "profile" column added to task manager, default hidden. Review URL: http://codereview.chromium.org/7828007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99334 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/task_manager/task_manager.cc10
-rw-r--r--chrome/browser/task_manager/task_manager.h2
-rw-r--r--chrome/browser/task_manager/task_manager_notification_resource_provider.cc4
-rw-r--r--chrome/browser/task_manager/task_manager_resource_providers.cc29
-rw-r--r--chrome/browser/task_manager/task_manager_resource_providers.h6
-rw-r--r--chrome/browser/task_manager/task_manager_unittest.cc6
-rw-r--r--chrome/browser/ui/cocoa/task_manager_mac.mm12
-rw-r--r--chrome/browser/ui/cocoa/task_manager_mac_unittest.mm2
8 files changed, 68 insertions, 3 deletions
diff --git a/chrome/browser/task_manager/task_manager.cc b/chrome/browser/task_manager/task_manager.cc
index 75231e3..993eaf4 100644
--- a/chrome/browser/task_manager/task_manager.cc
+++ b/chrome/browser/task_manager/task_manager.cc
@@ -122,6 +122,11 @@ string16 TaskManagerModel::GetResourceTitle(int index) const {
return resources_[index]->GetTitle();
}
+string16 TaskManagerModel::GetResourceProfileName(int index) const {
+ CHECK_LT(index, ResourceCount());
+ return resources_[index]->GetProfileName();
+}
+
int64 TaskManagerModel::GetNetworkUsage(int index) const {
CHECK_LT(index, ResourceCount());
return GetNetworkUsage(resources_[index]);
@@ -360,6 +365,11 @@ int TaskManagerModel::CompareValues(int row1, int row2, int col_id) const {
compare_status);
DCHECK(U_SUCCESS(compare_status));
return compare_result;
+ } else if (col_id == IDS_TASK_MANAGER_PROFILE_NAME_COLUMN) {
+ string16 profile1 = GetResourceProfileName(row1);
+ string16 profile2 = GetResourceProfileName(row2);
+ return profile1.compare(0, profile1.length(), profile2, 0,
+ profile2.length());
} else if (col_id == IDS_TASK_MANAGER_NET_COLUMN) {
return ValueCompare<int64>(GetNetworkUsage(resources_[row1]),
GetNetworkUsage(resources_[row2]));
diff --git a/chrome/browser/task_manager/task_manager.h b/chrome/browser/task_manager/task_manager.h
index 5fa7b83..117cc8a 100644
--- a/chrome/browser/task_manager/task_manager.h
+++ b/chrome/browser/task_manager/task_manager.h
@@ -60,6 +60,7 @@ class TaskManager {
};
virtual string16 GetTitle() const = 0;
+ virtual string16 GetProfileName() const = 0;
virtual SkBitmap GetIcon() const = 0;
virtual base::ProcessHandle GetProcess() const = 0;
virtual Type GetType() const = 0;
@@ -240,6 +241,7 @@ class TaskManagerModel : public base::RefCountedThreadSafe<TaskManagerModel> {
// Methods to return formatted resource information.
string16 GetResourceTitle(int index) const;
+ string16 GetResourceProfileName(int index) const;
string16 GetResourceNetworkUsage(int index) const;
string16 GetResourceCPUUsage(int index) const;
string16 GetResourcePrivateMemory(int index) const;
diff --git a/chrome/browser/task_manager/task_manager_notification_resource_provider.cc b/chrome/browser/task_manager/task_manager_notification_resource_provider.cc
index 3568c29..f8c2745 100644
--- a/chrome/browser/task_manager/task_manager_notification_resource_provider.cc
+++ b/chrome/browser/task_manager/task_manager_notification_resource_provider.cc
@@ -47,6 +47,10 @@ string16 TaskManagerNotificationResource::GetTitle() const {
return title_;
}
+string16 TaskManagerNotificationResource::GetProfileName() const {
+ return string16();
+}
+
SkBitmap TaskManagerNotificationResource::GetIcon() const {
return *default_icon_;
}
diff --git a/chrome/browser/task_manager/task_manager_resource_providers.cc b/chrome/browser/task_manager/task_manager_resource_providers.cc
index 6fdb578..4821d23 100644
--- a/chrome/browser/task_manager/task_manager_resource_providers.cc
+++ b/chrome/browser/task_manager/task_manager_resource_providers.cc
@@ -22,6 +22,8 @@
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/favicon/favicon_tab_helper.h"
#include "chrome/browser/prerender/prerender_manager.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/profiles/profile_info_cache.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/tab_contents/background_contents.h"
#include "chrome/browser/tab_contents/tab_util.h"
@@ -263,6 +265,14 @@ string16 TaskManagerTabContentsResource::GetTitle() const {
return l10n_util::GetStringFUTF16(message_id, tab_title);
}
+string16 TaskManagerTabContentsResource::GetProfileName() const {
+ ProfileInfoCache& cache =
+ g_browser_process->profile_manager()->GetProfileInfoCache();
+ Profile* profile = tab_contents_->profile()->GetOriginalProfile();
+ return cache.GetNameOfProfileAtIndex(
+ cache.GetIndexOfProfileWithPath(profile->GetPath()));
+}
+
SkBitmap TaskManagerTabContentsResource::GetIcon() const {
if (IsPrerendering())
return *prerender_icon_;
@@ -494,6 +504,9 @@ string16 TaskManagerBackgroundContentsResource::GetTitle() const {
return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_BACKGROUND_PREFIX, title);
}
+string16 TaskManagerBackgroundContentsResource::GetProfileName() const {
+ return string16();
+}
SkBitmap TaskManagerBackgroundContentsResource::GetIcon() const {
return *default_icon_;
@@ -725,6 +738,10 @@ string16 TaskManagerChildProcessResource::GetTitle() const {
return title_;
}
+string16 TaskManagerChildProcessResource::GetProfileName() const {
+ return string16();
+}
+
SkBitmap TaskManagerChildProcessResource::GetIcon() const {
return *default_icon_;
}
@@ -1013,6 +1030,14 @@ string16 TaskManagerExtensionProcessResource::GetTitle() const {
return title_;
}
+string16 TaskManagerExtensionProcessResource::GetProfileName() const {
+ ProfileInfoCache& cache =
+ g_browser_process->profile_manager()->GetProfileInfoCache();
+ Profile* profile = extension_host_->profile()->GetOriginalProfile();
+ return cache.GetNameOfProfileAtIndex(
+ cache.GetIndexOfProfileWithPath(profile->GetPath()));
+}
+
SkBitmap TaskManagerExtensionProcessResource::GetIcon() const {
return *default_icon_;
}
@@ -1239,6 +1264,10 @@ string16 TaskManagerBrowserProcessResource::GetTitle() const {
return title_;
}
+string16 TaskManagerBrowserProcessResource::GetProfileName() const {
+ return string16();
+}
+
SkBitmap TaskManagerBrowserProcessResource::GetIcon() const {
return *default_icon_;
}
diff --git a/chrome/browser/task_manager/task_manager_resource_providers.h b/chrome/browser/task_manager/task_manager_resource_providers.h
index addd917..d99588f 100644
--- a/chrome/browser/task_manager/task_manager_resource_providers.h
+++ b/chrome/browser/task_manager/task_manager_resource_providers.h
@@ -96,6 +96,7 @@ class TaskManagerTabContentsResource : public TaskManagerRendererResource {
// TaskManager::Resource methods:
virtual Type GetType() const OVERRIDE;
virtual string16 GetTitle() const OVERRIDE;
+ virtual string16 GetProfileName() const OVERRIDE;
virtual SkBitmap GetIcon() const OVERRIDE;
virtual TabContentsWrapper* GetTabContents() const OVERRIDE;
virtual const Extension* GetExtension() const OVERRIDE;
@@ -163,6 +164,7 @@ class TaskManagerBackgroundContentsResource
// TaskManager::Resource methods:
virtual string16 GetTitle() const OVERRIDE;
+ virtual string16 GetProfileName() const OVERRIDE;
virtual SkBitmap GetIcon() const OVERRIDE;
virtual bool IsBackground() const OVERRIDE;
@@ -231,6 +233,7 @@ class TaskManagerChildProcessResource : public TaskManager::Resource {
// TaskManager::Resource methods:
virtual string16 GetTitle() const OVERRIDE;
+ virtual string16 GetProfileName() const OVERRIDE;
virtual SkBitmap GetIcon() const OVERRIDE;
virtual base::ProcessHandle GetProcess() const OVERRIDE;
virtual Type GetType() const OVERRIDE;
@@ -319,6 +322,7 @@ class TaskManagerExtensionProcessResource : public TaskManager::Resource {
// TaskManager::Resource methods:
virtual string16 GetTitle() const OVERRIDE;
+ virtual string16 GetProfileName() const OVERRIDE;
virtual SkBitmap GetIcon() const OVERRIDE;
virtual base::ProcessHandle GetProcess() const OVERRIDE;
virtual Type GetType() const OVERRIDE;
@@ -394,6 +398,7 @@ class TaskManagerNotificationResource : public TaskManager::Resource {
// TaskManager::Resource interface
virtual string16 GetTitle() const OVERRIDE;
+ virtual string16 GetProfileName() const OVERRIDE;
virtual SkBitmap GetIcon() const OVERRIDE;
virtual base::ProcessHandle GetProcess() const OVERRIDE;
virtual Type GetType() const OVERRIDE;
@@ -461,6 +466,7 @@ class TaskManagerBrowserProcessResource : public TaskManager::Resource {
// TaskManager::Resource methods:
virtual string16 GetTitle() const OVERRIDE;
+ virtual string16 GetProfileName() const OVERRIDE;
virtual SkBitmap GetIcon() const OVERRIDE;
virtual base::ProcessHandle GetProcess() const OVERRIDE;
virtual Type GetType() const OVERRIDE;
diff --git a/chrome/browser/task_manager/task_manager_unittest.cc b/chrome/browser/task_manager/task_manager_unittest.cc
index d7478a4..43a8ec6 100644
--- a/chrome/browser/task_manager/task_manager_unittest.cc
+++ b/chrome/browser/task_manager/task_manager_unittest.cc
@@ -33,6 +33,9 @@ class TestResource : public TaskManager::Resource {
virtual string16 GetTitle() const OVERRIDE {
return ASCIIToUTF16("test title");
}
+ virtual string16 GetProfileName() const OVERRIDE {
+ return ASCIIToUTF16("test profile");
+ }
virtual SkBitmap GetIcon() const { return SkBitmap(); }
virtual base::ProcessHandle GetProcess() const {
return base::GetCurrentProcessHandle();
@@ -71,6 +74,7 @@ TEST_F(TaskManagerTest, Resources) {
ASSERT_EQ(1, model->ResourceCount());
EXPECT_TRUE(model->IsResourceFirstInGroup(0));
EXPECT_EQ(ASCIIToUTF16("test title"), model->GetResourceTitle(0));
+ EXPECT_EQ(ASCIIToUTF16("test profile"), model->GetResourceProfileName(0));
EXPECT_EQ(l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT),
model->GetResourceNetworkUsage(0));
EXPECT_EQ(ASCIIToUTF16(kZeroCPUUsage), model->GetResourceCPUUsage(0));
@@ -80,6 +84,7 @@ TEST_F(TaskManagerTest, Resources) {
EXPECT_TRUE(model->IsResourceFirstInGroup(0));
EXPECT_FALSE(model->IsResourceFirstInGroup(1));
EXPECT_EQ(ASCIIToUTF16("test title"), model->GetResourceTitle(1));
+ EXPECT_EQ(ASCIIToUTF16("test profile"), model->GetResourceProfileName(1));
EXPECT_EQ(l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT).c_str(),
model->GetResourceNetworkUsage(1));
EXPECT_EQ(ASCIIToUTF16(kZeroCPUUsage), model->GetResourceCPUUsage(1));
@@ -89,6 +94,7 @@ TEST_F(TaskManagerTest, Resources) {
ASSERT_EQ(1, model->ResourceCount());
EXPECT_TRUE(model->IsResourceFirstInGroup(0));
EXPECT_EQ(ASCIIToUTF16("test title"), model->GetResourceTitle(0));
+ EXPECT_EQ(ASCIIToUTF16("test profile"), model->GetResourceProfileName(0));
EXPECT_EQ(l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT),
model->GetResourceNetworkUsage(0));
EXPECT_EQ(ASCIIToUTF16(kZeroCPUUsage), model->GetResourceCPUUsage(0));
diff --git a/chrome/browser/ui/cocoa/task_manager_mac.mm b/chrome/browser/ui/cocoa/task_manager_mac.mm
index f89cda4..e293396 100644
--- a/chrome/browser/ui/cocoa/task_manager_mac.mm
+++ b/chrome/browser/ui/cocoa/task_manager_mac.mm
@@ -31,6 +31,7 @@ const struct ColumnWidth {
} columnWidths[] = {
// Note that arraysize includes the trailing \0. That's intended.
{ IDS_TASK_MANAGER_PAGE_COLUMN, 120, 600 },
+ { IDS_TASK_MANAGER_PROFILE_NAME_COLUMN, 60, 200 },
{ IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN,
arraysize("800 MiB") * kCharWidth, -1 },
{ IDS_TASK_MANAGER_SHARED_MEM_COLUMN,
@@ -220,8 +221,10 @@ class SortHelper {
scoped_nsobject<NSTableColumn> column([[NSTableColumn alloc]
initWithIdentifier:[NSNumber numberWithInt:columnId]]);
- NSTextAlignment textAlignment = columnId == IDS_TASK_MANAGER_PAGE_COLUMN ?
- NSLeftTextAlignment : NSRightTextAlignment;
+ NSTextAlignment textAlignment =
+ (columnId == IDS_TASK_MANAGER_PAGE_COLUMN ||
+ columnId == IDS_TASK_MANAGER_PROFILE_NAME_COLUMN) ?
+ NSLeftTextAlignment : NSRightTextAlignment;
[[column.get() headerCell]
setStringValue:l10n_util::GetNSStringWithFixup(columnId)];
@@ -285,7 +288,7 @@ class SortHelper {
// Initially, sort on the tab name.
[tableView_ setSortDescriptors:
[NSArray arrayWithObject:[nameColumn sortDescriptorPrototype]]];
-
+ [self addColumnWithId:IDS_TASK_MANAGER_PROFILE_NAME_COLUMN visible:NO];
[self addColumnWithId:IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN visible:YES];
[self addColumnWithId:IDS_TASK_MANAGER_SHARED_MEM_COLUMN visible:NO];
[self addColumnWithId:IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN visible:NO];
@@ -429,6 +432,9 @@ class SortHelper {
case IDS_TASK_MANAGER_PAGE_COLUMN: // Process
return base::SysUTF16ToNSString(model_->GetResourceTitle(row));
+ case IDS_TASK_MANAGER_PROFILE_NAME_COLUMN: // Profile Name
+ return base::SysUTF16ToNSString(model_->GetResourceProfileName(row));
+
case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: // Memory
if (!model_->IsResourceFirstInGroup(row))
return @"";
diff --git a/chrome/browser/ui/cocoa/task_manager_mac_unittest.mm b/chrome/browser/ui/cocoa/task_manager_mac_unittest.mm
index 753d6f1..1c958b3 100644
--- a/chrome/browser/ui/cocoa/task_manager_mac_unittest.mm
+++ b/chrome/browser/ui/cocoa/task_manager_mac_unittest.mm
@@ -21,6 +21,7 @@ class TestResource : public TaskManager::Resource {
public:
TestResource(const string16& title, pid_t pid) : title_(title), pid_(pid) {}
virtual string16 GetTitle() const OVERRIDE { return title_; }
+ virtual string16 GetProfileName() const OVERRIDE { return string16(); }
virtual SkBitmap GetIcon() const OVERRIDE { return SkBitmap(); }
virtual base::ProcessHandle GetProcess() const OVERRIDE { return pid_; }
virtual Type GetType() const OVERRIDE { return RENDERER; }
@@ -28,6 +29,7 @@ class TestResource : public TaskManager::Resource {
virtual void SetSupportNetworkUsage() OVERRIDE { NOTREACHED(); }
virtual void Refresh() OVERRIDE {}
string16 title_;
+ string16 profile_name_;
pid_t pid_;
};