File: task_manager_columns.cc

package info (click to toggle)
chromium-browser 57.0.2987.98-1~deb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 2,637,852 kB
  • ctags: 2,544,394
  • sloc: cpp: 12,815,961; ansic: 3,676,222; python: 1,147,112; asm: 526,608; java: 523,212; xml: 286,794; perl: 92,654; sh: 86,408; objc: 73,271; makefile: 27,698; cs: 18,487; yacc: 13,031; tcl: 12,957; pascal: 4,875; ml: 4,716; lex: 3,904; sql: 3,862; ruby: 1,982; lisp: 1,508; php: 1,368; exp: 404; awk: 325; csh: 117; jsp: 39; sed: 37
file content (143 lines) | stat: -rw-r--r-- 6,267 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/ui/task_manager/task_manager_columns.h"

#include "base/logging.h"
#include "base/macros.h"
#include "build/build_config.h"
#include "chrome/grit/generated_resources.h"

namespace task_manager {

namespace {

// On Mac: Width of "a" and most other letters/digits in "small" table views.
const int kCharWidth = 6;

}  // namespace

// IMPORTANT: Do NOT change the below list without changing the COLUMN_LIST
// macro below.
const TableColumnData kColumns[] = {
  { IDS_TASK_MANAGER_TASK_COLUMN, ui::TableColumn::LEFT, -1, 1, 120, 600, true,
    true, true },
  { IDS_TASK_MANAGER_PROFILE_NAME_COLUMN, ui::TableColumn::LEFT, -1, 0, 60, 200,
    true, true, false },
  { IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("800 MiB") * kCharWidth, -1, true, false, true },
  { IDS_TASK_MANAGER_SHARED_MEM_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("800 MiB") * kCharWidth, -1, true, false, false },
  { IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("800 MiB") * kCharWidth, -1, true, false, false },

#if defined(OS_CHROMEOS)
  { IDS_TASK_MANAGER_SWAPPED_MEM_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("800 MiB") * kCharWidth, -1, true, false, false },
#endif

  { IDS_TASK_MANAGER_CPU_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("99.9") * kCharWidth, -1, true, false, true },
#if defined(OS_WIN)
  { IDS_TASK_MANAGER_CPU_TIME_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("1234h 42m 30s") * kCharWidth, -1, true, false, false },
  { IDS_TASK_MANAGER_START_TIME_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("12/13/14 11:44:30 PM") * kCharWidth, -1, true, true, false },
#endif
  { IDS_TASK_MANAGER_NET_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("150 kiB/s") * kCharWidth, -1, true, false, true },
  { IDS_TASK_MANAGER_PROCESS_ID_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("73099  ") * kCharWidth, -1, true, true, true },

#if defined(OS_WIN)
  { IDS_TASK_MANAGER_GDI_HANDLES_COLUMN, ui::TableColumn::RIGHT, -1, 0, 0, 0,
    true, false, false },
  { IDS_TASK_MANAGER_USER_HANDLES_COLUMN, ui::TableColumn::RIGHT, -1, 0, 0, 0,
    true, false, false },
#endif

  { IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("2000.0K (2000.0 live)") * kCharWidth, -1, true, false, false },
  { IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN, ui::TableColumn::RIGHT, -1,
    0, arraysize("2000.0K (2000.0 live)") * kCharWidth, -1, true, false,
    false },
  { IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("2000.0K (2000.0 live)") * kCharWidth, -1, true, false, false },
  { IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("2000.0K") * kCharWidth, -1, true, false, false },
  { IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("800 kB") * kCharWidth, -1, true, false, false },

#if !defined(DISABLE_NACL)
  { IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("32767") * kCharWidth, -1, true, true, false },
#endif  // !defined(DISABLE_NACL)

  { IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN, ui::TableColumn::RIGHT,
    -1, 0, arraysize("2000.0K (2000.0 live)") * kCharWidth, -1, true, false,
    false },
  { IDS_TASK_MANAGER_IDLE_WAKEUPS_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("idlewakeups") * kCharWidth, -1, true, false, false },

#if defined(OS_LINUX)
  { IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN, ui::TableColumn::RIGHT, -1, 0,
    arraysize("999") * kCharWidth, -1, true, false, false },
#endif  // defined(OS_LINUX)
  { IDS_TASK_MANAGER_PROCESS_PRIORITY_COLUMN, ui::TableColumn::LEFT, -1, 0,
    arraysize("background") * kCharWidth, -1, true, true, false },
  { IDS_TASK_MANAGER_MEMORY_STATE_COLUMN, ui::TableColumn::LEFT, -1, 0,
    arraysize("throttled") * kCharWidth, -1, true, false, false },
};

const size_t kColumnsSize = arraysize(kColumns);

const char kSortColumnIdKey[] = "sort_column_id";
const char kSortIsAscendingKey[] = "sort_is_ascending";

// We can't use the integer IDs of the columns converted to strings as session
// restore keys. These integer values can change from one build to another as
// they are generated. Instead we use the literal string value of the column
// ID symbol (i.e. for the ID IDS_TASK_MANAGER_TASK_COLUMN, we use the literal
// string "IDS_TASK_MANAGER_TASK_COLUMN". The following macros help us
// efficiently get the literal ID for the integer value.
#define COLUMNS_LIST(def) \
  def(IDS_TASK_MANAGER_TASK_COLUMN) \
  def(IDS_TASK_MANAGER_PROFILE_NAME_COLUMN) \
  def(IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN) \
  def(IDS_TASK_MANAGER_SHARED_MEM_COLUMN) \
  def(IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN) \
  def(IDS_TASK_MANAGER_SWAPPED_MEM_COLUMN) \
  def(IDS_TASK_MANAGER_CPU_COLUMN) \
  def(IDS_TASK_MANAGER_START_TIME_COLUMN) \
  def(IDS_TASK_MANAGER_CPU_TIME_COLUMN) \
  def(IDS_TASK_MANAGER_NET_COLUMN) \
  def(IDS_TASK_MANAGER_PROCESS_ID_COLUMN) \
  def(IDS_TASK_MANAGER_GDI_HANDLES_COLUMN) \
  def(IDS_TASK_MANAGER_USER_HANDLES_COLUMN) \
  def(IDS_TASK_MANAGER_WEBCORE_IMAGE_CACHE_COLUMN) \
  def(IDS_TASK_MANAGER_WEBCORE_SCRIPTS_CACHE_COLUMN) \
  def(IDS_TASK_MANAGER_WEBCORE_CSS_CACHE_COLUMN) \
  def(IDS_TASK_MANAGER_VIDEO_MEMORY_COLUMN) \
  def(IDS_TASK_MANAGER_SQLITE_MEMORY_USED_COLUMN) \
  def(IDS_TASK_MANAGER_NACL_DEBUG_STUB_PORT_COLUMN) \
  def(IDS_TASK_MANAGER_JAVASCRIPT_MEMORY_ALLOCATED_COLUMN) \
  def(IDS_TASK_MANAGER_IDLE_WAKEUPS_COLUMN) \
  def(IDS_TASK_MANAGER_OPEN_FD_COUNT_COLUMN) \
  def(IDS_TASK_MANAGER_PROCESS_PRIORITY_COLUMN) \
  def(IDS_TASK_MANAGER_MEMORY_STATE_COLUMN)
// Add to the above list in the macro any new IDs added in the future. Also
// remove the removed ones.

#define COLUMN_ID_AS_STRING(col_id) case col_id: return std::string(#col_id);

std::string GetColumnIdAsString(int column_id) {
  switch (column_id) {
    COLUMNS_LIST(COLUMN_ID_AS_STRING)
    default:
      NOTREACHED();
      return std::string();
  }
}

}  // namespace task_manager