| 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" | |
| 15 #include "content/common/notification_service.h" | |
| 16 #include "content/common/notification_source.h" | |
| 17 #include "third_party/skia/include/core/SkBitmap.h" | 14 #include "third_party/skia/include/core/SkBitmap.h" |
| 18 | 15 |
| 19 namespace { | 16 namespace { |
| 20 | 17 |
| 21 static Value* CreateColumnValue(const TaskManagerModel* tm, | 18 static Value* CreateColumnValue(const TaskManagerModel* tm, |
| 22 const std::string column_name, | 19 const std::string column_name, |
| 23 const int i) { | 20 const int i) { |
| 24 if (column_name == "processId") | 21 if (column_name == "processId") |
| 25 return Value::CreateStringValue(tm->GetResourceProcessId(i)); | 22 return Value::CreateStringValue(tm->GetResourceProcessId(i)); |
| 26 if (column_name == "processIdValue") | 23 if (column_name == "processIdValue") |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 if (group_start == group_end) | 237 if (group_start == group_end) |
| 241 return; | 238 return; |
| 242 else | 239 else |
| 243 group_end--; | 240 group_end--; |
| 244 } | 241 } |
| 245 | 242 |
| 246 OnGroupAdded(group_start, group_end - group_start + 1); | 243 OnGroupAdded(group_start, group_end - group_start + 1); |
| 247 } | 244 } |
| 248 | 245 |
| 249 void TaskManagerHandler::OnItemsRemoved(const int start, const int length) { | 246 void TaskManagerHandler::OnItemsRemoved(const int start, const int length) { |
| 250 // Returns if this is called before updating |resource_to_group_table_|. | |
| 251 if (resource_to_group_table_.size() < static_cast<size_t>(start + length)) | |
| 252 return; | |
| 253 | |
| 254 // Converts from an index of resources to an index of groups. | 247 // Converts from an index of resources to an index of groups. |
| 255 int group_start = resource_to_group_table_[start]; | 248 int group_start = resource_to_group_table_[start]; |
| 256 int group_end = resource_to_group_table_[start + length - 1]; | 249 int group_end = resource_to_group_table_[start + length - 1]; |
| 257 | 250 |
| 258 // First group to remove does not contain all the items in the group. Because | 251 // First group to remove does not contain all the items in the group. Because |
| 259 // the first item to remove and the previous one are in same group. | 252 // the first item to remove and the previous one are in same group. |
| 260 if (start != 0 && group_start == resource_to_group_table_[start - 1]) { | 253 if (start != 0 && group_start == resource_to_group_table_[start - 1]) { |
| 261 OnGroupChanged(group_start, 1); | 254 OnGroupChanged(group_start, 1); |
| 262 if (group_start == group_end) | 255 if (group_start == group_end) |
| 263 return; | 256 return; |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 model_->RemoveObserver(this); | 325 model_->RemoveObserver(this); |
| 333 } | 326 } |
| 334 | 327 |
| 335 void TaskManagerHandler::EnableTaskManager(const ListValue* indexes) { | 328 void TaskManagerHandler::EnableTaskManager(const ListValue* indexes) { |
| 336 if (is_enabled_) | 329 if (is_enabled_) |
| 337 return; | 330 return; |
| 338 | 331 |
| 339 is_enabled_ = true; | 332 is_enabled_ = true; |
| 340 model_->AddObserver(this); | 333 model_->AddObserver(this); |
| 341 model_->StartUpdating(); | 334 model_->StartUpdating(); |
| 342 | |
| 343 NotificationService::current()->Notify( | |
| 344 chrome::NOTIFICATION_TASK_MANAGER_WINDOW_READY, | |
| 345 Source<TaskManagerModel>(model_), | |
| 346 NotificationService::NoDetails()); | |
| 347 } | 335 } |
| 348 | 336 |
| 349 void TaskManagerHandler::OpenAboutMemory(const ListValue* indexes) { | 337 void TaskManagerHandler::OpenAboutMemory(const ListValue* indexes) { |
| 350 task_manager_->OpenAboutMemory(); | 338 task_manager_->OpenAboutMemory(); |
| 351 } | 339 } |
| 352 | 340 |
| 353 // TaskManagerHandler, private: ----------------------------------------------- | 341 // TaskManagerHandler, private: ----------------------------------------------- |
| 354 | 342 |
| 355 void TaskManagerHandler::UpdateResourceGroupTable(int start, int length) { | 343 void TaskManagerHandler::UpdateResourceGroupTable(int start, int length) { |
| 356 if (resource_to_group_table_.size() < static_cast<size_t>(start)) { | 344 if (resource_to_group_table_.size() < static_cast<size_t>(start)) { |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 398 } | 386 } |
| 399 | 387 |
| 400 void TaskManagerHandler::OnGroupRemoved(const int group_start, | 388 void TaskManagerHandler::OnGroupRemoved(const int group_start, |
| 401 const int group_length) { | 389 const int group_length) { |
| 402 FundamentalValue start_value(group_start); | 390 FundamentalValue start_value(group_start); |
| 403 FundamentalValue length_value(group_length); | 391 FundamentalValue length_value(group_length); |
| 404 if (is_enabled_) | 392 if (is_enabled_) |
| 405 web_ui_->CallJavascriptFunction("taskRemoved", start_value, length_value); | 393 web_ui_->CallJavascriptFunction("taskRemoved", start_value, length_value); |
| 406 } | 394 } |
| 407 | 395 |
| OLD | NEW |