| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/task_manager/task_manager.h" | 5 #include "chrome/browser/task_manager/task_manager.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/i18n/number_formatting.h" | 8 #include "base/i18n/number_formatting.h" |
| 9 #include "base/i18n/rtl.h" | 9 #include "base/i18n/rtl.h" |
| 10 #include "base/prefs/pref_registry_simple.h" | 10 #include "base/prefs/pref_registry_simple.h" |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 | 193 |
| 194 TaskManagerModel::PerResourceValues::PerResourceValues() | 194 TaskManagerModel::PerResourceValues::PerResourceValues() |
| 195 : is_title_valid(false), | 195 : is_title_valid(false), |
| 196 is_profile_name_valid(false), | 196 is_profile_name_valid(false), |
| 197 network_usage(0), | 197 network_usage(0), |
| 198 is_process_id_valid(false), | 198 is_process_id_valid(false), |
| 199 process_id(0), | 199 process_id(0), |
| 200 is_goats_teleported_valid(false), | 200 is_goats_teleported_valid(false), |
| 201 goats_teleported(0), | 201 goats_teleported(0), |
| 202 is_webcore_stats_valid(false), | 202 is_webcore_stats_valid(false), |
| 203 is_fps_valid(false), | |
| 204 fps(0), | |
| 205 is_sqlite_memory_bytes_valid(false), | 203 is_sqlite_memory_bytes_valid(false), |
| 206 sqlite_memory_bytes(0), | 204 sqlite_memory_bytes(0), |
| 207 is_v8_memory_valid(false), | 205 is_v8_memory_valid(false), |
| 208 v8_memory_allocated(0), | 206 v8_memory_allocated(0), |
| 209 v8_memory_used(0) {} | 207 v8_memory_used(0) {} |
| 210 | 208 |
| 211 TaskManagerModel::PerResourceValues::~PerResourceValues() {} | 209 TaskManagerModel::PerResourceValues::~PerResourceValues() {} |
| 212 | 210 |
| 213 TaskManagerModel::PerProcessValues::PerProcessValues() | 211 TaskManagerModel::PerProcessValues::PerProcessValues() |
| 214 : is_cpu_usage_valid(false), | 212 : is_cpu_usage_valid(false), |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 369 | 367 |
| 370 case IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN: | 368 case IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN: |
| 371 return GetResourceWebCoreImageCacheSize(index); | 369 return GetResourceWebCoreImageCacheSize(index); |
| 372 | 370 |
| 373 case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN: | 371 case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN: |
| 374 return GetResourceWebCoreScriptsCacheSize(index); | 372 return GetResourceWebCoreScriptsCacheSize(index); |
| 375 | 373 |
| 376 case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN: | 374 case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN: |
| 377 return GetResourceWebCoreCSSCacheSize(index); | 375 return GetResourceWebCoreCSSCacheSize(index); |
| 378 | 376 |
| 379 case IDS_TASK_MANAGER_FPS_COLUMN: | |
| 380 return GetResourceFPS(index); | |
| 381 | |
| 382 case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN: | 377 case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN: |
| 383 return GetResourceVideoMemory(index); | 378 return GetResourceVideoMemory(index); |
| 384 | 379 |
| 385 case IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN: | 380 case IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN: |
| 386 return GetResourceSqliteMemoryUsed(index); | 381 return GetResourceSqliteMemoryUsed(index); |
| 387 | 382 |
| 388 case IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN: | 383 case IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN: |
| 389 return GetResourceV8MemoryAllocatedSize(index); | 384 return GetResourceV8MemoryAllocatedSize(index); |
| 390 | 385 |
| 391 case IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN: | 386 case IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN: |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 514 size_t video_memory; | 509 size_t video_memory; |
| 515 bool has_duplicates; | 510 bool has_duplicates; |
| 516 if (!GetVideoMemory(index, &video_memory, &has_duplicates) || !video_memory) | 511 if (!GetVideoMemory(index, &video_memory, &has_duplicates) || !video_memory) |
| 517 return base::ASCIIToUTF16("N/A"); | 512 return base::ASCIIToUTF16("N/A"); |
| 518 if (has_duplicates) { | 513 if (has_duplicates) { |
| 519 return GetMemCellText(video_memory) + base::ASCIIToUTF16("*"); | 514 return GetMemCellText(video_memory) + base::ASCIIToUTF16("*"); |
| 520 } | 515 } |
| 521 return GetMemCellText(video_memory); | 516 return GetMemCellText(video_memory); |
| 522 } | 517 } |
| 523 | 518 |
| 524 base::string16 TaskManagerModel::GetResourceFPS( | |
| 525 int index) const { | |
| 526 float fps = 0; | |
| 527 if (!GetFPS(index, &fps)) | |
| 528 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT); | |
| 529 return base::UTF8ToUTF16(base::StringPrintf("%.0f", fps)); | |
| 530 } | |
| 531 | |
| 532 base::string16 TaskManagerModel::GetResourceSqliteMemoryUsed(int index) const { | 519 base::string16 TaskManagerModel::GetResourceSqliteMemoryUsed(int index) const { |
| 533 size_t bytes = 0; | 520 size_t bytes = 0; |
| 534 if (!GetSqliteMemoryUsedBytes(index, &bytes)) | 521 if (!GetSqliteMemoryUsedBytes(index, &bytes)) |
| 535 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT); | 522 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT); |
| 536 return GetMemCellText(bytes); | 523 return GetMemCellText(bytes); |
| 537 } | 524 } |
| 538 | 525 |
| 539 base::string16 TaskManagerModel::GetResourceIdleWakeupsPerSecond(int index) | 526 base::string16 TaskManagerModel::GetResourceIdleWakeupsPerSecond(int index) |
| 540 const { | 527 const { |
| 541 return base::FormatNumber(GetIdleWakeupsPerSecond(GetResource(index))); | 528 return base::FormatNumber(GetIdleWakeupsPerSecond(GetResource(index))); |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 672 return false; | 659 return false; |
| 673 values.is_video_memory_valid = true; | 660 values.is_video_memory_valid = true; |
| 674 values.video_memory = i->second.video_memory; | 661 values.video_memory = i->second.video_memory; |
| 675 values.video_memory_has_duplicates = i->second.has_duplicates; | 662 values.video_memory_has_duplicates = i->second.has_duplicates; |
| 676 } | 663 } |
| 677 *video_memory = values.video_memory; | 664 *video_memory = values.video_memory; |
| 678 *has_duplicates = values.video_memory_has_duplicates; | 665 *has_duplicates = values.video_memory_has_duplicates; |
| 679 return true; | 666 return true; |
| 680 } | 667 } |
| 681 | 668 |
| 682 bool TaskManagerModel::GetFPS(int index, float* result) const { | |
| 683 *result = 0; | |
| 684 PerResourceValues& values(GetPerResourceValues(index)); | |
| 685 if (!values.is_fps_valid) { | |
| 686 if (!GetResource(index)->ReportsFPS()) | |
| 687 return false; | |
| 688 values.is_fps_valid = true; | |
| 689 values.fps = GetResource(index)->GetFPS(); | |
| 690 } | |
| 691 *result = values.fps; | |
| 692 return true; | |
| 693 } | |
| 694 | |
| 695 bool TaskManagerModel::GetSqliteMemoryUsedBytes( | 669 bool TaskManagerModel::GetSqliteMemoryUsedBytes( |
| 696 int index, | 670 int index, |
| 697 size_t* result) const { | 671 size_t* result) const { |
| 698 *result = 0; | 672 *result = 0; |
| 699 PerResourceValues& values(GetPerResourceValues(index)); | 673 PerResourceValues& values(GetPerResourceValues(index)); |
| 700 if (!values.is_sqlite_memory_bytes_valid) { | 674 if (!values.is_sqlite_memory_bytes_valid) { |
| 701 if (!GetResource(index)->ReportsSqliteMemoryUsed()) | 675 if (!GetResource(index)->ReportsSqliteMemoryUsed()) |
| 702 return false; | 676 return false; |
| 703 values.is_sqlite_memory_bytes_valid = true; | 677 values.is_sqlite_memory_bytes_valid = true; |
| 704 values.sqlite_memory_bytes = GetResource(index)->SqliteMemoryUsedBytes(); | 678 values.sqlite_memory_bytes = GetResource(index)->SqliteMemoryUsedBytes(); |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 923 return ValueCompare(stats1.cssStyleSheets.size, | 897 return ValueCompare(stats1.cssStyleSheets.size, |
| 924 stats2.cssStyleSheets.size); | 898 stats2.cssStyleSheets.size); |
| 925 default: | 899 default: |
| 926 NOTREACHED(); | 900 NOTREACHED(); |
| 927 return 0; | 901 return 0; |
| 928 } | 902 } |
| 929 } | 903 } |
| 930 return OrderUnavailableValue(row1_stats_valid, row2_stats_valid); | 904 return OrderUnavailableValue(row1_stats_valid, row2_stats_valid); |
| 931 } | 905 } |
| 932 | 906 |
| 933 case IDS_TASK_MANAGER_FPS_COLUMN: | |
| 934 return ValueCompareMember( | |
| 935 this, &TaskManagerModel::GetFPS, row1, row2); | |
| 936 | |
| 937 case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN: { | 907 case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN: { |
| 938 size_t value1; | 908 size_t value1; |
| 939 size_t value2; | 909 size_t value2; |
| 940 bool has_duplicates; | 910 bool has_duplicates; |
| 941 bool value1_valid = GetVideoMemory(row1, &value1, &has_duplicates); | 911 bool value1_valid = GetVideoMemory(row1, &value1, &has_duplicates); |
| 942 bool value2_valid = GetVideoMemory(row2, &value2, &has_duplicates); | 912 bool value2_valid = GetVideoMemory(row2, &value2, &has_duplicates); |
| 943 return value1_valid && value2_valid ? ValueCompare(value1, value2) : | 913 return value1_valid && value2_valid ? ValueCompare(value1, value2) : |
| 944 OrderUnavailableValue(value1_valid, value2_valid); | 914 OrderUnavailableValue(value1_valid, value2_valid); |
| 945 } | 915 } |
| 946 | 916 |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1254 base::ProcessId renderer_id, | 1224 base::ProcessId renderer_id, |
| 1255 const blink::WebCache::ResourceTypeStats& stats) { | 1225 const blink::WebCache::ResourceTypeStats& stats) { |
| 1256 for (ResourceList::iterator it = resources_.begin(); | 1226 for (ResourceList::iterator it = resources_.begin(); |
| 1257 it != resources_.end(); ++it) { | 1227 it != resources_.end(); ++it) { |
| 1258 if (base::GetProcId((*it)->GetProcess()) == renderer_id) { | 1228 if (base::GetProcId((*it)->GetProcess()) == renderer_id) { |
| 1259 (*it)->NotifyResourceTypeStats(stats); | 1229 (*it)->NotifyResourceTypeStats(stats); |
| 1260 } | 1230 } |
| 1261 } | 1231 } |
| 1262 } | 1232 } |
| 1263 | 1233 |
| 1264 void TaskManagerModel::NotifyFPS(base::ProcessId renderer_id, | |
| 1265 int routing_id, | |
| 1266 float fps) { | |
| 1267 for (ResourceList::iterator it = resources_.begin(); | |
| 1268 it != resources_.end(); ++it) { | |
| 1269 if (base::GetProcId((*it)->GetProcess()) == renderer_id && | |
| 1270 (*it)->GetRoutingID() == routing_id) { | |
| 1271 (*it)->NotifyFPS(fps); | |
| 1272 } | |
| 1273 } | |
| 1274 } | |
| 1275 | |
| 1276 void TaskManagerModel::NotifyVideoMemoryUsageStats( | 1234 void TaskManagerModel::NotifyVideoMemoryUsageStats( |
| 1277 const content::GPUVideoMemoryUsageStats& video_memory_usage_stats) { | 1235 const content::GPUVideoMemoryUsageStats& video_memory_usage_stats) { |
| 1278 DCHECK(pending_video_memory_usage_stats_update_); | 1236 DCHECK(pending_video_memory_usage_stats_update_); |
| 1279 video_memory_usage_stats_ = video_memory_usage_stats; | 1237 video_memory_usage_stats_ = video_memory_usage_stats; |
| 1280 pending_video_memory_usage_stats_update_ = false; | 1238 pending_video_memory_usage_stats_update_ = false; |
| 1281 } | 1239 } |
| 1282 | 1240 |
| 1283 void TaskManagerModel::NotifyV8HeapStats(base::ProcessId renderer_id, | 1241 void TaskManagerModel::NotifyV8HeapStats(base::ProcessId renderer_id, |
| 1284 size_t v8_memory_allocated, | 1242 size_t v8_memory_allocated, |
| 1285 size_t v8_memory_used) { | 1243 size_t v8_memory_used) { |
| (...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1594 params.host_desktop_type = desktop_type; | 1552 params.host_desktop_type = desktop_type; |
| 1595 chrome::Navigate(¶ms); | 1553 chrome::Navigate(¶ms); |
| 1596 } | 1554 } |
| 1597 | 1555 |
| 1598 TaskManager::TaskManager() | 1556 TaskManager::TaskManager() |
| 1599 : model_(new TaskManagerModel(this)) { | 1557 : model_(new TaskManagerModel(this)) { |
| 1600 } | 1558 } |
| 1601 | 1559 |
| 1602 TaskManager::~TaskManager() { | 1560 TaskManager::~TaskManager() { |
| 1603 } | 1561 } |
| OLD | NEW |