summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/task_manager/task_manager.cc78
-rw-r--r--chrome/browser/task_manager/task_manager.h4
-rw-r--r--chrome/browser/ui/cocoa/task_manager_mac.mm81
-rw-r--r--chrome/browser/ui/gtk/task_manager_gtk.cc75
-rw-r--r--chrome/browser/ui/views/task_manager_view.cc75
5 files changed, 86 insertions, 227 deletions
diff --git a/chrome/browser/task_manager/task_manager.cc b/chrome/browser/task_manager/task_manager.cc
index 0ad35fa..d6970d3 100644
--- a/chrome/browser/task_manager/task_manager.cc
+++ b/chrome/browser/task_manager/task_manager.cc
@@ -80,6 +80,25 @@ string16 FormatStatsSize(const WebKit::WebCache::ResourceTypeStat& stat) {
ui::FormatBytesWithUnits(stat.liveSize, ui::DATA_UNITS_KIBIBYTE, false));
}
+// Returns true if the specified id should use the first value in the group.
+bool IsSharedByGroup(int col_id) {
+ switch (col_id) {
+ case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN:
+ case IDS_TASK_MANAGER_SHARED_MEM_COLUMN:
+ case IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN:
+ case IDS_TASK_MANAGER_CPU_COLUMN:
+ case IDS_TASK_MANAGER_PROCESS_ID_COLUMN:
+ case IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN:
+ case IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN:
+ case IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN:
+ case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN:
+ case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN:
+ return true;
+ default:
+ return false;
+ }
+}
+
} // namespace
////////////////////////////////////////////////////////////////////////////////
@@ -149,6 +168,65 @@ int TaskManagerModel::GetResourceIndexByUniqueId(const int unique_id) const {
return -1;
}
+string16 TaskManagerModel::GetResourceById(int index, int col_id) const {
+ if (IsSharedByGroup(col_id) && !IsResourceFirstInGroup(index))
+ return string16();
+
+ switch (col_id) {
+ case IDS_TASK_MANAGER_TASK_COLUMN:
+ return GetResourceTitle(index);
+
+ case IDS_TASK_MANAGER_PROFILE_NAME_COLUMN:
+ return GetResourceProfileName(index);
+
+ case IDS_TASK_MANAGER_NET_COLUMN:
+ return GetResourceNetworkUsage(index);
+
+ case IDS_TASK_MANAGER_CPU_COLUMN:
+ return GetResourceCPUUsage(index);
+
+ case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN:
+ return GetResourcePrivateMemory(index);
+
+ case IDS_TASK_MANAGER_SHARED_MEM_COLUMN:
+ return GetResourceSharedMemory(index);
+
+ case IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN:
+ return GetResourcePhysicalMemory(index);
+
+ case IDS_TASK_MANAGER_PROCESS_ID_COLUMN:
+ return GetResourceProcessId(index);
+
+ case IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN:
+ return GetResourceGoatsTeleported(index);
+
+ case IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN:
+ return GetResourceWebCoreImageCacheSize(index);
+
+ case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN:
+ return GetResourceWebCoreScriptsCacheSize(index);
+
+ case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN:
+ return GetResourceWebCoreCSSCacheSize(index);
+
+ case IDS_TASK_MANAGER_FPS_COLUMN:
+ return GetResourceFPS(index);
+
+ case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN:
+ return GetResourceVideoMemory(index);
+
+ case IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN:
+ return GetResourceSqliteMemoryUsed(index);
+
+ case IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN:
+ return GetResourceV8MemoryAllocatedSize(index);
+
+ default:
+ NOTREACHED();
+ return string16();
+ }
+}
+
string16 TaskManagerModel::GetResourceTitle(int index) const {
CHECK_LT(index, ResourceCount());
return resources_[index]->GetTitle();
diff --git a/chrome/browser/task_manager/task_manager.h b/chrome/browser/task_manager/task_manager.h
index c1d3106..176c4f1 100644
--- a/chrome/browser/task_manager/task_manager.h
+++ b/chrome/browser/task_manager/task_manager.h
@@ -305,6 +305,10 @@ class TaskManagerModel : public base::RefCountedThreadSafe<TaskManagerModel> {
// no resouce has the |unique_id|.
int GetResourceIndexByUniqueId(const int unique_id) const;
+ // Catchall method that calls off to the appropriate GetResourceXXX method
+ // based on |col_id|. |col_id| is an IDS_ value used to identify the column.
+ string16 GetResourceById(int index, int col_id) const;
+
// Methods to return formatted resource information.
string16 GetResourceTitle(int index) const;
string16 GetResourceProfileName(int index) const;
diff --git a/chrome/browser/ui/cocoa/task_manager_mac.mm b/chrome/browser/ui/cocoa/task_manager_mac.mm
index 7b05e09..d527af4 100644
--- a/chrome/browser/ui/cocoa/task_manager_mac.mm
+++ b/chrome/browser/ui/cocoa/task_manager_mac.mm
@@ -436,85 +436,8 @@ class SortHelper {
- (NSString*)modelTextForRow:(int)row column:(int)columnId {
DCHECK_LT(static_cast<size_t>(row), viewToModelMap_.size());
- row = viewToModelMap_[row];
- switch (columnId) {
- case IDS_TASK_MANAGER_TASK_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 @"";
- return base::SysUTF16ToNSString(model_->GetResourcePrivateMemory(row));
-
- case IDS_TASK_MANAGER_SHARED_MEM_COLUMN: // Memory
- if (!model_->IsResourceFirstInGroup(row))
- return @"";
- return base::SysUTF16ToNSString(model_->GetResourceSharedMemory(row));
-
- case IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN: // Memory
- if (!model_->IsResourceFirstInGroup(row))
- return @"";
- return base::SysUTF16ToNSString(model_->GetResourcePhysicalMemory(row));
-
- case IDS_TASK_MANAGER_CPU_COLUMN: // CPU
- if (!model_->IsResourceFirstInGroup(row))
- return @"";
- return base::SysUTF16ToNSString(model_->GetResourceCPUUsage(row));
-
- case IDS_TASK_MANAGER_NET_COLUMN: // Net
- return base::SysUTF16ToNSString(model_->GetResourceNetworkUsage(row));
-
- case IDS_TASK_MANAGER_PROCESS_ID_COLUMN: // Process ID
- if (!model_->IsResourceFirstInGroup(row))
- return @"";
- return base::SysUTF16ToNSString(model_->GetResourceProcessId(row));
-
- case IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN: // WebCore image cache
- if (!model_->IsResourceFirstInGroup(row))
- return @"";
- return base::SysUTF16ToNSString(
- model_->GetResourceWebCoreImageCacheSize(row));
-
- case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN: // WebCore script cache
- if (!model_->IsResourceFirstInGroup(row))
- return @"";
- return base::SysUTF16ToNSString(
- model_->GetResourceWebCoreScriptsCacheSize(row));
-
- case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN: // WebCore CSS cache
- if (!model_->IsResourceFirstInGroup(row))
- return @"";
- return base::SysUTF16ToNSString(
- model_->GetResourceWebCoreCSSCacheSize(row));
-
- case IDS_TASK_MANAGER_FPS_COLUMN:
- return base::SysUTF16ToNSString(model_->GetResourceFPS(row));
-
- case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN:
- return base::SysUTF16ToNSString(model_->GetResourceVideoMemory(row));
-
- case IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN:
- if (!model_->IsResourceFirstInGroup(row))
- return @"";
- return base::SysUTF16ToNSString(
- model_->GetResourceSqliteMemoryUsed(row));
-
- case IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN:
- if (!model_->IsResourceFirstInGroup(row))
- return @"";
- return base::SysUTF16ToNSString(
- model_->GetResourceV8MemoryAllocatedSize(row));
-
- case IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN: // Goats Teleported!
- return base::SysUTF16ToNSString(model_->GetResourceGoatsTeleported(row));
-
- default:
- NOTREACHED();
- return @"";
- }
+ return base::SysUTF16ToNSString(
+ model_->GetResourceById(viewToModelMap_[row], columnId));
}
- (id)tableView:(NSTableView*)tableView
diff --git a/chrome/browser/ui/gtk/task_manager_gtk.cc b/chrome/browser/ui/gtk/task_manager_gtk.cc
index 21c1642..4b6e408 100644
--- a/chrome/browser/ui/gtk/task_manager_gtk.cc
+++ b/chrome/browser/ui/gtk/task_manager_gtk.cc
@@ -670,76 +670,8 @@ void TaskManagerGtk::CreateTaskManagerTreeview() {
g_object_unref(process_list_sort_);
}
-bool IsSharedByGroup(int col_id) {
- switch (col_id) {
- case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN:
- case IDS_TASK_MANAGER_SHARED_MEM_COLUMN:
- case IDS_TASK_MANAGER_CPU_COLUMN:
- case IDS_TASK_MANAGER_PROCESS_ID_COLUMN:
- case IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN:
- case IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN:
- case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN:
- case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN:
- return true;
- default:
- return false;
- }
-}
-
std::string TaskManagerGtk::GetModelText(int row, int col_id) {
- if (IsSharedByGroup(col_id) && !model_->IsResourceFirstInGroup(row))
- return std::string();
-
- switch (col_id) {
- case IDS_TASK_MANAGER_TASK_COLUMN: // Process
- return UTF16ToUTF8(model_->GetResourceTitle(row));
-
- case IDS_TASK_MANAGER_PROFILE_NAME_COLUMN: // Profile name
- return UTF16ToUTF8(model_->GetResourceProfileName(row));
-
- case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: // Memory
- return UTF16ToUTF8(model_->GetResourcePrivateMemory(row));
-
- case IDS_TASK_MANAGER_SHARED_MEM_COLUMN: // Memory
- return UTF16ToUTF8(model_->GetResourceSharedMemory(row));
-
- case IDS_TASK_MANAGER_CPU_COLUMN: // CPU
- return UTF16ToUTF8(model_->GetResourceCPUUsage(row));
-
- case IDS_TASK_MANAGER_NET_COLUMN: // Net
- return UTF16ToUTF8(model_->GetResourceNetworkUsage(row));
-
- case IDS_TASK_MANAGER_PROCESS_ID_COLUMN: // Process ID
- return UTF16ToUTF8(model_->GetResourceProcessId(row));
-
- case IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN:
- return UTF16ToUTF8(model_->GetResourceV8MemoryAllocatedSize(row));
-
- case IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN:
- return UTF16ToUTF8(model_->GetResourceWebCoreImageCacheSize(row));
-
- case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN:
- return UTF16ToUTF8(model_->GetResourceWebCoreScriptsCacheSize(row));
-
- case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN:
- return UTF16ToUTF8(model_->GetResourceWebCoreCSSCacheSize(row));
-
- case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN:
- return UTF16ToUTF8(model_->GetResourceVideoMemory(row));
-
- case IDS_TASK_MANAGER_FPS_COLUMN:
- return UTF16ToUTF8(model_->GetResourceFPS(row));
-
- case IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN:
- return UTF16ToUTF8(model_->GetResourceSqliteMemoryUsed(row));
-
- case IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN: // Goats Teleported!
- return UTF16ToUTF8(model_->GetResourceGoatsTeleported(row));
-
- default:
- NOTREACHED();
- return std::string();
- }
+ return UTF16ToUTF8(model_->GetResourceById(row, col_id));
}
GdkPixbuf* TaskManagerGtk::GetModelIcon(int row) {
@@ -865,11 +797,6 @@ gint TaskManagerGtk::CompareImpl(GtkTreeModel* model, GtkTreeIter* a,
int row1 = gtk_tree::GetRowNumForIter(model, b);
int row2 = gtk_tree::GetRowNumForIter(model, a);
- // When sorting by non-grouped attributes (e.g., Network), just do a normal
- // sort.
- if (!IsSharedByGroup(id))
- return model_->CompareValues(row1, row2, id);
-
// Otherwise, make sure grouped resources are shown together.
TaskManagerModel::GroupRange group_range1 =
model_->GetGroupRangeForResource(row1);
diff --git a/chrome/browser/ui/views/task_manager_view.cc b/chrome/browser/ui/views/task_manager_view.cc
index 2604e66..2312109 100644
--- a/chrome/browser/ui/views/task_manager_view.cc
+++ b/chrome/browser/ui/views/task_manager_view.cc
@@ -100,86 +100,13 @@ int TaskManagerTableModel::RowCount() {
}
string16 TaskManagerTableModel::GetText(int row, int col_id) {
- switch (col_id) {
- case IDS_TASK_MANAGER_TASK_COLUMN: // Process
- return model_->GetResourceTitle(row);
-
- case IDS_TASK_MANAGER_PROFILE_NAME_COLUMN: // Profile Name
- return model_->GetResourceProfileName(row);
-
- case IDS_TASK_MANAGER_NET_COLUMN: // Net
- return model_->GetResourceNetworkUsage(row);
-
- case IDS_TASK_MANAGER_CPU_COLUMN: // CPU
- if (!model_->IsResourceFirstInGroup(row))
- return string16();
- return model_->GetResourceCPUUsage(row);
-
- case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: // Memory
- if (!model_->IsResourceFirstInGroup(row))
- return string16();
- return model_->GetResourcePrivateMemory(row);
-
- case IDS_TASK_MANAGER_SHARED_MEM_COLUMN: // Memory
- if (!model_->IsResourceFirstInGroup(row))
- return string16();
- return model_->GetResourceSharedMemory(row);
-
- case IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN: // Memory
- if (!model_->IsResourceFirstInGroup(row))
- return string16();
- return model_->GetResourcePhysicalMemory(row);
-
- case IDS_TASK_MANAGER_PROCESS_ID_COLUMN:
- if (!model_->IsResourceFirstInGroup(row))
- return string16();
- return model_->GetResourceProcessId(row);
-
- case IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN: // Goats Teleported!
- return model_->GetResourceGoatsTeleported(row);
-
- case IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN:
- if (!model_->IsResourceFirstInGroup(row))
- return string16();
- return model_->GetResourceWebCoreImageCacheSize(row);
-
- case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN:
- if (!model_->IsResourceFirstInGroup(row))
- return string16();
- return model_->GetResourceWebCoreScriptsCacheSize(row);
-
- case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN:
- if (!model_->IsResourceFirstInGroup(row))
- return string16();
- return model_->GetResourceWebCoreCSSCacheSize(row);
-
- case IDS_TASK_MANAGER_FPS_COLUMN:
- return model_->GetResourceFPS(row);
-
- case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN:
- return model_->GetResourceVideoMemory(row);
-
- case IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN:
- if (!model_->IsResourceFirstInGroup(row))
- return string16();
- return model_->GetResourceSqliteMemoryUsed(row);
-
- case IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN:
- if (!model_->IsResourceFirstInGroup(row))
- return string16();
- return model_->GetResourceV8MemoryAllocatedSize(row);
-
- default:
- NOTREACHED();
- return string16();
- }
+ return model_->GetResourceById(row, col_id);
}
gfx::ImageSkia TaskManagerTableModel::GetIcon(int row) {
return model_->GetResourceIcon(row);
}
-
void TaskManagerTableModel::GetGroupRangeForItem(int item,
views::GroupRange* range) {
TaskManagerModel::GroupRange range_pair =