// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/task_management/task_manager_observer.h" #include "chrome/browser/task_management/task_manager_interface.h" namespace task_management { TaskManagerObserver::TaskManagerObserver(base::TimeDelta refresh_time, int64_t resources_flags) : observed_task_manager_(nullptr), desired_refresh_time_(refresh_time < base::TimeDelta::FromSeconds(1) ? base::TimeDelta::FromSeconds(1) : refresh_time), desired_resources_flags_(resources_flags) {} TaskManagerObserver::~TaskManagerObserver() { if (observed_task_manager()) observed_task_manager()->RemoveObserver(this); } void TaskManagerObserver::AddRefreshType(RefreshType type) { desired_resources_flags_ |= type; if (observed_task_manager_) observed_task_manager_->RecalculateRefreshFlags(); } void TaskManagerObserver::RemoveRefreshType(RefreshType type) { desired_resources_flags_ &= ~type; if (observed_task_manager_) observed_task_manager_->RecalculateRefreshFlags(); } void TaskManagerObserver::SetRefreshTypesFlags(int64_t flags) { desired_resources_flags_ = flags; if (observed_task_manager_) observed_task_manager_->RecalculateRefreshFlags(); } } // namespace task_management