Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/task_manager/task_manager_table_model.h" | 5 #include "chrome/browser/ui/task_manager/task_manager_table_model.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/i18n/number_formatting.h" | 10 #include "base/i18n/number_formatting.h" |
| 11 #include "base/i18n/rtl.h" | 11 #include "base/i18n/rtl.h" |
| 12 #include "base/i18n/time_formatting.h" | |
| 12 #include "base/macros.h" | 13 #include "base/macros.h" |
| 13 #include "base/process/process_handle.h" | 14 #include "base/process/process_handle.h" |
| 14 #include "base/strings/string_number_conversions.h" | 15 #include "base/strings/string_number_conversions.h" |
| 15 #include "base/strings/stringprintf.h" | 16 #include "base/strings/stringprintf.h" |
| 16 #include "base/strings/utf_string_conversions.h" | 17 #include "base/strings/utf_string_conversions.h" |
| 17 #include "build/build_config.h" | 18 #include "build/build_config.h" |
| 18 #include "chrome/browser/browser_process.h" | 19 #include "chrome/browser/browser_process.h" |
| 19 #include "chrome/browser/task_manager/task_manager_interface.h" | 20 #include "chrome/browser/task_manager/task_manager_interface.h" |
| 20 #include "chrome/browser/ui/task_manager/task_manager_columns.h" | 21 #include "chrome/browser/ui/task_manager/task_manager_columns.h" |
| 21 #include "chrome/common/pref_names.h" | 22 #include "chrome/common/pref_names.h" |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 44 | 45 |
| 45 // The columns that are shared by a group will show the value of the column | 46 // The columns that are shared by a group will show the value of the column |
| 46 // only once per group. | 47 // only once per group. |
| 47 bool IsSharedByGroup(int column_id) { | 48 bool IsSharedByGroup(int column_id) { |
| 48 switch (column_id) { | 49 switch (column_id) { |
| 49 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: | 50 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: |
| 50 case IDS_TASK_MANAGER_SHARED_MEM_COLUMN: | 51 case IDS_TASK_MANAGER_SHARED_MEM_COLUMN: |
| 51 case IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN: | 52 case IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN: |
| 52 case IDS_TASK_MANAGER_SWAPPED_MEM_COLUMN: | 53 case IDS_TASK_MANAGER_SWAPPED_MEM_COLUMN: |
| 53 case IDS_TASK_MANAGER_CPU_COLUMN: | 54 case IDS_TASK_MANAGER_CPU_COLUMN: |
| 55 case IDS_TASK_MANAGER_START_TIME_COLUMN: | |
| 56 case IDS_TASK_MANAGER_CPU_TIME_COLUMN: | |
| 54 case IDS_TASK_MANAGER_NET_COLUMN: | 57 case IDS_TASK_MANAGER_NET_COLUMN: |
| 55 case IDS_TASK_MANAGER_PROCESS_ID_COLUMN: | 58 case IDS_TASK_MANAGER_PROCESS_ID_COLUMN: |
| 56 case IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN: | 59 case IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN: |
| 57 case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN: | 60 case IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN: |
| 58 case IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN: | 61 case IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN: |
| 59 case IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN: | 62 case IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN: |
| 60 case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN: | 63 case IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN: |
| 61 case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN: | 64 case IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN: |
| 62 case IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN: | 65 case IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN: |
| 63 case IDS_TASK_MANAGER_IDLE_WAKEUPS_COLUMN: | 66 case IDS_TASK_MANAGER_IDLE_WAKEUPS_COLUMN: |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 113 IDS_TASK_MANAGER_DISABLED_NACL_DBG_TEXT)) { | 116 IDS_TASK_MANAGER_DISABLED_NACL_DBG_TEXT)) { |
| 114 } | 117 } |
| 115 | 118 |
| 116 ~TaskManagerValuesStringifier() {} | 119 ~TaskManagerValuesStringifier() {} |
| 117 | 120 |
| 118 base::string16 GetCpuUsageText(double cpu_usage) { | 121 base::string16 GetCpuUsageText(double cpu_usage) { |
| 119 return base::UTF8ToUTF16(base::StringPrintf(kCpuTextFormatString, | 122 return base::UTF8ToUTF16(base::StringPrintf(kCpuTextFormatString, |
| 120 cpu_usage)); | 123 cpu_usage)); |
| 121 } | 124 } |
| 122 | 125 |
| 126 base::string16 GetStartTimeText(base::Time start_time) { | |
| 127 if (start_time.is_null()) | |
| 128 return n_a_string_; | |
| 129 | |
| 130 return base::TimeFormatShortDateAndTime(start_time); | |
| 131 } | |
| 132 | |
| 133 base::string16 GetCpuTimeText(base::TimeDelta cpu_time) { | |
| 134 if (cpu_time.is_zero()) | |
| 135 return n_a_string_; | |
| 136 | |
| 137 return base::TimeDurationFormatWithSeconds(cpu_time, | |
| 138 base::DURATION_WIDTH_NARROW); | |
|
stanisc
2016/12/21 19:17:52
Why not DURATION_WIDTH_NUMERIC?
chengx
2016/12/21 22:05:54
There is a bug here with DURATION_WIDTH_NUMERIC. I
| |
| 139 } | |
| 140 | |
| 123 base::string16 GetMemoryUsageText(int64_t memory_usage, bool has_duplicates) { | 141 base::string16 GetMemoryUsageText(int64_t memory_usage, bool has_duplicates) { |
| 124 if (memory_usage == -1) | 142 if (memory_usage == -1) |
| 125 return n_a_string_; | 143 return n_a_string_; |
| 126 | 144 |
| 127 #if defined(OS_MACOSX) | 145 #if defined(OS_MACOSX) |
| 128 // System expectation is to show "100 kB", "200 MB", etc. | 146 // System expectation is to show "100 kB", "200 MB", etc. |
| 129 // TODO(thakis): [This TODO has been taken as is from the old task manager]: | 147 // TODO(thakis): [This TODO has been taken as is from the old task manager]: |
| 130 // Switch to metric units (as opposed to powers of two). | 148 // Switch to metric units (as opposed to powers of two). |
| 131 base::string16 memory_text = ui::FormatBytes(memory_usage); | 149 base::string16 memory_text = ui::FormatBytes(memory_usage); |
| 132 #else | 150 #else |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 291 return observed_task_manager()->GetProfileName(tasks_[row]); | 309 return observed_task_manager()->GetProfileName(tasks_[row]); |
| 292 | 310 |
| 293 case IDS_TASK_MANAGER_NET_COLUMN: | 311 case IDS_TASK_MANAGER_NET_COLUMN: |
| 294 return stringifier_->GetNetworkUsageText( | 312 return stringifier_->GetNetworkUsageText( |
| 295 observed_task_manager()->GetProcessTotalNetworkUsage(tasks_[row])); | 313 observed_task_manager()->GetProcessTotalNetworkUsage(tasks_[row])); |
| 296 | 314 |
| 297 case IDS_TASK_MANAGER_CPU_COLUMN: | 315 case IDS_TASK_MANAGER_CPU_COLUMN: |
| 298 return stringifier_->GetCpuUsageText( | 316 return stringifier_->GetCpuUsageText( |
| 299 observed_task_manager()->GetCpuUsage(tasks_[row])); | 317 observed_task_manager()->GetCpuUsage(tasks_[row])); |
| 300 | 318 |
| 319 case IDS_TASK_MANAGER_CPU_TIME_COLUMN: | |
| 320 return stringifier_->GetCpuTimeText( | |
| 321 observed_task_manager()->GetCpuTime(tasks_[row])); | |
| 322 | |
| 323 case IDS_TASK_MANAGER_START_TIME_COLUMN: | |
| 324 return stringifier_->GetStartTimeText( | |
| 325 observed_task_manager()->GetStartTime(tasks_[row])); | |
| 326 | |
| 301 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: | 327 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: |
| 302 return stringifier_->GetMemoryUsageText( | 328 return stringifier_->GetMemoryUsageText( |
| 303 observed_task_manager()->GetPrivateMemoryUsage(tasks_[row]), false); | 329 observed_task_manager()->GetPrivateMemoryUsage(tasks_[row]), false); |
| 304 | 330 |
| 305 case IDS_TASK_MANAGER_SHARED_MEM_COLUMN: | 331 case IDS_TASK_MANAGER_SHARED_MEM_COLUMN: |
| 306 return stringifier_->GetMemoryUsageText( | 332 return stringifier_->GetMemoryUsageText( |
| 307 observed_task_manager()->GetSharedMemoryUsage(tasks_[row]), false); | 333 observed_task_manager()->GetSharedMemoryUsage(tasks_[row]), false); |
| 308 | 334 |
| 309 case IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN: | 335 case IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN: |
| 310 return stringifier_->GetMemoryUsageText( | 336 return stringifier_->GetMemoryUsageText( |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 423 | 449 |
| 424 case IDS_TASK_MANAGER_NET_COLUMN: | 450 case IDS_TASK_MANAGER_NET_COLUMN: |
| 425 return ValueCompare( | 451 return ValueCompare( |
| 426 observed_task_manager()->GetNetworkUsage(tasks_[row1]), | 452 observed_task_manager()->GetNetworkUsage(tasks_[row1]), |
| 427 observed_task_manager()->GetNetworkUsage(tasks_[row2])); | 453 observed_task_manager()->GetNetworkUsage(tasks_[row2])); |
| 428 | 454 |
| 429 case IDS_TASK_MANAGER_CPU_COLUMN: | 455 case IDS_TASK_MANAGER_CPU_COLUMN: |
| 430 return ValueCompare(observed_task_manager()->GetCpuUsage(tasks_[row1]), | 456 return ValueCompare(observed_task_manager()->GetCpuUsage(tasks_[row1]), |
| 431 observed_task_manager()->GetCpuUsage(tasks_[row2])); | 457 observed_task_manager()->GetCpuUsage(tasks_[row2])); |
| 432 | 458 |
| 459 case IDS_TASK_MANAGER_CPU_TIME_COLUMN: | |
| 460 return ValueCompare(observed_task_manager()->GetCpuTime(tasks_[row1]), | |
| 461 observed_task_manager()->GetCpuTime(tasks_[row2])); | |
| 462 | |
| 463 case IDS_TASK_MANAGER_START_TIME_COLUMN: | |
| 464 return ValueCompare(observed_task_manager()->GetStartTime(tasks_[row1]), | |
| 465 observed_task_manager()->GetStartTime(tasks_[row2])); | |
| 466 | |
| 433 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: | 467 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: |
| 434 return ValueCompare( | 468 return ValueCompare( |
| 435 observed_task_manager()->GetPrivateMemoryUsage(tasks_[row1]), | 469 observed_task_manager()->GetPrivateMemoryUsage(tasks_[row1]), |
| 436 observed_task_manager()->GetPrivateMemoryUsage(tasks_[row2])); | 470 observed_task_manager()->GetPrivateMemoryUsage(tasks_[row2])); |
| 437 | 471 |
| 438 case IDS_TASK_MANAGER_SHARED_MEM_COLUMN: | 472 case IDS_TASK_MANAGER_SHARED_MEM_COLUMN: |
| 439 return ValueCompare( | 473 return ValueCompare( |
| 440 observed_task_manager()->GetSharedMemoryUsage(tasks_[row1]), | 474 observed_task_manager()->GetSharedMemoryUsage(tasks_[row1]), |
| 441 observed_task_manager()->GetSharedMemoryUsage(tasks_[row2])); | 475 observed_task_manager()->GetSharedMemoryUsage(tasks_[row2])); |
| 442 | 476 |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 625 return; // The data in these columns do not change. | 659 return; // The data in these columns do not change. |
| 626 | 660 |
| 627 case IDS_TASK_MANAGER_NET_COLUMN: | 661 case IDS_TASK_MANAGER_NET_COLUMN: |
| 628 type = REFRESH_TYPE_NETWORK_USAGE; | 662 type = REFRESH_TYPE_NETWORK_USAGE; |
| 629 break; | 663 break; |
| 630 | 664 |
| 631 case IDS_TASK_MANAGER_CPU_COLUMN: | 665 case IDS_TASK_MANAGER_CPU_COLUMN: |
| 632 type = REFRESH_TYPE_CPU; | 666 type = REFRESH_TYPE_CPU; |
| 633 break; | 667 break; |
| 634 | 668 |
| 669 case IDS_TASK_MANAGER_START_TIME_COLUMN: | |
| 670 type = REFRESH_TYPE_START_TIME; | |
| 671 break; | |
| 672 | |
| 673 case IDS_TASK_MANAGER_CPU_TIME_COLUMN: | |
| 674 type = REFRESH_TYPE_CPU_TIME; | |
| 675 break; | |
| 676 | |
| 635 case IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN: | 677 case IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN: |
| 636 type = REFRESH_TYPE_PHYSICAL_MEMORY; | 678 type = REFRESH_TYPE_PHYSICAL_MEMORY; |
| 637 break; | 679 break; |
| 638 | 680 |
| 639 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: | 681 case IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN: |
| 640 case IDS_TASK_MANAGER_SHARED_MEM_COLUMN: | 682 case IDS_TASK_MANAGER_SHARED_MEM_COLUMN: |
| 641 case IDS_TASK_MANAGER_SWAPPED_MEM_COLUMN: | 683 case IDS_TASK_MANAGER_SWAPPED_MEM_COLUMN: |
| 642 type = REFRESH_TYPE_MEMORY_DETAILS; | 684 type = REFRESH_TYPE_MEMORY_DETAILS; |
| 643 if (table_view_delegate_->IsColumnVisible( | 685 if (table_view_delegate_->IsColumnVisible( |
| 644 IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN) || | 686 IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN) || |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 832 | 874 |
| 833 bool TaskManagerTableModel::IsTaskFirstInGroup(int row_index) const { | 875 bool TaskManagerTableModel::IsTaskFirstInGroup(int row_index) const { |
| 834 if (row_index == 0) | 876 if (row_index == 0) |
| 835 return true; | 877 return true; |
| 836 | 878 |
| 837 return observed_task_manager()->GetProcessId(tasks_[row_index - 1]) != | 879 return observed_task_manager()->GetProcessId(tasks_[row_index - 1]) != |
| 838 observed_task_manager()->GetProcessId(tasks_[row_index]); | 880 observed_task_manager()->GetProcessId(tasks_[row_index]); |
| 839 } | 881 } |
| 840 | 882 |
| 841 } // namespace task_manager | 883 } // namespace task_manager |
| OLD | NEW |