// Copyright 2023 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_PUBLIC_USER_TUNING_BATTERY_SAVER_MODE_MANAGER_H_ #define CHROME_BROWSER_PERFORMANCE_MANAGER_PUBLIC_USER_TUNING_BATTERY_SAVER_MODE_MANAGER_H_ #include <memory> #include "base/observer_list.h" #include "base/observer_list_types.h" #include "base/scoped_observation.h" #include "base/time/time.h" #include "components/performance_manager/public/user_tuning/prefs.h" #include "components/prefs/pref_change_registrar.h" class ChromeBrowserMainExtraPartsPerformanceManager; class PrefService; class BatteryDischargeReporterTest; namespace performance_manager::user_tuning { // This singleton is responsible for managing the state of battery saver mode, // as well as the different signals surrounding its toggling. // // It is created and owned by `ChromeBrowserMainExtraPartsPerformanceManager` // and initialized in 2 parts: // - Created in PostCreateThreads (so that UI can start observing it as soon as // the first views are created) and // - Starts to manage the mode when Start() is called in PreMainMessageLoopRun. // // This object lives on the main thread and should be used from it exclusively. class BatterySaverModeManager { … }; } // namespace performance_manager::user_tuning #endif // CHROME_BROWSER_PERFORMANCE_MANAGER_PUBLIC_USER_TUNING_BATTERY_SAVER_MODE_MANAGER_H_