| 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/task_manager_observer.h" | 5 #include "chrome/browser/task_management/task_manager_observer.h" |
| 6 | 6 |
| 7 #include "chrome/browser/task_management/task_manager_interface.h" | 7 #include "chrome/browser/task_management/task_manager_interface.h" |
| 8 | 8 |
| 9 namespace task_management { | 9 namespace task_management { |
| 10 | 10 |
| 11 TaskManagerObserver::TaskManagerObserver(base::TimeDelta refresh_time, | 11 TaskManagerObserver::TaskManagerObserver(base::TimeDelta refresh_time, |
| 12 int64_t resources_flags) | 12 int64_t resources_flags) |
| 13 : observed_task_manager_(nullptr), | 13 : observed_task_manager_(nullptr), |
| 14 desired_refresh_time_(refresh_time < base::TimeDelta::FromSeconds(1) | 14 desired_refresh_time_(refresh_time < base::TimeDelta::FromSeconds(1) |
| 15 ? base::TimeDelta::FromSeconds(1) | 15 ? base::TimeDelta::FromSeconds(1) |
| 16 : refresh_time), | 16 : refresh_time), |
| 17 desired_resources_flags_(resources_flags) {} | 17 desired_resources_flags_(resources_flags) {} |
| 18 | 18 |
| 19 TaskManagerObserver::~TaskManagerObserver() { | 19 TaskManagerObserver::~TaskManagerObserver() { |
| 20 if (observed_task_manager()) |
| 21 observed_task_manager()->RemoveObserver(this); |
| 20 } | 22 } |
| 21 | 23 |
| 22 void TaskManagerObserver::AddRefreshType(RefreshType type) { | 24 void TaskManagerObserver::AddRefreshType(RefreshType type) { |
| 23 desired_resources_flags_ |= type; | 25 desired_resources_flags_ |= type; |
| 24 | 26 |
| 25 if (observed_task_manager_) | 27 if (observed_task_manager_) |
| 26 observed_task_manager_->RecalculateRefreshFlags(); | 28 observed_task_manager_->RecalculateRefreshFlags(); |
| 27 } | 29 } |
| 28 | 30 |
| 29 void TaskManagerObserver::RemoveRefreshType(RefreshType type) { | 31 void TaskManagerObserver::RemoveRefreshType(RefreshType type) { |
| 30 desired_resources_flags_ &= ~type; | 32 desired_resources_flags_ &= ~type; |
| 31 | 33 |
| 32 if (observed_task_manager_) | 34 if (observed_task_manager_) |
| 33 observed_task_manager_->RecalculateRefreshFlags(); | 35 observed_task_manager_->RecalculateRefreshFlags(); |
| 34 } | 36 } |
| 35 | 37 |
| 38 void TaskManagerObserver::SetRefreshTypesFlags(int64_t flags) { |
| 39 desired_resources_flags_ = flags; |
| 40 |
| 41 if (observed_task_manager_) |
| 42 observed_task_manager_->RecalculateRefreshFlags(); |
| 43 } |
| 36 | 44 |
| 37 } // namespace task_management | 45 } // namespace task_management |
| OLD | NEW |