Chromium Code Reviews| 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 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 300 std::vector<int>::iterator it_last = it_first + length - 1; | 300 std::vector<int>::iterator it_last = it_first + length - 1; |
| 301 resource_to_group_table_.erase(it_first, it_last); | 301 resource_to_group_table_.erase(it_first, it_last); |
| 302 | 302 |
| 303 OnGroupRemoved(group_start, group_end - group_start + 1); | 303 OnGroupRemoved(group_start, group_end - group_start + 1); |
| 304 } | 304 } |
| 305 | 305 |
| 306 void TaskManagerHandler::Init() { | 306 void TaskManagerHandler::Init() { |
| 307 } | 307 } |
| 308 | 308 |
| 309 void TaskManagerHandler::RegisterMessages() { | 309 void TaskManagerHandler::RegisterMessages() { |
| 310 web_ui_->RegisterMessageCallback("killProcess", | 310 web_ui_->RegisterMessageCallback("killProcesses", |
| 311 base::Bind(&TaskManagerHandler::HandleKillProcess, | 311 base::Bind(&TaskManagerHandler::HandleKillProcesses, |
| 312 base::Unretained(this))); | 312 base::Unretained(this))); |
| 313 web_ui_->RegisterMessageCallback("inspect", | 313 web_ui_->RegisterMessageCallback("inspect", |
| 314 base::Bind(&TaskManagerHandler::HandleInspect, | 314 base::Bind(&TaskManagerHandler::HandleInspect, |
| 315 base::Unretained(this))); | 315 base::Unretained(this))); |
| 316 web_ui_->RegisterMessageCallback("activatePage", | 316 web_ui_->RegisterMessageCallback("activatePage", |
| 317 base::Bind(&TaskManagerHandler::HandleActivatePage, | 317 base::Bind(&TaskManagerHandler::HandleActivatePage, |
| 318 base::Unretained(this))); | 318 base::Unretained(this))); |
| 319 web_ui_->RegisterMessageCallback("openAboutMemory", | 319 web_ui_->RegisterMessageCallback("openAboutMemory", |
| 320 base::Bind(&TaskManagerHandler::OpenAboutMemory, | 320 base::Bind(&TaskManagerHandler::OpenAboutMemory, |
| 321 base::Unretained(this))); | 321 base::Unretained(this))); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 334 if (value->GetAsString(&string16_index)) { | 334 if (value->GetAsString(&string16_index)) { |
| 335 base::StringToInt(string16_index, &index); | 335 base::StringToInt(string16_index, &index); |
| 336 } else if (value->GetAsDouble(&double_index)) { | 336 } else if (value->GetAsDouble(&double_index)) { |
| 337 index = static_cast<int>(double_index); | 337 index = static_cast<int>(double_index); |
| 338 } else { | 338 } else { |
| 339 value->GetAsInteger(&index); | 339 value->GetAsInteger(&index); |
| 340 } | 340 } |
| 341 return index; | 341 return index; |
| 342 } | 342 } |
| 343 | 343 |
| 344 void TaskManagerHandler::HandleKillProcess(const ListValue* indexes) { | 344 void TaskManagerHandler::HandleKillProcesses(const ListValue* indexes) { |
| 345 for (ListValue::const_iterator i = indexes->begin(); | 345 for (int resource_index = 0; resource_index < model_->ResourceCount(); |
|
James Hawkins
2011/12/13 17:44:22
Is there not a better way to do this? It seems li
yoshiki
2011/12/14 09:06:47
I changed to use unique_id to determine the proces
| |
| 346 i != indexes->end(); i++) { | 346 ++resource_index) { |
| 347 int index = parseIndex(*i); | 347 int resource_pid = model_->GetProcessId(resource_index); |
| 348 if (index == -1) | |
| 349 continue; | |
| 350 | 348 |
| 351 int resource_index = model_->GetResourceIndexForGroup(index, 0); | 349 for (ListValue::const_iterator i = indexes->begin(); i != indexes->end(); |
| 352 if (resource_index == -1) | 350 ++i) { |
| 353 continue; | 351 int pid = parseIndex(*i); |
| 352 if (pid == -1) | |
| 353 continue; | |
| 354 | 354 |
| 355 LOG(INFO) << "kill PID:" << model_->GetResourceProcessId(resource_index); | 355 if (resource_pid == pid) { |
| 356 task_manager_->KillProcess(resource_index); | 356 LOG(INFO) << "kill PID:" << pid; |
|
James Hawkins
2011/12/13 17:44:22
Remove log spam.
yoshiki
2011/12/14 09:06:47
Done.
| |
| 357 task_manager_->KillProcess(resource_index); | |
| 358 break; | |
| 359 } | |
| 360 } | |
| 357 } | 361 } |
| 358 } | 362 } |
| 359 | 363 |
| 360 void TaskManagerHandler::HandleActivatePage(const ListValue* resource_index) { | 364 void TaskManagerHandler::HandleActivatePage(const ListValue* resource_index) { |
| 361 for (ListValue::const_iterator i = resource_index->begin(); | 365 for (ListValue::const_iterator i = resource_index->begin(); |
| 362 i != resource_index->end(); ++i) { | 366 i != resource_index->end(); ++i) { |
| 363 int unique_id = parseIndex(*i); | 367 int unique_id = parseIndex(*i); |
| 364 if (unique_id == -1) | 368 if (unique_id == -1) |
| 365 continue; | 369 continue; |
| 366 | 370 |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 483 } | 487 } |
| 484 } | 488 } |
| 485 | 489 |
| 486 void TaskManagerHandler::OnGroupRemoved(const int group_start, | 490 void TaskManagerHandler::OnGroupRemoved(const int group_start, |
| 487 const int group_length) { | 491 const int group_length) { |
| 488 base::FundamentalValue start_value(group_start); | 492 base::FundamentalValue start_value(group_start); |
| 489 base::FundamentalValue length_value(group_length); | 493 base::FundamentalValue length_value(group_length); |
| 490 if (is_enabled_ && is_alive()) | 494 if (is_enabled_ && is_alive()) |
| 491 web_ui_->CallJavascriptFunction("taskRemoved", start_value, length_value); | 495 web_ui_->CallJavascriptFunction("taskRemoved", start_value, length_value); |
| 492 } | 496 } |
| OLD | NEW |