Commit 36cdba01 authored by sky@chromium.org's avatar sky@chromium.org

Consolidates lookup of task manager values.

BUG=none
TEST=none
R=estade@chromium.org,ben@chomium.org,dhollowa@chromium.org


Review URL: https://chromiumcodereview.appspot.com/11885005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176593 0039d316-1c4b-4281-b951-d872f2087c98
parent 60c3e91d
......@@ -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();
......
......@@ -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;
......
......@@ -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
......
......@@ -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);
......
......@@ -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 =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment