blob: 4a3900f356363b4f03dfbc6d1e9c17c6f206ab7d [file] [log] [blame]
// 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_manager/task_manager_observer.h"
#include "chrome/browser/task_manager/task_manager_interface.h"
namespace task_manager {
// static
bool TaskManagerObserver::IsResourceRefreshEnabled(RefreshType refresh_type,
int refresh_flags) {
return (refresh_flags & refresh_type) != 0;
}
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_manager