blob: 7bff447206626b77d31d6bc4bdfda6a5534558dc [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_PERFORMANCE_MANAGER_TEST_SUPPORT_FAKE_HIGH_EFFICIENCY_MODE_DELEGATE_H_
#define CHROME_BROWSER_PERFORMANCE_MANAGER_TEST_SUPPORT_FAKE_HIGH_EFFICIENCY_MODE_DELEGATE_H_
#include "base/time/time.h"
#include "chrome/browser/performance_manager/public/user_tuning/user_performance_tuning_manager.h"
#include "components/performance_manager/public/user_tuning/prefs.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
namespace performance_manager::user_tuning {
class FakeHighEfficiencyModeDelegate
: public UserPerformanceTuningManager::HighEfficiencyModeDelegate {
public:
// overrides of methods in HighEfficiencyModeDelegate
void ToggleHighEfficiencyMode(prefs::HighEfficiencyModeState state) override;
void SetTimeBeforeDiscard(base::TimeDelta time_before_discard) override;
~FakeHighEfficiencyModeDelegate() override = default;
void ClearLastState();
absl::optional<prefs::HighEfficiencyModeState> GetLastState() const;
absl::optional<base::TimeDelta> GetLastTimeBeforeDiscard() const;
private:
absl::optional<base::TimeDelta> last_time_before_discard_;
absl::optional<prefs::HighEfficiencyModeState> last_state_;
};
} // namespace performance_manager::user_tuning
#endif // CHROME_BROWSER_PERFORMANCE_MANAGER_TEST_SUPPORT_FAKE_HIGH_EFFICIENCY_MODE_DELEGATE_H_