| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/webui/task_manager_handler.h" | 5 #include "chrome/browser/ui/webui/task_manager_handler.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <functional> | 8 #include <functional> |
| 9 #include "base/string_number_conversions.h" | 9 #include "base/string_number_conversions.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| 11 #include "chrome/browser/profiles/profile.h" | 11 #include "chrome/browser/profiles/profile.h" |
| 12 #include "chrome/browser/task_manager/task_manager.h" | 12 #include "chrome/browser/task_manager/task_manager.h" |
| 13 #include "chrome/browser/ui/webui/web_ui_util.h" | 13 #include "chrome/browser/ui/webui/web_ui_util.h" |
| 14 #include "chrome/common/chrome_notification_types.h" | 14 #include "chrome/common/chrome_notification_types.h" |
| 15 #include "content/common/notification_service.h" | 15 #include "content/common/notification_service.h" |
| 16 #include "content/common/notification_source.h" | 16 #include "content/common/notification_source.h" |
| 17 #include "third_party/skia/include/core/SkBitmap.h" | 17 #include "third_party/skia/include/core/SkBitmap.h" |
| 18 | 18 |
| 19 namespace { | 19 namespace { |
| 20 | 20 |
| 21 static Value* CreateColumnValue(const TaskManagerModel* tm, | 21 static Value* CreateColumnValue(const TaskManagerModel* tm, |
| 22 const std::string column_name, | 22 const std::string column_name, |
| 23 const int i) { | 23 const int i) { |
| 24 if (column_name == "processId") | 24 if (column_name == "processId") |
| 25 return Value::CreateStringValue(tm->GetResourceProcessId(i)); | 25 return base::StringValue::New(tm->GetResourceProcessId(i)); |
| 26 if (column_name == "processIdValue") | 26 if (column_name == "processIdValue") |
| 27 return Value::CreateIntegerValue(tm->GetProcessId(i)); | 27 return base::NumberValue::New(tm->GetProcessId(i)); |
| 28 if (column_name == "cpuUsage") | 28 if (column_name == "cpuUsage") |
| 29 return Value::CreateStringValue(tm->GetResourceCPUUsage(i)); | 29 return base::StringValue::New(tm->GetResourceCPUUsage(i)); |
| 30 if (column_name == "cpuUsageValue") | 30 if (column_name == "cpuUsageValue") |
| 31 return Value::CreateDoubleValue(tm->GetCPUUsage(i)); | 31 return base::NumberValue::New(tm->GetCPUUsage(i)); |
| 32 if (column_name == "privateMemory") | 32 if (column_name == "privateMemory") |
| 33 return Value::CreateStringValue(tm->GetResourcePrivateMemory(i)); | 33 return base::StringValue::New(tm->GetResourcePrivateMemory(i)); |
| 34 if (column_name == "privateMemoryValue") { | 34 if (column_name == "privateMemoryValue") { |
| 35 size_t private_memory; | 35 size_t private_memory; |
| 36 tm->GetPrivateMemory(i, &private_memory); | 36 tm->GetPrivateMemory(i, &private_memory); |
| 37 return Value::CreateDoubleValue(private_memory); | 37 return base::NumberValue::New(static_cast<int>(private_memory)); |
| 38 } | 38 } |
| 39 if (column_name == "sharedMemory") | 39 if (column_name == "sharedMemory") |
| 40 return Value::CreateStringValue(tm->GetResourceSharedMemory(i)); | 40 return base::StringValue::New(tm->GetResourceSharedMemory(i)); |
| 41 if (column_name == "sharedMemoryValue") { | 41 if (column_name == "sharedMemoryValue") { |
| 42 size_t shared_memory; | 42 size_t shared_memory; |
| 43 tm->GetSharedMemory(i, &shared_memory); | 43 tm->GetSharedMemory(i, &shared_memory); |
| 44 return Value::CreateDoubleValue(shared_memory); | 44 return base::NumberValue::New(static_cast<int>(shared_memory)); |
| 45 } | 45 } |
| 46 if (column_name == "physicalMemory") | 46 if (column_name == "physicalMemory") |
| 47 return Value::CreateStringValue(tm->GetResourcePhysicalMemory(i)); | 47 return base::StringValue::New(tm->GetResourcePhysicalMemory(i)); |
| 48 if (column_name == "physicalMemoryValue") { | 48 if (column_name == "physicalMemoryValue") { |
| 49 size_t physical_memory; | 49 size_t physical_memory; |
| 50 tm->GetPhysicalMemory(i, &physical_memory); | 50 tm->GetPhysicalMemory(i, &physical_memory); |
| 51 return Value::CreateDoubleValue(physical_memory); | 51 return base::NumberValue::New(static_cast<int>(physical_memory)); |
| 52 } | 52 } |
| 53 if (column_name == "icon") | 53 if (column_name == "icon") |
| 54 return Value::CreateStringValue( | 54 return base::StringValue::New( |
| 55 web_ui_util::GetImageDataUrl(tm->GetResourceIcon(i))); | 55 web_ui_util::GetImageDataUrl(tm->GetResourceIcon(i))); |
| 56 if (column_name == "title") | 56 if (column_name == "title") |
| 57 return Value::CreateStringValue(tm->GetResourceTitle(i)); | 57 return base::StringValue::New(tm->GetResourceTitle(i)); |
| 58 if (column_name == "networkUsage") | 58 if (column_name == "networkUsage") |
| 59 return Value::CreateStringValue(tm->GetResourceNetworkUsage(i)); | 59 return base::StringValue::New(tm->GetResourceNetworkUsage(i)); |
| 60 if (column_name == "networkUsageValue") | 60 if (column_name == "networkUsageValue") |
| 61 return Value::CreateDoubleValue(tm->GetNetworkUsage(i)); | 61 return base::NumberValue::New(static_cast<int>(tm->GetNetworkUsage(i))); |
| 62 if (column_name == "webCoreImageCacheSize") | 62 if (column_name == "webCoreImageCacheSize") |
| 63 return Value::CreateStringValue(tm->GetResourceWebCoreImageCacheSize(i)); | 63 return base::StringValue::New(tm->GetResourceWebCoreImageCacheSize(i)); |
| 64 if (column_name == "webCoreImageCacheSizeValue") { | 64 if (column_name == "webCoreImageCacheSizeValue") { |
| 65 WebKit::WebCache::ResourceTypeStats resource_stats; | 65 WebKit::WebCache::ResourceTypeStats resource_stats; |
| 66 tm->GetWebCoreCacheStats(i, &resource_stats); | 66 tm->GetWebCoreCacheStats(i, &resource_stats); |
| 67 return Value::CreateDoubleValue(resource_stats.images.size); | 67 return base::NumberValue::New(static_cast<int>(resource_stats.images.size)); |
| 68 } | 68 } |
| 69 if (column_name == "webCoreScriptsCacheSize") | 69 if (column_name == "webCoreScriptsCacheSize") |
| 70 return Value::CreateStringValue(tm->GetResourceWebCoreScriptsCacheSize(i)); | 70 return base::StringValue::New(tm->GetResourceWebCoreScriptsCacheSize(i)); |
| 71 if (column_name == "webCoreScriptsCacheSizeValue") { | 71 if (column_name == "webCoreScriptsCacheSizeValue") { |
| 72 WebKit::WebCache::ResourceTypeStats resource_stats; | 72 WebKit::WebCache::ResourceTypeStats resource_stats; |
| 73 tm->GetWebCoreCacheStats(i, &resource_stats); | 73 tm->GetWebCoreCacheStats(i, &resource_stats); |
| 74 return Value::CreateDoubleValue(resource_stats.scripts.size); | 74 return base::NumberValue::New( |
| 75 static_cast<int>(resource_stats.scripts.size)); |
| 75 } | 76 } |
| 76 if (column_name == "webCoreCSSCacheSize") | 77 if (column_name == "webCoreCSSCacheSize") |
| 77 return Value::CreateStringValue(tm->GetResourceWebCoreCSSCacheSize(i)); | 78 return base::StringValue::New(tm->GetResourceWebCoreCSSCacheSize(i)); |
| 78 if (column_name == "webCoreCSSCacheSizeValue") { | 79 if (column_name == "webCoreCSSCacheSizeValue") { |
| 79 WebKit::WebCache::ResourceTypeStats resource_stats; | 80 WebKit::WebCache::ResourceTypeStats resource_stats; |
| 80 tm->GetWebCoreCacheStats(i, &resource_stats); | 81 tm->GetWebCoreCacheStats(i, &resource_stats); |
| 81 return Value::CreateDoubleValue(resource_stats.cssStyleSheets.size); | 82 return base::NumberValue::New( |
| 83 static_cast<int>(resource_stats.cssStyleSheets.size)); |
| 82 } | 84 } |
| 83 if (column_name == "fps") | 85 if (column_name == "fps") |
| 84 return Value::CreateStringValue(tm->GetResourceFPS(i)); | 86 return base::StringValue::New(tm->GetResourceFPS(i)); |
| 85 if (column_name == "fpsValue") { | 87 if (column_name == "fpsValue") { |
| 86 float fps; | 88 float fps; |
| 87 tm->GetFPS(i, &fps); | 89 tm->GetFPS(i, &fps); |
| 88 return Value::CreateDoubleValue(fps); | 90 return base::NumberValue::New(fps); |
| 89 } | 91 } |
| 90 if (column_name == "sqliteMemoryUsed") | 92 if (column_name == "sqliteMemoryUsed") |
| 91 return Value::CreateStringValue(tm->GetResourceSqliteMemoryUsed(i)); | 93 return base::StringValue::New(tm->GetResourceSqliteMemoryUsed(i)); |
| 92 if (column_name == "sqliteMemoryUsedValue") { | 94 if (column_name == "sqliteMemoryUsedValue") { |
| 93 size_t sqlite_memory; | 95 size_t sqlite_memory; |
| 94 tm->GetSqliteMemoryUsedBytes(i, &sqlite_memory); | 96 tm->GetSqliteMemoryUsedBytes(i, &sqlite_memory); |
| 95 return Value::CreateDoubleValue(sqlite_memory); | 97 return base::NumberValue::New(static_cast<int>(sqlite_memory)); |
| 96 } | 98 } |
| 97 if (column_name == "goatsTeleported") | 99 if (column_name == "goatsTeleported") |
| 98 return Value::CreateStringValue(tm->GetResourceGoatsTeleported(i)); | 100 return base::StringValue::New(tm->GetResourceGoatsTeleported(i)); |
| 99 if (column_name == "goatsTeleportedValue") | 101 if (column_name == "goatsTeleportedValue") |
| 100 return Value::CreateIntegerValue(tm->GetGoatsTeleported(i)); | 102 return base::NumberValue::New(tm->GetGoatsTeleported(i)); |
| 101 if (column_name == "v8MemoryAllocatedSize") | 103 if (column_name == "v8MemoryAllocatedSize") |
| 102 return Value::CreateStringValue(tm->GetResourceV8MemoryAllocatedSize(i)); | 104 return base::StringValue::New(tm->GetResourceV8MemoryAllocatedSize(i)); |
| 103 if (column_name == "v8MemoryAllocatedSizeValue") { | 105 if (column_name == "v8MemoryAllocatedSizeValue") { |
| 104 size_t v8_memory; | 106 size_t v8_memory; |
| 105 tm->GetV8Memory(i, &v8_memory); | 107 tm->GetV8Memory(i, &v8_memory); |
| 106 return Value::CreateDoubleValue(v8_memory); | 108 return base::NumberValue::New(static_cast<int>(v8_memory)); |
| 107 } | 109 } |
| 108 | 110 |
| 109 NOTREACHED(); | 111 NOTREACHED(); |
| 110 return NULL; | 112 return NULL; |
| 111 } | 113 } |
| 112 | 114 |
| 113 static void CreateGroupColumnList(const TaskManagerModel* tm, | 115 static void CreateGroupColumnList(const TaskManagerModel* tm, |
| 114 const std::string column_name, | 116 const std::string column_name, |
| 115 const int index, | 117 const int index, |
| 116 const int length, | 118 const int length, |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 | 191 |
| 190 TaskManagerHandler::~TaskManagerHandler() { | 192 TaskManagerHandler::~TaskManagerHandler() { |
| 191 DisableTaskManager(NULL); | 193 DisableTaskManager(NULL); |
| 192 } | 194 } |
| 193 | 195 |
| 194 // TaskManagerHandler, public: ----------------------------------------------- | 196 // TaskManagerHandler, public: ----------------------------------------------- |
| 195 | 197 |
| 196 void TaskManagerHandler::OnModelChanged() { | 198 void TaskManagerHandler::OnModelChanged() { |
| 197 const int count = model_->GroupCount(); | 199 const int count = model_->GroupCount(); |
| 198 | 200 |
| 199 base::FundamentalValue start_value(0); | 201 base::NumberValue start_value(0); |
| 200 base::FundamentalValue length_value(count); | 202 base::NumberValue length_value(count); |
| 201 base::ListValue tasks_value; | 203 base::ListValue tasks_value; |
| 202 for (int i = 0; i < count; ++i) | 204 for (int i = 0; i < count; ++i) |
| 203 tasks_value.Append(CreateTaskGroupValue(model_, i)); | 205 tasks_value.Append(CreateTaskGroupValue(model_, i)); |
| 204 | 206 |
| 205 if (is_enabled_) { | 207 if (is_enabled_) { |
| 206 web_ui_->CallJavascriptFunction("taskChanged", | 208 web_ui_->CallJavascriptFunction("taskChanged", |
| 207 start_value, length_value, tasks_value); | 209 start_value, length_value, tasks_value); |
| 208 } | 210 } |
| 209 } | 211 } |
| 210 | 212 |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 resource_to_group_table_.insert(it, static_cast<size_t>(length), -1); | 367 resource_to_group_table_.insert(it, static_cast<size_t>(length), -1); |
| 366 | 368 |
| 367 for (int i = start; i < start + length; i++) { | 369 for (int i = start; i < start + length; i++) { |
| 368 const int group_index = model_->GetGroupIndexForResource(i); | 370 const int group_index = model_->GetGroupIndexForResource(i); |
| 369 resource_to_group_table_[i] = group_index; | 371 resource_to_group_table_[i] = group_index; |
| 370 } | 372 } |
| 371 } | 373 } |
| 372 | 374 |
| 373 void TaskManagerHandler::OnGroupChanged(const int group_start, | 375 void TaskManagerHandler::OnGroupChanged(const int group_start, |
| 374 const int group_length) { | 376 const int group_length) { |
| 375 base::FundamentalValue start_value(group_start); | 377 base::NumberValue start_value(group_start); |
| 376 base::FundamentalValue length_value(group_length); | 378 base::NumberValue length_value(group_length); |
| 377 base::ListValue tasks_value; | 379 base::ListValue tasks_value; |
| 378 | 380 |
| 379 for (int i = 0; i < group_length; ++i) | 381 for (int i = 0; i < group_length; ++i) |
| 380 tasks_value.Append(CreateTaskGroupValue(model_, group_start + i)); | 382 tasks_value.Append(CreateTaskGroupValue(model_, group_start + i)); |
| 381 | 383 |
| 382 if (is_enabled_) { | 384 if (is_enabled_) { |
| 383 web_ui_->CallJavascriptFunction("taskChanged", | 385 web_ui_->CallJavascriptFunction("taskChanged", |
| 384 start_value, length_value, tasks_value); | 386 start_value, length_value, tasks_value); |
| 385 } | 387 } |
| 386 } | 388 } |
| 387 | 389 |
| 388 void TaskManagerHandler::OnGroupAdded(const int group_start, | 390 void TaskManagerHandler::OnGroupAdded(const int group_start, |
| 389 const int group_length) { | 391 const int group_length) { |
| 390 base::FundamentalValue start_value(group_start); | 392 base::NumberValue start_value(group_start); |
| 391 base::FundamentalValue length_value(group_length); | 393 base::NumberValue length_value(group_length); |
| 392 base::ListValue tasks_value; | 394 base::ListValue tasks_value; |
| 393 for (int i = 0; i < group_length; ++i) | 395 for (int i = 0; i < group_length; ++i) |
| 394 tasks_value.Append(CreateTaskGroupValue(model_, group_start + i)); | 396 tasks_value.Append(CreateTaskGroupValue(model_, group_start + i)); |
| 395 | 397 |
| 396 if (is_enabled_) { | 398 if (is_enabled_) { |
| 397 web_ui_->CallJavascriptFunction("taskAdded", | 399 web_ui_->CallJavascriptFunction("taskAdded", |
| 398 start_value, length_value, tasks_value); | 400 start_value, length_value, tasks_value); |
| 399 } | 401 } |
| 400 } | 402 } |
| 401 | 403 |
| 402 void TaskManagerHandler::OnGroupRemoved(const int group_start, | 404 void TaskManagerHandler::OnGroupRemoved(const int group_start, |
| 403 const int group_length) { | 405 const int group_length) { |
| 404 base::FundamentalValue start_value(group_start); | 406 base::NumberValue start_value(group_start); |
| 405 base::FundamentalValue length_value(group_length); | 407 base::NumberValue length_value(group_length); |
| 406 if (is_enabled_) | 408 if (is_enabled_) |
| 407 web_ui_->CallJavascriptFunction("taskRemoved", start_value, length_value); | 409 web_ui_->CallJavascriptFunction("taskRemoved", start_value, length_value); |
| 408 } | 410 } |
| OLD | NEW |