| 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_manager/task_manager_interface.h" | 5 #include "chrome/browser/task_manager/task_manager_interface.h" |
| 6 | 6 |
| 7 #include "chrome/browser/browser_process.h" | 7 #include "chrome/browser/browser_process.h" |
| 8 #include "chrome/browser/task_manager/sampling/task_manager_impl.h" | 8 #include "chrome/browser/task_manager/sampling/task_manager_impl.h" |
| 9 #include "chrome/browser/task_manager/sampling/task_manager_io_thread_helper.h" | 9 #include "chrome/browser/task_manager/sampling/task_manager_io_thread_helper.h" |
| 10 #include "chrome/common/chrome_switches.h" | 10 #include "chrome/common/chrome_switches.h" |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 ScheduleRefresh(observer->desired_refresh_time()); | 69 ScheduleRefresh(observer->desired_refresh_time()); |
| 70 } | 70 } |
| 71 | 71 |
| 72 void TaskManagerInterface::RemoveObserver(TaskManagerObserver* observer) { | 72 void TaskManagerInterface::RemoveObserver(TaskManagerObserver* observer) { |
| 73 observers_.RemoveObserver(observer); | 73 observers_.RemoveObserver(observer); |
| 74 observer->observed_task_manager_ = nullptr; | 74 observer->observed_task_manager_ = nullptr; |
| 75 | 75 |
| 76 // Recalculate the minimum refresh rate and the enabled resource flags. | 76 // Recalculate the minimum refresh rate and the enabled resource flags. |
| 77 int64_t flags = 0; | 77 int64_t flags = 0; |
| 78 base::TimeDelta min_time = base::TimeDelta::Max(); | 78 base::TimeDelta min_time = base::TimeDelta::Max(); |
| 79 base::ObserverList<TaskManagerObserver>::Iterator itr(&observers_); | 79 for (auto& observer : observers_) { |
| 80 while (TaskManagerObserver* obs = itr.GetNext()) { | 80 if (observer.desired_refresh_time() < min_time) |
| 81 if (obs->desired_refresh_time() < min_time) | 81 min_time = observer.desired_refresh_time(); |
| 82 min_time = obs->desired_refresh_time(); | |
| 83 | 82 |
| 84 flags |= obs->desired_resources_flags(); | 83 flags |= observer.desired_resources_flags(); |
| 85 } | 84 } |
| 86 | 85 |
| 87 if (min_time == base::TimeDelta::Max()) { | 86 if (min_time == base::TimeDelta::Max()) { |
| 88 // This is the last observer to be removed. Stop updating. | 87 // This is the last observer to be removed. Stop updating. |
| 89 SetEnabledResourceFlags(0); | 88 SetEnabledResourceFlags(0); |
| 90 refresh_timer_->Stop(); | 89 refresh_timer_->Stop(); |
| 91 StopUpdating(); | 90 StopUpdating(); |
| 92 } else { | 91 } else { |
| 93 SetEnabledResourceFlags(flags); | 92 SetEnabledResourceFlags(flags); |
| 94 ScheduleRefresh(min_time); | 93 ScheduleRefresh(min_time); |
| 95 } | 94 } |
| 96 } | 95 } |
| 97 | 96 |
| 98 void TaskManagerInterface::RecalculateRefreshFlags() { | 97 void TaskManagerInterface::RecalculateRefreshFlags() { |
| 99 int64_t flags = 0; | 98 int64_t flags = 0; |
| 100 base::ObserverList<TaskManagerObserver>::Iterator itr(&observers_); | 99 for (auto& observer : observers_) |
| 101 while (TaskManagerObserver* obs = itr.GetNext()) | 100 flags |= observer.desired_resources_flags(); |
| 102 flags |= obs->desired_resources_flags(); | |
| 103 | 101 |
| 104 SetEnabledResourceFlags(flags); | 102 SetEnabledResourceFlags(flags); |
| 105 } | 103 } |
| 106 | 104 |
| 107 bool TaskManagerInterface::IsResourceRefreshEnabled(RefreshType type) const { | 105 bool TaskManagerInterface::IsResourceRefreshEnabled(RefreshType type) const { |
| 108 return (enabled_resources_flags_ & type) != 0; | 106 return (enabled_resources_flags_ & type) != 0; |
| 109 } | 107 } |
| 110 | 108 |
| 111 TaskManagerInterface::TaskManagerInterface() | 109 TaskManagerInterface::TaskManagerInterface() |
| 112 : refresh_timer_(new base::Timer(true, true)), | 110 : refresh_timer_(new base::Timer(true, true)), |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 } | 154 } |
| 157 | 155 |
| 158 void TaskManagerInterface::ScheduleRefresh(base::TimeDelta refresh_time) { | 156 void TaskManagerInterface::ScheduleRefresh(base::TimeDelta refresh_time) { |
| 159 refresh_timer_->Start(FROM_HERE, | 157 refresh_timer_->Start(FROM_HERE, |
| 160 refresh_time, | 158 refresh_time, |
| 161 base::Bind(&TaskManagerInterface::Refresh, | 159 base::Bind(&TaskManagerInterface::Refresh, |
| 162 base::Unretained(this))); | 160 base::Unretained(this))); |
| 163 } | 161 } |
| 164 | 162 |
| 165 } // namespace task_manager | 163 } // namespace task_manager |
| OLD | NEW |