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 3 // found in the LICENSE file. 4 5 #include "chrome/browser/task_manager/task_manager_observer.h" 6 7 #include "chrome/browser/task_manager/task_manager_interface.h" 8 9 namespace task_manager { 10 11 // static IsResourceRefreshEnabled(RefreshType refresh_type,int refresh_flags)12bool TaskManagerObserver::IsResourceRefreshEnabled(RefreshType refresh_type, 13 int refresh_flags) { 14 return (refresh_flags & refresh_type) != 0; 15 } 16 TaskManagerObserver(base::TimeDelta refresh_time,int64_t resources_flags)17TaskManagerObserver::TaskManagerObserver(base::TimeDelta refresh_time, 18 int64_t resources_flags) 19 : observed_task_manager_(nullptr), 20 desired_refresh_time_(refresh_time < base::TimeDelta::FromSeconds(1) 21 ? base::TimeDelta::FromSeconds(1) 22 : refresh_time), 23 desired_resources_flags_(resources_flags) {} 24 ~TaskManagerObserver()25TaskManagerObserver::~TaskManagerObserver() { 26 if (observed_task_manager()) 27 observed_task_manager()->RemoveObserver(this); 28 } 29 AddRefreshType(RefreshType type)30void TaskManagerObserver::AddRefreshType(RefreshType type) { 31 desired_resources_flags_ |= type; 32 33 if (observed_task_manager_) 34 observed_task_manager_->RecalculateRefreshFlags(); 35 } 36 RemoveRefreshType(RefreshType type)37void TaskManagerObserver::RemoveRefreshType(RefreshType type) { 38 desired_resources_flags_ &= ~type; 39 40 if (observed_task_manager_) 41 observed_task_manager_->RecalculateRefreshFlags(); 42 } 43 SetRefreshTypesFlags(int64_t flags)44void TaskManagerObserver::SetRefreshTypesFlags(int64_t flags) { 45 desired_resources_flags_ = flags; 46 47 if (observed_task_manager_) 48 observed_task_manager_->RecalculateRefreshFlags(); 49 } 50 51 } // namespace task_manager 52