Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Side by Side Diff: chrome/browser/task_management/sampling/task_manager_impl.cc

Issue 1374283003: Reporting top cpu and memory consumers via rappor on chromeos (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed arbitrary given weights Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 for (auto& groups_itr : task_groups_by_proc_id_) { 306 for (auto& groups_itr : task_groups_by_proc_id_) {
299 groups_itr.second->Refresh(gpu_memory_stats_, 307 groups_itr.second->Refresh(gpu_memory_stats_,
300 GetCurrentRefreshTime(), 308 GetCurrentRefreshTime(),
301 enabled_resources_flags()); 309 enabled_resources_flags());
302 } 310 }
303 311
304 NotifyObserversOnRefresh(GetTaskIdsList()); 312 NotifyObserversOnRefresh(GetTaskIdsList());
305 } 313 }
306 314
307 void TaskManagerImpl::StartUpdating() { 315 void TaskManagerImpl::StartUpdating() {
316 if (is_running_)
317 return;
318
308 is_running_ = true; 319 is_running_ = true;
309 320
310 for (auto& provider : task_providers_) 321 for (auto& provider : task_providers_)
311 provider->SetObserver(this); 322 provider->SetObserver(this);
312 323
313 io_thread_helper_manager_.reset(new IoThreadHelperManager); 324 io_thread_helper_manager_.reset(new IoThreadHelperManager);
314 } 325 }
315 326
316 void TaskManagerImpl::StopUpdating() { 327 void TaskManagerImpl::StopUpdating() {
328 if (!is_running_)
329 return;
330
317 is_running_ = false; 331 is_running_ = false;
318 332
319 io_thread_helper_manager_.reset(); 333 io_thread_helper_manager_.reset();
320 334
321 for (auto& provider : task_providers_) 335 for (auto& provider : task_providers_)
322 provider->ClearObserver(); 336 provider->ClearObserver();
323 337
324 STLDeleteValues(&task_groups_by_proc_id_); 338 STLDeleteValues(&task_groups_by_proc_id_);
325 task_groups_by_task_id_.clear(); 339 task_groups_by_task_id_.clear();
326 sorted_task_ids_.clear(); 340 sorted_task_ids_.clear();
(...skipping 20 matching lines...) Expand all
347 DCHECK(ContainsKey(task_groups_by_task_id_, task_id)); 361 DCHECK(ContainsKey(task_groups_by_task_id_, task_id));
348 362
349 return task_groups_by_task_id_.at(task_id); 363 return task_groups_by_task_id_.at(task_id);
350 } 364 }
351 365
352 Task* TaskManagerImpl::GetTaskByTaskId(TaskId task_id) const { 366 Task* TaskManagerImpl::GetTaskByTaskId(TaskId task_id) const {
353 return GetTaskGroupByTaskId(task_id)->GetTaskById(task_id); 367 return GetTaskGroupByTaskId(task_id)->GetTaskById(task_id);
354 } 368 }
355 369
356 } // namespace task_management 370 } // namespace task_management
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698