OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/webui/task_manager_handler.h" | 5 #include "chrome/browser/ui/webui/task_manager_handler.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <functional> | 8 #include <functional> |
9 #include "base/string_number_conversions.h" | 9 #include "base/string_number_conversions.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
11 #include "chrome/browser/profiles/profile.h" | 11 #include "chrome/browser/profiles/profile.h" |
12 #include "chrome/browser/task_manager/task_manager.h" | 12 #include "chrome/browser/task_manager/task_manager.h" |
13 #include "chrome/browser/ui/webui/web_ui_util.h" | 13 #include "chrome/browser/ui/webui/web_ui_util.h" |
14 #include "chrome/common/chrome_notification_types.h" | 14 #include "chrome/common/chrome_notification_types.h" |
15 #include "content/common/notification_service.h" | 15 #include "content/common/notification_service.h" |
16 #include "content/common/notification_source.h" | 16 #include "content/common/notification_source.h" |
17 #include "third_party/skia/include/core/SkBitmap.h" | 17 #include "third_party/skia/include/core/SkBitmap.h" |
18 | 18 |
19 namespace { | 19 namespace { |
20 | 20 |
21 static Value* CreateColumnValue(const TaskManagerModel* tm, | 21 static Value* CreateColumnValue(const TaskManagerModel* tm, |
22 const std::string column_name, | 22 const std::string column_name, |
23 const int i) { | 23 const int i) { |
24 if (column_name == "processId") | 24 if (column_name == "processId") |
25 return Value::CreateStringValue(tm->GetResourceProcessId(i)); | 25 return base::StringValue::New(tm->GetResourceProcessId(i)); |
26 if (column_name == "processIdValue") | 26 if (column_name == "processIdValue") |
27 return Value::CreateIntegerValue(tm->GetProcessId(i)); | 27 return base::NumberValue::New(tm->GetProcessId(i)); |
28 if (column_name == "cpuUsage") | 28 if (column_name == "cpuUsage") |
29 return Value::CreateStringValue(tm->GetResourceCPUUsage(i)); | 29 return base::StringValue::New(tm->GetResourceCPUUsage(i)); |
30 if (column_name == "cpuUsageValue") | 30 if (column_name == "cpuUsageValue") |
31 return Value::CreateDoubleValue(tm->GetCPUUsage(i)); | 31 return base::NumberValue::New(tm->GetCPUUsage(i)); |
32 if (column_name == "privateMemory") | 32 if (column_name == "privateMemory") |
33 return Value::CreateStringValue(tm->GetResourcePrivateMemory(i)); | 33 return base::StringValue::New(tm->GetResourcePrivateMemory(i)); |
34 if (column_name == "privateMemoryValue") { | 34 if (column_name == "privateMemoryValue") { |
35 size_t private_memory; | 35 size_t private_memory; |
36 tm->GetPrivateMemory(i, &private_memory); | 36 tm->GetPrivateMemory(i, &private_memory); |
37 return Value::CreateDoubleValue(private_memory); | 37 return base::NumberValue::New(static_cast<int>(private_memory)); |
38 } | 38 } |
39 if (column_name == "sharedMemory") | 39 if (column_name == "sharedMemory") |
40 return Value::CreateStringValue(tm->GetResourceSharedMemory(i)); | 40 return base::StringValue::New(tm->GetResourceSharedMemory(i)); |
41 if (column_name == "sharedMemoryValue") { | 41 if (column_name == "sharedMemoryValue") { |
42 size_t shared_memory; | 42 size_t shared_memory; |
43 tm->GetSharedMemory(i, &shared_memory); | 43 tm->GetSharedMemory(i, &shared_memory); |
44 return Value::CreateDoubleValue(shared_memory); | 44 return base::NumberValue::New(static_cast<int>(shared_memory)); |
45 } | 45 } |
46 if (column_name == "physicalMemory") | 46 if (column_name == "physicalMemory") |
47 return Value::CreateStringValue(tm->GetResourcePhysicalMemory(i)); | 47 return base::StringValue::New(tm->GetResourcePhysicalMemory(i)); |
48 if (column_name == "physicalMemoryValue") { | 48 if (column_name == "physicalMemoryValue") { |
49 size_t physical_memory; | 49 size_t physical_memory; |
50 tm->GetPhysicalMemory(i, &physical_memory); | 50 tm->GetPhysicalMemory(i, &physical_memory); |
51 return Value::CreateDoubleValue(physical_memory); | 51 return base::NumberValue::New(static_cast<int>(physical_memory)); |
52 } | 52 } |
53 if (column_name == "icon") | 53 if (column_name == "icon") |
54 return Value::CreateStringValue( | 54 return base::StringValue::New( |
55 web_ui_util::GetImageDataUrl(tm->GetResourceIcon(i))); | 55 web_ui_util::GetImageDataUrl(tm->GetResourceIcon(i))); |
56 if (column_name == "title") | 56 if (column_name == "title") |
57 return Value::CreateStringValue(tm->GetResourceTitle(i)); | 57 return base::StringValue::New(tm->GetResourceTitle(i)); |
58 if (column_name == "networkUsage") | 58 if (column_name == "networkUsage") |
59 return Value::CreateStringValue(tm->GetResourceNetworkUsage(i)); | 59 return base::StringValue::New(tm->GetResourceNetworkUsage(i)); |
60 if (column_name == "networkUsageValue") | 60 if (column_name == "networkUsageValue") |
61 return Value::CreateDoubleValue(tm->GetNetworkUsage(i)); | 61 return base::NumberValue::New(static_cast<int>(tm->GetNetworkUsage(i))); |
62 if (column_name == "webCoreImageCacheSize") | 62 if (column_name == "webCoreImageCacheSize") |
63 return Value::CreateStringValue(tm->GetResourceWebCoreImageCacheSize(i)); | 63 return base::StringValue::New(tm->GetResourceWebCoreImageCacheSize(i)); |
64 if (column_name == "webCoreImageCacheSizeValue") { | 64 if (column_name == "webCoreImageCacheSizeValue") { |
65 WebKit::WebCache::ResourceTypeStats resource_stats; | 65 WebKit::WebCache::ResourceTypeStats resource_stats; |
66 tm->GetWebCoreCacheStats(i, &resource_stats); | 66 tm->GetWebCoreCacheStats(i, &resource_stats); |
67 return Value::CreateDoubleValue(resource_stats.images.size); | 67 return base::NumberValue::New(static_cast<int>(resource_stats.images.size)); |
68 } | 68 } |
69 if (column_name == "webCoreScriptsCacheSize") | 69 if (column_name == "webCoreScriptsCacheSize") |
70 return Value::CreateStringValue(tm->GetResourceWebCoreScriptsCacheSize(i)); | 70 return base::StringValue::New(tm->GetResourceWebCoreScriptsCacheSize(i)); |
71 if (column_name == "webCoreScriptsCacheSizeValue") { | 71 if (column_name == "webCoreScriptsCacheSizeValue") { |
72 WebKit::WebCache::ResourceTypeStats resource_stats; | 72 WebKit::WebCache::ResourceTypeStats resource_stats; |
73 tm->GetWebCoreCacheStats(i, &resource_stats); | 73 tm->GetWebCoreCacheStats(i, &resource_stats); |
74 return Value::CreateDoubleValue(resource_stats.scripts.size); | 74 return base::NumberValue::New( |
| 75 static_cast<int>(resource_stats.scripts.size)); |
75 } | 76 } |
76 if (column_name == "webCoreCSSCacheSize") | 77 if (column_name == "webCoreCSSCacheSize") |
77 return Value::CreateStringValue(tm->GetResourceWebCoreCSSCacheSize(i)); | 78 return base::StringValue::New(tm->GetResourceWebCoreCSSCacheSize(i)); |
78 if (column_name == "webCoreCSSCacheSizeValue") { | 79 if (column_name == "webCoreCSSCacheSizeValue") { |
79 WebKit::WebCache::ResourceTypeStats resource_stats; | 80 WebKit::WebCache::ResourceTypeStats resource_stats; |
80 tm->GetWebCoreCacheStats(i, &resource_stats); | 81 tm->GetWebCoreCacheStats(i, &resource_stats); |
81 return Value::CreateDoubleValue(resource_stats.cssStyleSheets.size); | 82 return base::NumberValue::New( |
| 83 static_cast<int>(resource_stats.cssStyleSheets.size)); |
82 } | 84 } |
83 if (column_name == "fps") | 85 if (column_name == "fps") |
84 return Value::CreateStringValue(tm->GetResourceFPS(i)); | 86 return base::StringValue::New(tm->GetResourceFPS(i)); |
85 if (column_name == "fpsValue") { | 87 if (column_name == "fpsValue") { |
86 float fps; | 88 float fps; |
87 tm->GetFPS(i, &fps); | 89 tm->GetFPS(i, &fps); |
88 return Value::CreateDoubleValue(fps); | 90 return base::NumberValue::New(fps); |
89 } | 91 } |
90 if (column_name == "sqliteMemoryUsed") | 92 if (column_name == "sqliteMemoryUsed") |
91 return Value::CreateStringValue(tm->GetResourceSqliteMemoryUsed(i)); | 93 return base::StringValue::New(tm->GetResourceSqliteMemoryUsed(i)); |
92 if (column_name == "sqliteMemoryUsedValue") { | 94 if (column_name == "sqliteMemoryUsedValue") { |
93 size_t sqlite_memory; | 95 size_t sqlite_memory; |
94 tm->GetSqliteMemoryUsedBytes(i, &sqlite_memory); | 96 tm->GetSqliteMemoryUsedBytes(i, &sqlite_memory); |
95 return Value::CreateDoubleValue(sqlite_memory); | 97 return base::NumberValue::New(static_cast<int>(sqlite_memory)); |
96 } | 98 } |
97 if (column_name == "goatsTeleported") | 99 if (column_name == "goatsTeleported") |
98 return Value::CreateStringValue(tm->GetResourceGoatsTeleported(i)); | 100 return base::StringValue::New(tm->GetResourceGoatsTeleported(i)); |
99 if (column_name == "goatsTeleportedValue") | 101 if (column_name == "goatsTeleportedValue") |
100 return Value::CreateIntegerValue(tm->GetGoatsTeleported(i)); | 102 return base::NumberValue::New(tm->GetGoatsTeleported(i)); |
101 if (column_name == "v8MemoryAllocatedSize") | 103 if (column_name == "v8MemoryAllocatedSize") |
102 return Value::CreateStringValue(tm->GetResourceV8MemoryAllocatedSize(i)); | 104 return base::StringValue::New(tm->GetResourceV8MemoryAllocatedSize(i)); |
103 if (column_name == "v8MemoryAllocatedSizeValue") { | 105 if (column_name == "v8MemoryAllocatedSizeValue") { |
104 size_t v8_memory; | 106 size_t v8_memory; |
105 tm->GetV8Memory(i, &v8_memory); | 107 tm->GetV8Memory(i, &v8_memory); |
106 return Value::CreateDoubleValue(v8_memory); | 108 return base::NumberValue::New(static_cast<int>(v8_memory)); |
107 } | 109 } |
108 | 110 |
109 NOTREACHED(); | 111 NOTREACHED(); |
110 return NULL; | 112 return NULL; |
111 } | 113 } |
112 | 114 |
113 static void CreateGroupColumnList(const TaskManagerModel* tm, | 115 static void CreateGroupColumnList(const TaskManagerModel* tm, |
114 const std::string column_name, | 116 const std::string column_name, |
115 const int index, | 117 const int index, |
116 const int length, | 118 const int length, |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 | 191 |
190 TaskManagerHandler::~TaskManagerHandler() { | 192 TaskManagerHandler::~TaskManagerHandler() { |
191 DisableTaskManager(NULL); | 193 DisableTaskManager(NULL); |
192 } | 194 } |
193 | 195 |
194 // TaskManagerHandler, public: ----------------------------------------------- | 196 // TaskManagerHandler, public: ----------------------------------------------- |
195 | 197 |
196 void TaskManagerHandler::OnModelChanged() { | 198 void TaskManagerHandler::OnModelChanged() { |
197 const int count = model_->GroupCount(); | 199 const int count = model_->GroupCount(); |
198 | 200 |
199 base::FundamentalValue start_value(0); | 201 base::NumberValue start_value(0); |
200 base::FundamentalValue length_value(count); | 202 base::NumberValue length_value(count); |
201 base::ListValue tasks_value; | 203 base::ListValue tasks_value; |
202 for (int i = 0; i < count; ++i) | 204 for (int i = 0; i < count; ++i) |
203 tasks_value.Append(CreateTaskGroupValue(model_, i)); | 205 tasks_value.Append(CreateTaskGroupValue(model_, i)); |
204 | 206 |
205 if (is_enabled_) { | 207 if (is_enabled_) { |
206 web_ui_->CallJavascriptFunction("taskChanged", | 208 web_ui_->CallJavascriptFunction("taskChanged", |
207 start_value, length_value, tasks_value); | 209 start_value, length_value, tasks_value); |
208 } | 210 } |
209 } | 211 } |
210 | 212 |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 resource_to_group_table_.insert(it, static_cast<size_t>(length), -1); | 367 resource_to_group_table_.insert(it, static_cast<size_t>(length), -1); |
366 | 368 |
367 for (int i = start; i < start + length; i++) { | 369 for (int i = start; i < start + length; i++) { |
368 const int group_index = model_->GetGroupIndexForResource(i); | 370 const int group_index = model_->GetGroupIndexForResource(i); |
369 resource_to_group_table_[i] = group_index; | 371 resource_to_group_table_[i] = group_index; |
370 } | 372 } |
371 } | 373 } |
372 | 374 |
373 void TaskManagerHandler::OnGroupChanged(const int group_start, | 375 void TaskManagerHandler::OnGroupChanged(const int group_start, |
374 const int group_length) { | 376 const int group_length) { |
375 base::FundamentalValue start_value(group_start); | 377 base::NumberValue start_value(group_start); |
376 base::FundamentalValue length_value(group_length); | 378 base::NumberValue length_value(group_length); |
377 base::ListValue tasks_value; | 379 base::ListValue tasks_value; |
378 | 380 |
379 for (int i = 0; i < group_length; ++i) | 381 for (int i = 0; i < group_length; ++i) |
380 tasks_value.Append(CreateTaskGroupValue(model_, group_start + i)); | 382 tasks_value.Append(CreateTaskGroupValue(model_, group_start + i)); |
381 | 383 |
382 if (is_enabled_) { | 384 if (is_enabled_) { |
383 web_ui_->CallJavascriptFunction("taskChanged", | 385 web_ui_->CallJavascriptFunction("taskChanged", |
384 start_value, length_value, tasks_value); | 386 start_value, length_value, tasks_value); |
385 } | 387 } |
386 } | 388 } |
387 | 389 |
388 void TaskManagerHandler::OnGroupAdded(const int group_start, | 390 void TaskManagerHandler::OnGroupAdded(const int group_start, |
389 const int group_length) { | 391 const int group_length) { |
390 base::FundamentalValue start_value(group_start); | 392 base::NumberValue start_value(group_start); |
391 base::FundamentalValue length_value(group_length); | 393 base::NumberValue length_value(group_length); |
392 base::ListValue tasks_value; | 394 base::ListValue tasks_value; |
393 for (int i = 0; i < group_length; ++i) | 395 for (int i = 0; i < group_length; ++i) |
394 tasks_value.Append(CreateTaskGroupValue(model_, group_start + i)); | 396 tasks_value.Append(CreateTaskGroupValue(model_, group_start + i)); |
395 | 397 |
396 if (is_enabled_) { | 398 if (is_enabled_) { |
397 web_ui_->CallJavascriptFunction("taskAdded", | 399 web_ui_->CallJavascriptFunction("taskAdded", |
398 start_value, length_value, tasks_value); | 400 start_value, length_value, tasks_value); |
399 } | 401 } |
400 } | 402 } |
401 | 403 |
402 void TaskManagerHandler::OnGroupRemoved(const int group_start, | 404 void TaskManagerHandler::OnGroupRemoved(const int group_start, |
403 const int group_length) { | 405 const int group_length) { |
404 base::FundamentalValue start_value(group_start); | 406 base::NumberValue start_value(group_start); |
405 base::FundamentalValue length_value(group_length); | 407 base::NumberValue length_value(group_length); |
406 if (is_enabled_) | 408 if (is_enabled_) |
407 web_ui_->CallJavascriptFunction("taskRemoved", start_value, length_value); | 409 web_ui_->CallJavascriptFunction("taskRemoved", start_value, length_value); |
408 } | 410 } |
OLD | NEW |