// 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_DATA_SAVER_DATA_SAVER_H_ #define CHROME_BROWSER_DATA_SAVER_DATA_SAVER_H_ namespace data_saver { // Overrides the data saver setting when testing. void OverrideIsDataSaverEnabledForTesting(bool flag); // Resets the override flag. void ResetIsDataSaverEnabledForTesting(); // Fetch and cache the Android Data Saver saver setting. void FetchDataSaverOSSettingAsynchronously(); // Returns true if the Android Data Saver option is enabled and the device is on // a metered network. On non-Android OSes, this always return false. Note that // the result returned by this function may be stale. Making OS calls to get the // state of the Data Saver setting can be slow. For this reason, we make the OS // calls happen in a background thread and store the result in a global // variable. Calling IsDataSaverEnabled immediately returns the last cached // value and fires of OS calls in a background thread. If there is no cached // value, this function may lookup the setting synchronously, depending on the // state of the DataSaverSettingBlockWhenUninitialized Finch feature. bool IsDataSaverEnabled(); } // namespace data_saver #endif // CHROME_BROWSER_DATA_SAVER_DATA_SAVER_H_