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/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 return Value::CreateIntegerValue(tm->GetGoatsTeleported(i)); | 113 return Value::CreateIntegerValue(tm->GetGoatsTeleported(i)); |
114 if (column_name == "v8MemoryAllocatedSize") | 114 if (column_name == "v8MemoryAllocatedSize") |
115 return Value::CreateStringValue(tm->GetResourceV8MemoryAllocatedSize(i)); | 115 return Value::CreateStringValue(tm->GetResourceV8MemoryAllocatedSize(i)); |
116 if (column_name == "v8MemoryAllocatedSizeValue") { | 116 if (column_name == "v8MemoryAllocatedSizeValue") { |
117 size_t v8_memory; | 117 size_t v8_memory; |
118 tm->GetV8Memory(i, &v8_memory); | 118 tm->GetV8Memory(i, &v8_memory); |
119 return Value::CreateDoubleValue(v8_memory); | 119 return Value::CreateDoubleValue(v8_memory); |
120 } | 120 } |
121 if (column_name == "canInspect") | 121 if (column_name == "canInspect") |
122 return Value::CreateBooleanValue(tm->CanInspect(i)); | 122 return Value::CreateBooleanValue(tm->CanInspect(i)); |
123 if (column_name == "canActivate") | |
124 return Value::CreateBooleanValue(tm->CanActivate(i)); | |
125 | 123 |
126 NOTREACHED(); | 124 NOTREACHED(); |
127 return NULL; | 125 return NULL; |
128 } | 126 } |
129 | 127 |
130 static void CreateGroupColumnList(const TaskManagerModel* tm, | 128 static void CreateGroupColumnList(const TaskManagerModel* tm, |
131 const std::string column_name, | 129 const std::string column_name, |
132 const int index, | 130 const int index, |
133 const int length, | 131 const int length, |
134 DictionaryValue* val) { | 132 DictionaryValue* val) { |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 CreateGroupColumnList(tm, "icon", index, length, val); | 182 CreateGroupColumnList(tm, "icon", index, length, val); |
185 CreateGroupColumnList(tm, "title", index, length, val); | 183 CreateGroupColumnList(tm, "title", index, length, val); |
186 CreateGroupColumnList(tm, "profileName", index, length, val); | 184 CreateGroupColumnList(tm, "profileName", index, length, val); |
187 CreateGroupColumnList(tm, "networkUsage", index, length, val); | 185 CreateGroupColumnList(tm, "networkUsage", index, length, val); |
188 CreateGroupColumnList(tm, "networkUsageValue", index, length, val); | 186 CreateGroupColumnList(tm, "networkUsageValue", index, length, val); |
189 CreateGroupColumnList(tm, "fps", index, length, val); | 187 CreateGroupColumnList(tm, "fps", index, length, val); |
190 CreateGroupColumnList(tm, "fpsValue", index, length, val); | 188 CreateGroupColumnList(tm, "fpsValue", index, length, val); |
191 CreateGroupColumnList(tm, "goatsTeleported", index, length, val); | 189 CreateGroupColumnList(tm, "goatsTeleported", index, length, val); |
192 CreateGroupColumnList(tm, "goatsTeleportedValue", index, length, val); | 190 CreateGroupColumnList(tm, "goatsTeleportedValue", index, length, val); |
193 CreateGroupColumnList(tm, "canInspect", index, length, val); | 191 CreateGroupColumnList(tm, "canInspect", index, length, val); |
194 CreateGroupColumnList(tm, "canActivate", index, length, val); | |
195 | 192 |
196 return val; | 193 return val; |
197 } | 194 } |
198 | 195 |
199 } // namespace | 196 } // namespace |
200 | 197 |
201 TaskManagerHandler::TaskManagerHandler(TaskManager* tm) | 198 TaskManagerHandler::TaskManagerHandler(TaskManager* tm) |
202 : task_manager_(tm), | 199 : task_manager_(tm), |
203 model_(tm->model()), | 200 model_(tm->model()), |
204 is_enabled_(false) { | 201 is_enabled_(false) { |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 void TaskManagerHandler::Init() { | 303 void TaskManagerHandler::Init() { |
307 } | 304 } |
308 | 305 |
309 void TaskManagerHandler::RegisterMessages() { | 306 void TaskManagerHandler::RegisterMessages() { |
310 web_ui_->RegisterMessageCallback("killProcess", | 307 web_ui_->RegisterMessageCallback("killProcess", |
311 base::Bind(&TaskManagerHandler::HandleKillProcess, | 308 base::Bind(&TaskManagerHandler::HandleKillProcess, |
312 base::Unretained(this))); | 309 base::Unretained(this))); |
313 web_ui_->RegisterMessageCallback("inspect", | 310 web_ui_->RegisterMessageCallback("inspect", |
314 base::Bind(&TaskManagerHandler::HandleInspect, | 311 base::Bind(&TaskManagerHandler::HandleInspect, |
315 base::Unretained(this))); | 312 base::Unretained(this))); |
316 web_ui_->RegisterMessageCallback("activatePage", | |
317 base::Bind(&TaskManagerHandler::HandleActivatePage, | |
318 base::Unretained(this))); | |
319 web_ui_->RegisterMessageCallback("openAboutMemory", | 313 web_ui_->RegisterMessageCallback("openAboutMemory", |
320 base::Bind(&TaskManagerHandler::OpenAboutMemory, | 314 base::Bind(&TaskManagerHandler::OpenAboutMemory, |
321 base::Unretained(this))); | 315 base::Unretained(this))); |
322 web_ui_->RegisterMessageCallback("enableTaskManager", | 316 web_ui_->RegisterMessageCallback("enableTaskManager", |
323 base::Bind(&TaskManagerHandler::EnableTaskManager, | 317 base::Bind(&TaskManagerHandler::EnableTaskManager, |
324 base::Unretained(this))); | 318 base::Unretained(this))); |
325 web_ui_->RegisterMessageCallback("disableTaskManager", | 319 web_ui_->RegisterMessageCallback("disableTaskManager", |
326 base::Bind(&TaskManagerHandler::DisableTaskManager, | 320 base::Bind(&TaskManagerHandler::DisableTaskManager, |
327 base::Unretained(this))); | 321 base::Unretained(this))); |
328 } | 322 } |
(...skipping 21 matching lines...) Expand all Loading... |
350 | 344 |
351 int resource_index = model_->GetResourceIndexForGroup(index, 0); | 345 int resource_index = model_->GetResourceIndexForGroup(index, 0); |
352 if (resource_index == -1) | 346 if (resource_index == -1) |
353 continue; | 347 continue; |
354 | 348 |
355 LOG(INFO) << "kill PID:" << model_->GetResourceProcessId(resource_index); | 349 LOG(INFO) << "kill PID:" << model_->GetResourceProcessId(resource_index); |
356 task_manager_->KillProcess(resource_index); | 350 task_manager_->KillProcess(resource_index); |
357 } | 351 } |
358 } | 352 } |
359 | 353 |
360 void TaskManagerHandler::HandleActivatePage(const ListValue* resource_index) { | |
361 for (ListValue::const_iterator i = resource_index->begin(); | |
362 i != resource_index->end(); ++i) { | |
363 int unique_id = parseIndex(*i); | |
364 if (unique_id == -1) | |
365 continue; | |
366 | |
367 for (int resource_index = 0; resource_index < model_->ResourceCount(); | |
368 ++resource_index) { | |
369 if (model_->GetResourceUniqueId(resource_index) == unique_id) { | |
370 task_manager_->ActivateProcess(resource_index); | |
371 break; | |
372 } | |
373 } | |
374 | |
375 break; | |
376 } | |
377 } | |
378 | |
379 void TaskManagerHandler::HandleInspect(const ListValue* resource_index) { | 354 void TaskManagerHandler::HandleInspect(const ListValue* resource_index) { |
380 for (ListValue::const_iterator i = resource_index->begin(); | 355 for (ListValue::const_iterator i = resource_index->begin(); |
381 i != resource_index->end(); ++i) { | 356 i != resource_index->end(); ++i) { |
382 int unique_id = parseIndex(*i); | 357 int unique_id = parseIndex(*i); |
383 if (unique_id == -1) | 358 if (unique_id == -1) |
384 continue; | 359 continue; |
385 | 360 |
386 for (int resource_index = 0; resource_index < model_->ResourceCount(); | 361 for (int resource_index = 0; resource_index < model_->ResourceCount(); |
387 ++resource_index) { | 362 ++resource_index) { |
388 if (model_->GetResourceUniqueId(resource_index) == unique_id) { | 363 if (model_->GetResourceUniqueId(resource_index) == unique_id) { |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
483 } | 458 } |
484 } | 459 } |
485 | 460 |
486 void TaskManagerHandler::OnGroupRemoved(const int group_start, | 461 void TaskManagerHandler::OnGroupRemoved(const int group_start, |
487 const int group_length) { | 462 const int group_length) { |
488 base::FundamentalValue start_value(group_start); | 463 base::FundamentalValue start_value(group_start); |
489 base::FundamentalValue length_value(group_length); | 464 base::FundamentalValue length_value(group_length); |
490 if (is_enabled_ && is_alive()) | 465 if (is_enabled_ && is_alive()) |
491 web_ui_->CallJavascriptFunction("taskRemoved", start_value, length_value); | 466 web_ui_->CallJavascriptFunction("taskRemoved", start_value, length_value); |
492 } | 467 } |
OLD | NEW |