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_columns.h" | 5 #include "chrome/browser/ui/task_manager/task_manager_columns.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
10 #include "chrome/grit/generated_resources.h" | 10 #include "chrome/grit/generated_resources.h" |
11 | 11 |
12 namespace task_manager { | 12 namespace task_manager { |
13 | 13 |
14 namespace { | 14 namespace { |
15 | 15 |
16 // On Mac: Width of "a" and most other letters/digits in "small" table views. | 16 // On Mac: Width of "a" and most other letters/digits in "small" table views. |
17 const int kCharWidth = 6; | 17 const int kCharWidth = 6; |
18 | 18 |
19 } // namespace | 19 } // namespace |
20 | 20 |
21 // IMPORTANT: Do NOT change the below list without changing the COLUMN_LIST | 21 // IMPORTANT: Do NOT change the below list without changing the COLUMN_LIST |
22 // macro below. | 22 // macro below. |
23 const TableColumnData kColumns[] = { | 23 const TableColumnData kColumns[] = { |
24 { IDS_TASK_MANAGER_TASK_COLUMN, ui::TableColumn::LEFT, -1, 1, 120, 600, true, | 24 {IDS_TASK_MANAGER_TASK_COLUMN, ui::TableColumn::LEFT, -1, 1, 120, 600, true, |
25 true, true }, | 25 true, true}, |
26 { IDS_TASK_MANAGER_PROFILE_NAME_COLUMN, ui::TableColumn::LEFT, -1, 0, 60, 200, | 26 {IDS_TASK_MANAGER_PROFILE_NAME_COLUMN, ui::TableColumn::LEFT, -1, 0, 60, |
27 true, true, false }, | 27 200, true, true, false}, |
28 { IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 28 {IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
29 arraysize("800 MiB") * kCharWidth, -1, true, false, true }, | 29 arraysize("800 MiB") * kCharWidth, -1, true, false, true}, |
30 { IDS_TASK_MANAGER_SHARED_MEM_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 30 {IDS_TASK_MANAGER_SHARED_MEM_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
31 arraysize("800 MiB") * kCharWidth, -1, true, false, false }, | 31 arraysize("800 MiB") * kCharWidth, -1, true, false, false}, |
32 { IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 32 {IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
33 arraysize("800 MiB") * kCharWidth, -1, true, false, false }, | 33 arraysize("800 MiB") * kCharWidth, -1, true, false, false}, |
34 | 34 |
35 #if defined(OS_CHROMEOS) | 35 #if defined(OS_CHROMEOS) |
36 { IDS_TASK_MANAGER_SWAPPED_MEM_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 36 {IDS_TASK_MANAGER_SWAPPED_MEM_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
37 arraysize("800 MiB") * kCharWidth, -1, true, false, false }, | 37 arraysize("800 MiB") * kCharWidth, -1, true, false, false}, |
38 #endif | 38 #endif |
39 | 39 |
40 { IDS_TASK_MANAGER_CPU_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 40 {IDS_TASK_MANAGER_CPU_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
41 arraysize("99.9") * kCharWidth, -1, true, false, true }, | 41 arraysize("99.9") * kCharWidth, -1, true, false, true}, |
42 #if defined(OS_WIN) | 42 #if defined(OS_WIN) |
43 { IDS_TASK_MANAGER_CPU_TIME_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 43 {IDS_TASK_MANAGER_CPU_TIME_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
44 arraysize("1234h 42m 30s") * kCharWidth, -1, true, false, false }, | 44 arraysize("1234h 42m 30s") * kCharWidth, -1, true, false, false}, |
45 { IDS_TASK_MANAGER_START_TIME_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 45 {IDS_TASK_MANAGER_START_TIME_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
46 arraysize("12/13/14 11:44:30 PM") * kCharWidth, -1, true, true, false }, | 46 arraysize("12/13/14 11:44:30 PM") * kCharWidth, -1, true, true, false}, |
47 #endif | 47 #endif |
48 { IDS_TASK_MANAGER_NET_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 48 {IDS_TASK_MANAGER_NET_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
49 arraysize("150 kiB/s") * kCharWidth, -1, true, false, true }, | 49 arraysize("150 kiB/s") * kCharWidth, -1, true, false, true}, |
50 { IDS_TASK_MANAGER_PROCESS_ID_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 50 {IDS_TASK_MANAGER_PROCESS_ID_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
51 arraysize("73099 ") * kCharWidth, -1, true, true, true }, | 51 arraysize("73099 ") * kCharWidth, -1, true, true, true}, |
52 | 52 |
53 #if defined(OS_WIN) | 53 #if defined(OS_WIN) |
54 { IDS_TASK_MANAGER_GDI_HANDLES_COLUMN, ui::TableColumn::RIGHT, -1, 0, 0, 0, | 54 {IDS_TASK_MANAGER_GDI_HANDLES_COLUMN, ui::TableColumn::RIGHT, -1, 0, 0, 0, |
55 true, false, false }, | 55 true, false, false}, |
56 { IDS_TASK_MANAGER_USER_HANDLES_COLUMN, ui::TableColumn::RIGHT, -1, 0, 0, 0, | 56 {IDS_TASK_MANAGER_USER_HANDLES_COLUMN, ui::TableColumn::RIGHT, -1, 0, 0, 0, |
57 true, false, false }, | 57 true, false, false}, |
58 #endif | 58 #endif |
59 | 59 |
60 { IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 60 {IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
61 arraysize("2000.0K (2000.0 live)") * kCharWidth, -1, true, false, false }, | 61 arraysize("2000.0K (2000.0 live)") * kCharWidth, -1, true, false, false}, |
62 { IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN, ui::TableColumn::RIGHT, -1, | 62 {IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN, ui::TableColumn::RIGHT, -1, |
63 0, arraysize("2000.0K (2000.0 live)") * kCharWidth, -1, true, false, | 63 0, arraysize("2000.0K (2000.0 live)") * kCharWidth, -1, true, false, |
64 false }, | 64 false}, |
65 { IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 65 {IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
66 arraysize("2000.0K (2000.0 live)") * kCharWidth, -1, true, false, false }, | 66 arraysize("2000.0K (2000.0 live)") * kCharWidth, -1, true, false, false}, |
67 { IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 67 {IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
68 arraysize("2000.0K") * kCharWidth, -1, true, false, false }, | 68 arraysize("2000.0K") * kCharWidth, -1, true, false, false}, |
69 { IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 69 {IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
70 arraysize("800 kB") * kCharWidth, -1, true, false, false }, | 70 arraysize("800 kB") * kCharWidth, -1, true, false, false}, |
71 | 71 |
72 #if !defined(DISABLE_NACL) | 72 #if !defined(DISABLE_NACL) |
73 { IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 73 {IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN, ui::TableColumn::RIGHT, -1, |
74 arraysize("32767") * kCharWidth, -1, true, true, false }, | 74 0, arraysize("32767") * kCharWidth, -1, true, true, false}, |
75 #endif // !defined(DISABLE_NACL) | 75 #endif // !defined(DISABLE_NACL) |
76 | 76 |
77 { IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN, ui::TableColumn::RIGHT, | 77 {IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN, |
78 -1, 0, arraysize("2000.0K (2000.0 live)") * kCharWidth, -1, true, false, | 78 ui::TableColumn::RIGHT, -1, 0, |
79 false }, | 79 arraysize("2000.0K (2000.0 live)") * kCharWidth, -1, true, false, false}, |
80 { IDS_TASK_MANAGER_IDLE_WAKEUPS_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 80 {IDS_TASK_MANAGER_IDLE_WAKEUPS_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
81 arraysize("idlewakeups") * kCharWidth, -1, true, false, false }, | 81 arraysize("idlewakeups") * kCharWidth, -1, true, false, false}, |
82 | 82 |
83 #if defined(OS_LINUX) | 83 #if defined(OS_LINUX) |
84 { IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN, ui::TableColumn::RIGHT, -1, 0, | 84 {IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
85 arraysize("999") * kCharWidth, -1, true, false, false }, | 85 arraysize("999") * kCharWidth, -1, true, false, false}, |
86 #endif // defined(OS_LINUX) | 86 #endif // defined(OS_LINUX) |
87 { IDS_TASK_MANAGER_PROCESS_PRIORITY_COLUMN, ui::TableColumn::LEFT, -1, 0, | 87 {IDS_TASK_MANAGER_PROCESS_PRIORITY_COLUMN, ui::TableColumn::LEFT, -1, 0, |
88 arraysize("background") * kCharWidth, -1, true, true, false }, | 88 arraysize("background") * kCharWidth, -1, true, true, false}, |
89 { IDS_TASK_MANAGER_MEMORY_STATE_COLUMN, ui::TableColumn::LEFT, -1, 0, | 89 {IDS_TASK_MANAGER_MEMORY_STATE_COLUMN, ui::TableColumn::LEFT, -1, 0, |
90 arraysize("throttled") * kCharWidth, -1, true, false, false }, | 90 arraysize("throttled") * kCharWidth, -1, true, false, false}, |
| 91 {IDS_TASK_MANAGER_KEEPALIVE_COUNT_COLUMN, ui::TableColumn::RIGHT, -1, 0, |
| 92 arraysize("999") * kCharWidth, -1, false, false, false}, |
91 }; | 93 }; |
92 | 94 |
93 const size_t kColumnsSize = arraysize(kColumns); | 95 const size_t kColumnsSize = arraysize(kColumns); |
94 | 96 |
95 const char kSortColumnIdKey[] = "sort_column_id"; | 97 const char kSortColumnIdKey[] = "sort_column_id"; |
96 const char kSortIsAscendingKey[] = "sort_is_ascending"; | 98 const char kSortIsAscendingKey[] = "sort_is_ascending"; |
97 | 99 |
98 // We can't use the integer IDs of the columns converted to strings as session | 100 // We can't derive session restore keys from the integer IDs of the columns |
99 // restore keys. These integer values can change from one build to another as | 101 // since the IDs are generated, and so may change from one build to another. |
100 // they are generated. Instead we use the literal string value of the column | 102 // Instead we stringify the column ID symbol (i.e. for the ID |
101 // ID symbol (i.e. for the ID IDS_TASK_MANAGER_TASK_COLUMN, we use the literal | 103 // IDS_TASK_MANAGER_TASK_COLUMN, we use the literal string |
102 // string "IDS_TASK_MANAGER_TASK_COLUMN". The following macros help us | 104 // "IDS_TASK_MANAGER_TASK_COLUMN"). |
103 // efficiently get the literal ID for the integer value. | |
104 #define COLUMNS_LIST(def) \ | |
105 def(IDS_TASK_MANAGER_TASK_COLUMN) \ | |
106 def(IDS_TASK_MANAGER_PROFILE_NAME_COLUMN) \ | |
107 def(IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN) \ | |
108 def(IDS_TASK_MANAGER_SHARED_MEM_COLUMN) \ | |
109 def(IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN) \ | |
110 def(IDS_TASK_MANAGER_SWAPPED_MEM_COLUMN) \ | |
111 def(IDS_TASK_MANAGER_CPU_COLUMN) \ | |
112 def(IDS_TASK_MANAGER_START_TIME_COLUMN) \ | |
113 def(IDS_TASK_MANAGER_CPU_TIME_COLUMN) \ | |
114 def(IDS_TASK_MANAGER_NET_COLUMN) \ | |
115 def(IDS_TASK_MANAGER_PROCESS_ID_COLUMN) \ | |
116 def(IDS_TASK_MANAGER_GDI_HANDLES_COLUMN) \ | |
117 def(IDS_TASK_MANAGER_USER_HANDLES_COLUMN) \ | |
118 def(IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN) \ | |
119 def(IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN) \ | |
120 def(IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN) \ | |
121 def(IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN) \ | |
122 def(IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN) \ | |
123 def(IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN) \ | |
124 def(IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN) \ | |
125 def(IDS_TASK_MANAGER_IDLE_WAKEUPS_COLUMN) \ | |
126 def(IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN) \ | |
127 def(IDS_TASK_MANAGER_PROCESS_PRIORITY_COLUMN) \ | |
128 def(IDS_TASK_MANAGER_MEMORY_STATE_COLUMN) | |
129 // Add to the above list in the macro any new IDs added in the future. Also | |
130 // remove the removed ones. | |
131 | 105 |
132 #define COLUMN_ID_AS_STRING(col_id) case col_id: return std::string(#col_id); | 106 #define COLUMN_CASE(column_id) \ |
| 107 case column_id: \ |
| 108 return std::string(#column_id); |
133 | 109 |
134 std::string GetColumnIdAsString(int column_id) { | 110 std::string GetColumnIdAsString(int column_id) { |
135 switch (column_id) { | 111 switch (column_id) { |
136 COLUMNS_LIST(COLUMN_ID_AS_STRING) | 112 COLUMN_CASE(IDS_TASK_MANAGER_TASK_COLUMN); |
| 113 COLUMN_CASE(IDS_TASK_MANAGER_PROFILE_NAME_COLUMN); |
| 114 COLUMN_CASE(IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN); |
| 115 COLUMN_CASE(IDS_TASK_MANAGER_SHARED_MEM_COLUMN); |
| 116 COLUMN_CASE(IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN); |
| 117 COLUMN_CASE(IDS_TASK_MANAGER_SWAPPED_MEM_COLUMN); |
| 118 COLUMN_CASE(IDS_TASK_MANAGER_CPU_COLUMN); |
| 119 COLUMN_CASE(IDS_TASK_MANAGER_START_TIME_COLUMN); |
| 120 COLUMN_CASE(IDS_TASK_MANAGER_CPU_TIME_COLUMN); |
| 121 COLUMN_CASE(IDS_TASK_MANAGER_NET_COLUMN); |
| 122 COLUMN_CASE(IDS_TASK_MANAGER_PROCESS_ID_COLUMN); |
| 123 COLUMN_CASE(IDS_TASK_MANAGER_GDI_HANDLES_COLUMN); |
| 124 COLUMN_CASE(IDS_TASK_MANAGER_USER_HANDLES_COLUMN); |
| 125 COLUMN_CASE(IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN); |
| 126 COLUMN_CASE(IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN); |
| 127 COLUMN_CASE(IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN); |
| 128 COLUMN_CASE(IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN); |
| 129 COLUMN_CASE(IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN); |
| 130 COLUMN_CASE(IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN); |
| 131 COLUMN_CASE(IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN); |
| 132 COLUMN_CASE(IDS_TASK_MANAGER_IDLE_WAKEUPS_COLUMN); |
| 133 COLUMN_CASE(IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN); |
| 134 COLUMN_CASE(IDS_TASK_MANAGER_PROCESS_PRIORITY_COLUMN); |
| 135 COLUMN_CASE(IDS_TASK_MANAGER_MEMORY_STATE_COLUMN); |
| 136 COLUMN_CASE(IDS_TASK_MANAGER_KEEPALIVE_COUNT_COLUMN); |
137 default: | 137 default: |
138 NOTREACHED(); | 138 NOTREACHED(); |
139 return std::string(); | 139 return std::string(); |
140 } | 140 } |
141 } | 141 } |
142 | 142 |
143 } // namespace task_manager | 143 } // namespace task_manager |
OLD | NEW |