diff options
author | mirandac@google.com <mirandac@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-02 07:21:26 +0000 |
---|---|---|
committer | mirandac@google.com <mirandac@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-02 07:21:26 +0000 |
commit | c30a6040a16df040bce8008bd5b8b8f9c9f15068 (patch) | |
tree | 7c76006abf711b53c32e00daa680cf9eb6c46271 /chrome/browser | |
parent | adf6aafe95f4689ffcb1bde3d94c994d2405d90f (diff) | |
download | chromium_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')
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_; }; |