Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(175)

Side by Side Diff: chrome/browser/task_manager/task_manager.cc

Issue 549263002: Task Manager: Remove goat teleporter. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/task_manager/task_manager.h ('k') | chrome/browser/ui/cocoa/task_manager_mac.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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"
11 #include "base/process/process_metrics.h" 11 #include "base/process/process_metrics.h"
12 #include "base/rand_util.h"
13 #include "base/stl_util.h" 12 #include "base/stl_util.h"
14 #include "base/strings/string16.h" 13 #include "base/strings/string16.h"
15 #include "base/strings/string_number_conversions.h" 14 #include "base/strings/string_number_conversions.h"
16 #include "base/strings/stringprintf.h" 15 #include "base/strings/stringprintf.h"
17 #include "base/strings/utf_string_conversions.h" 16 #include "base/strings/utf_string_conversions.h"
18 #include "chrome/browser/browser_process.h" 17 #include "chrome/browser/browser_process.h"
19 #include "chrome/browser/profiles/profile_manager.h" 18 #include "chrome/browser/profiles/profile_manager.h"
20 #include "chrome/browser/task_manager/background_information.h" 19 #include "chrome/browser/task_manager/background_information.h"
21 #include "chrome/browser/task_manager/browser_process_resource_provider.h" 20 #include "chrome/browser/task_manager/browser_process_resource_provider.h"
22 #include "chrome/browser/task_manager/child_process_resource_provider.h" 21 #include "chrome/browser/task_manager/child_process_resource_provider.h"
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 } 189 }
191 } 190 }
192 }; 191 };
193 192
194 TaskManagerModel::PerResourceValues::PerResourceValues() 193 TaskManagerModel::PerResourceValues::PerResourceValues()
195 : is_title_valid(false), 194 : is_title_valid(false),
196 is_profile_name_valid(false), 195 is_profile_name_valid(false),
197 network_usage(0), 196 network_usage(0),
198 is_process_id_valid(false), 197 is_process_id_valid(false),
199 process_id(0), 198 process_id(0),
200 is_goats_teleported_valid(false),
201 goats_teleported(0),
202 is_webcore_stats_valid(false), 199 is_webcore_stats_valid(false),
203 is_sqlite_memory_bytes_valid(false), 200 is_sqlite_memory_bytes_valid(false),
204 sqlite_memory_bytes(0), 201 sqlite_memory_bytes(0),
205 is_v8_memory_valid(false), 202 is_v8_memory_valid(false),
206 v8_memory_allocated(0), 203 v8_memory_allocated(0),
207 v8_memory_used(0) {} 204 v8_memory_used(0) {}
208 205
209 TaskManagerModel::PerResourceValues::~PerResourceValues() {} 206 TaskManagerModel::PerResourceValues::~PerResourceValues() {}
210 207
211 TaskManagerModel::PerProcessValues::PerProcessValues() 208 TaskManagerModel::PerProcessValues::PerProcessValues()
(...skipping 22 matching lines...) Expand all
234 231
235 //////////////////////////////////////////////////////////////////////////////// 232 ////////////////////////////////////////////////////////////////////////////////
236 // TaskManagerModel class 233 // TaskManagerModel class
237 //////////////////////////////////////////////////////////////////////////////// 234 ////////////////////////////////////////////////////////////////////////////////
238 235
239 TaskManagerModel::TaskManagerModel(TaskManager* task_manager) 236 TaskManagerModel::TaskManagerModel(TaskManager* task_manager)
240 : pending_video_memory_usage_stats_update_(false), 237 : pending_video_memory_usage_stats_update_(false),
241 update_requests_(0), 238 update_requests_(0),
242 listen_requests_(0), 239 listen_requests_(0),
243 update_state_(IDLE), 240 update_state_(IDLE),
244 is_updating_byte_count_(false), 241 is_updating_byte_count_(false) {
245 goat_salt_(base::RandUint64()) {
246 AddResourceProvider( 242 AddResourceProvider(
247 new task_manager::BrowserProcessResourceProvider(task_manager)); 243 new task_manager::BrowserProcessResourceProvider(task_manager));
248 AddResourceProvider(new task_manager::WebContentsResourceProvider( 244 AddResourceProvider(new task_manager::WebContentsResourceProvider(
249 task_manager, 245 task_manager,
250 scoped_ptr<WebContentsInformation>( 246 scoped_ptr<WebContentsInformation>(
251 new task_manager::BackgroundInformation()))); 247 new task_manager::BackgroundInformation())));
252 AddResourceProvider(new task_manager::WebContentsResourceProvider( 248 AddResourceProvider(new task_manager::WebContentsResourceProvider(
253 task_manager, 249 task_manager,
254 scoped_ptr<WebContentsInformation>( 250 scoped_ptr<WebContentsInformation>(
255 new task_manager::TabContentsInformation()))); 251 new task_manager::TabContentsInformation())));
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 352
357 case IDS_TASK_MANAGER_GDI_HANDLES_COLUMN: 353 case IDS_TASK_MANAGER_GDI_HANDLES_COLUMN:
358 return GetResourceGDIHandles(index); 354 return GetResourceGDIHandles(index);
359 355
360 case IDS_TASK_MANAGER_USER_HANDLES_COLUMN: 356 case IDS_TASK_MANAGER_USER_HANDLES_COLUMN:
361 return GetResourceUSERHandles(index); 357 return GetResourceUSERHandles(index);
362 358
363 case IDS_TASK_MANAGER_IDLE_WAKEUPS_COLUMN: 359 case IDS_TASK_MANAGER_IDLE_WAKEUPS_COLUMN:
364 return GetResourceIdleWakeupsPerSecond(index); 360 return GetResourceIdleWakeupsPerSecond(index);
365 361
366 case IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN:
367 return GetResourceGoatsTeleported(index);
368
369 case IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN: 362 case IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN:
370 return GetResourceWebCoreImageCacheSize(index); 363 return GetResourceWebCoreImageCacheSize(index);
371 364
372 case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN: 365 case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN:
373 return GetResourceWebCoreScriptsCacheSize(index); 366 return GetResourceWebCoreScriptsCacheSize(index);
374 367
375 case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN: 368 case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN:
376 return GetResourceWebCoreCSSCacheSize(index); 369 return GetResourceWebCoreCSSCacheSize(index);
377 370
378 case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN: 371 case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN:
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 if (!GetSqliteMemoryUsedBytes(index, &bytes)) 515 if (!GetSqliteMemoryUsedBytes(index, &bytes))
523 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT); 516 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT);
524 return GetMemCellText(bytes); 517 return GetMemCellText(bytes);
525 } 518 }
526 519
527 base::string16 TaskManagerModel::GetResourceIdleWakeupsPerSecond(int index) 520 base::string16 TaskManagerModel::GetResourceIdleWakeupsPerSecond(int index)
528 const { 521 const {
529 return base::FormatNumber(GetIdleWakeupsPerSecond(GetResource(index))); 522 return base::FormatNumber(GetIdleWakeupsPerSecond(GetResource(index)));
530 } 523 }
531 524
532 base::string16 TaskManagerModel::GetResourceGoatsTeleported(int index) const {
533 CHECK_LT(index, ResourceCount());
534 return base::FormatNumber(GetGoatsTeleported(index));
535 }
536
537 base::string16 TaskManagerModel::GetResourceV8MemoryAllocatedSize( 525 base::string16 TaskManagerModel::GetResourceV8MemoryAllocatedSize(
538 int index) const { 526 int index) const {
539 size_t memory_allocated = 0, memory_used = 0; 527 size_t memory_allocated = 0, memory_used = 0;
540 if (!GetV8MemoryUsed(index, &memory_used) || 528 if (!GetV8MemoryUsed(index, &memory_used) ||
541 !GetV8Memory(index, &memory_allocated)) 529 !GetV8Memory(index, &memory_allocated))
542 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT); 530 return l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT);
543 return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_CACHE_SIZE_CELL_TEXT, 531 return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_CACHE_SIZE_CELL_TEXT,
544 ui::FormatBytesWithUnits(memory_allocated, 532 ui::FormatBytesWithUnits(memory_allocated,
545 ui::DATA_UNITS_KIBIBYTE, 533 ui::DATA_UNITS_KIBIBYTE,
546 false), 534 false),
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
696 return false; 684 return false;
697 *result = GetPerResourceValues(index).v8_memory_used; 685 *result = GetPerResourceValues(index).v8_memory_used;
698 return true; 686 return true;
699 } 687 }
700 688
701 bool TaskManagerModel::CanActivate(int index) const { 689 bool TaskManagerModel::CanActivate(int index) const {
702 CHECK_LT(index, ResourceCount()); 690 CHECK_LT(index, ResourceCount());
703 return GetResourceWebContents(index) != NULL; 691 return GetResourceWebContents(index) != NULL;
704 } 692 }
705 693
706 int TaskManagerModel::GetGoatsTeleported(int index) const {
707 PerResourceValues& values(GetPerResourceValues(index));
708 if (!values.is_goats_teleported_valid) {
709 values.is_goats_teleported_valid = true;
710 values.goats_teleported = goat_salt_ * (index + 1);
711 values.goats_teleported = (values.goats_teleported >> 16) & 255;
712 }
713 return values.goats_teleported;
714 }
715
716 bool TaskManagerModel::IsResourceFirstInGroup(int index) const { 694 bool TaskManagerModel::IsResourceFirstInGroup(int index) const {
717 Resource* resource = GetResource(index); 695 Resource* resource = GetResource(index);
718 GroupMap::const_iterator iter = group_map_.find(resource->GetProcess()); 696 GroupMap::const_iterator iter = group_map_.find(resource->GetProcess());
719 DCHECK(iter != group_map_.end()); 697 DCHECK(iter != group_map_.end());
720 const ResourceList& group = iter->second; 698 const ResourceList& group = iter->second;
721 return (group[0] == resource); 699 return (group[0] == resource);
722 } 700 }
723 701
724 bool TaskManagerModel::IsResourceLastInGroup(int index) const { 702 bool TaskManagerModel::IsResourceLastInGroup(int index) const {
725 Resource* resource = GetResource(index); 703 Resource* resource = GetResource(index);
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
900 case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN: { 878 case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN: {
901 size_t value1; 879 size_t value1;
902 size_t value2; 880 size_t value2;
903 bool has_duplicates; 881 bool has_duplicates;
904 bool value1_valid = GetVideoMemory(row1, &value1, &has_duplicates); 882 bool value1_valid = GetVideoMemory(row1, &value1, &has_duplicates);
905 bool value2_valid = GetVideoMemory(row2, &value2, &has_duplicates); 883 bool value2_valid = GetVideoMemory(row2, &value2, &has_duplicates);
906 return value1_valid && value2_valid ? ValueCompare(value1, value2) : 884 return value1_valid && value2_valid ? ValueCompare(value1, value2) :
907 OrderUnavailableValue(value1_valid, value2_valid); 885 OrderUnavailableValue(value1_valid, value2_valid);
908 } 886 }
909 887
910 case IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN:
911 return ValueCompare(GetGoatsTeleported(row1), GetGoatsTeleported(row2));
912
913 case IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN: 888 case IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN:
914 return ValueCompareMember( 889 return ValueCompareMember(
915 this, &TaskManagerModel::GetV8Memory, row1, row2); 890 this, &TaskManagerModel::GetV8Memory, row1, row2);
916 891
917 case IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN: 892 case IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN:
918 return ValueCompareMember( 893 return ValueCompareMember(
919 this, &TaskManagerModel::GetSqliteMemoryUsedBytes, row1, row2); 894 this, &TaskManagerModel::GetSqliteMemoryUsedBytes, row1, row2);
920 895
921 default: 896 default:
922 NOTREACHED(); 897 NOTREACHED();
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
1138 OnItemsRemoved(0, size)); 1113 OnItemsRemoved(0, size));
1139 } 1114 }
1140 } 1115 }
1141 1116
1142 void TaskManagerModel::ModelChanged() { 1117 void TaskManagerModel::ModelChanged() {
1143 // Notify the table that the contents have changed for it to redraw. 1118 // Notify the table that the contents have changed for it to redraw.
1144 FOR_EACH_OBSERVER(TaskManagerModelObserver, observer_list_, OnModelChanged()); 1119 FOR_EACH_OBSERVER(TaskManagerModelObserver, observer_list_, OnModelChanged());
1145 } 1120 }
1146 1121
1147 void TaskManagerModel::Refresh() { 1122 void TaskManagerModel::Refresh() {
1148 goat_salt_ = base::RandUint64();
1149
1150 per_resource_cache_.clear(); 1123 per_resource_cache_.clear();
1151 per_process_cache_.clear(); 1124 per_process_cache_.clear();
1152 1125
1153 #if !defined(DISABLE_NACL) 1126 #if !defined(DISABLE_NACL)
1154 nacl::NaClBrowser* nacl_browser = nacl::NaClBrowser::GetInstance(); 1127 nacl::NaClBrowser* nacl_browser = nacl::NaClBrowser::GetInstance();
1155 #endif // !defined(DISABLE_NACL) 1128 #endif // !defined(DISABLE_NACL)
1156 1129
1157 // Compute the CPU usage values and check if NaCl GDB debug stub port is 1130 // Compute the CPU usage values and check if NaCl GDB debug stub port is
1158 // known. 1131 // known.
1159 // Note that we compute the CPU usage for all resources (instead of doing it 1132 // Note that we compute the CPU usage for all resources (instead of doing it
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
1562 params.host_desktop_type = desktop_type; 1535 params.host_desktop_type = desktop_type;
1563 chrome::Navigate(&params); 1536 chrome::Navigate(&params);
1564 } 1537 }
1565 1538
1566 TaskManager::TaskManager() 1539 TaskManager::TaskManager()
1567 : model_(new TaskManagerModel(this)) { 1540 : model_(new TaskManagerModel(this)) {
1568 } 1541 }
1569 1542
1570 TaskManager::~TaskManager() { 1543 TaskManager::~TaskManager() {
1571 } 1544 }
OLDNEW
« no previous file with comments | « chrome/browser/task_manager/task_manager.h ('k') | chrome/browser/ui/cocoa/task_manager_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698