OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/task_management/sampling/task_manager_impl.h" | 5 #include "chrome/browser/task_management/sampling/task_manager_impl.h" |
6 | 6 |
7 #include "base/stl_util.h" | 7 #include "base/stl_util.h" |
8 #include "chrome/browser/task_management/providers/browser_process_task_provider
.h" | 8 #include "chrome/browser/task_management/providers/browser_process_task_provider
.h" |
9 #include "chrome/browser/task_management/providers/child_process_task_provider.h
" | 9 #include "chrome/browser/task_management/providers/child_process_task_provider.h
" |
10 #include "chrome/browser/task_management/providers/web_contents/web_contents_tas
k_provider.h" | 10 #include "chrome/browser/task_management/providers/web_contents/web_contents_tas
k_provider.h" |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 #if defined(OS_WIN) | 115 #if defined(OS_WIN) |
116 const TaskGroup* task_group = GetTaskGroupByTaskId(task_id); | 116 const TaskGroup* task_group = GetTaskGroupByTaskId(task_id); |
117 *current = task_group->user_current_handles(); | 117 *current = task_group->user_current_handles(); |
118 *peak = task_group->user_peak_handles(); | 118 *peak = task_group->user_peak_handles(); |
119 #else | 119 #else |
120 *current = -1; | 120 *current = -1; |
121 *peak = -1; | 121 *peak = -1; |
122 #endif // defined(OS_WIN) | 122 #endif // defined(OS_WIN) |
123 } | 123 } |
124 | 124 |
| 125 bool TaskManagerImpl::IsTaskOnBackgroundedProcess(TaskId task_id) const { |
| 126 return GetTaskGroupByTaskId(task_id)->is_backgrounded(); |
| 127 } |
| 128 |
125 const base::string16& TaskManagerImpl::GetTitle(TaskId task_id) const { | 129 const base::string16& TaskManagerImpl::GetTitle(TaskId task_id) const { |
126 return GetTaskByTaskId(task_id)->title(); | 130 return GetTaskByTaskId(task_id)->title(); |
127 } | 131 } |
128 | 132 |
| 133 const std::string& TaskManagerImpl::GetTaskNameForRappor(TaskId task_id) const { |
| 134 return GetTaskByTaskId(task_id)->rappor_sample_name(); |
| 135 } |
| 136 |
129 base::string16 TaskManagerImpl::GetProfileName(TaskId task_id) const { | 137 base::string16 TaskManagerImpl::GetProfileName(TaskId task_id) const { |
130 return GetTaskByTaskId(task_id)->GetProfileName(); | 138 return GetTaskByTaskId(task_id)->GetProfileName(); |
131 } | 139 } |
132 | 140 |
133 const gfx::ImageSkia& TaskManagerImpl::GetIcon(TaskId task_id) const { | 141 const gfx::ImageSkia& TaskManagerImpl::GetIcon(TaskId task_id) const { |
134 return GetTaskByTaskId(task_id)->icon(); | 142 return GetTaskByTaskId(task_id)->icon(); |
135 } | 143 } |
136 | 144 |
137 const base::ProcessHandle& TaskManagerImpl::GetProcessHandle( | 145 const base::ProcessHandle& TaskManagerImpl::GetProcessHandle( |
138 TaskId task_id) const { | 146 TaskId task_id) const { |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 for (auto& groups_itr : task_groups_by_proc_id_) { | 310 for (auto& groups_itr : task_groups_by_proc_id_) { |
303 groups_itr.second->Refresh(gpu_memory_stats_, | 311 groups_itr.second->Refresh(gpu_memory_stats_, |
304 GetCurrentRefreshTime(), | 312 GetCurrentRefreshTime(), |
305 enabled_resources_flags()); | 313 enabled_resources_flags()); |
306 } | 314 } |
307 | 315 |
308 NotifyObserversOnRefresh(GetTaskIdsList()); | 316 NotifyObserversOnRefresh(GetTaskIdsList()); |
309 } | 317 } |
310 | 318 |
311 void TaskManagerImpl::StartUpdating() { | 319 void TaskManagerImpl::StartUpdating() { |
| 320 if (is_running_) |
| 321 return; |
| 322 |
312 is_running_ = true; | 323 is_running_ = true; |
313 | 324 |
314 for (auto& provider : task_providers_) | 325 for (auto& provider : task_providers_) |
315 provider->SetObserver(this); | 326 provider->SetObserver(this); |
316 | 327 |
317 io_thread_helper_manager_.reset(new IoThreadHelperManager); | 328 io_thread_helper_manager_.reset(new IoThreadHelperManager); |
318 } | 329 } |
319 | 330 |
320 void TaskManagerImpl::StopUpdating() { | 331 void TaskManagerImpl::StopUpdating() { |
| 332 if (!is_running_) |
| 333 return; |
| 334 |
321 is_running_ = false; | 335 is_running_ = false; |
322 | 336 |
323 io_thread_helper_manager_.reset(); | 337 io_thread_helper_manager_.reset(); |
324 | 338 |
325 for (auto& provider : task_providers_) | 339 for (auto& provider : task_providers_) |
326 provider->ClearObserver(); | 340 provider->ClearObserver(); |
327 | 341 |
328 STLDeleteValues(&task_groups_by_proc_id_); | 342 STLDeleteValues(&task_groups_by_proc_id_); |
329 task_groups_by_task_id_.clear(); | 343 task_groups_by_task_id_.clear(); |
330 sorted_task_ids_.clear(); | 344 sorted_task_ids_.clear(); |
(...skipping 20 matching lines...) Expand all Loading... |
351 DCHECK(ContainsKey(task_groups_by_task_id_, task_id)); | 365 DCHECK(ContainsKey(task_groups_by_task_id_, task_id)); |
352 | 366 |
353 return task_groups_by_task_id_.at(task_id); | 367 return task_groups_by_task_id_.at(task_id); |
354 } | 368 } |
355 | 369 |
356 Task* TaskManagerImpl::GetTaskByTaskId(TaskId task_id) const { | 370 Task* TaskManagerImpl::GetTaskByTaskId(TaskId task_id) const { |
357 return GetTaskGroupByTaskId(task_id)->GetTaskById(task_id); | 371 return GetTaskGroupByTaskId(task_id)->GetTaskById(task_id); |
358 } | 372 } |
359 | 373 |
360 } // namespace task_management | 374 } // namespace task_management |
OLD | NEW |