// Copyright 2021 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_PRELOADING_PRELOADING_PREFS_H_ #define CHROME_BROWSER_PRELOADING_PRELOADING_PREFS_H_ #include "content/public/browser/preloading.h" namespace user_prefs { class PrefRegistrySyncable; } class PrefService; namespace prefetch { // Enum describing when to allow network predictions. The numerical value is // stored in the prefs file, therefore the same enum with the same order must be // used by the platform-dependent components. enum class NetworkPredictionOptions { … }; // Enum representing possible values of the Preload Pages opt-in state. These // values are persisted to logs. Entries should not be renumbered and numeric // values should never be reused. This is the the sanitized counterpart to // NetworkPredictionOptions, which is persisted in prefs and cannot be modified // arbitrarily. Prefer using PreloadPagesState over NetworkPredictionOptions to // avoid having to deal with deprecated values. // A Java counterpart will be generated for this enum. // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.prefetch.settings enum class PreloadPagesState { … }; // Returns the PreloadPagesState corresponding to the NetworkPredictionOptions // setting persisted in prefs. Note that this will return the pref value // regardless of whether preloading is disabled via Finch. Prefer using // IsSomePreloadingEnabled in most cases. PreloadPagesState GetPreloadPagesState(const PrefService& prefs); // Converts the given PreloadPagesState to a NetworkPredictionOptions and // persist it in prefs. void SetPreloadPagesState(PrefService* prefs, PreloadPagesState state); // Returns PreloadingEligibility:kEligible if preloading is not entirely // disabled. Returns the first blocking reason encountered otherwise. content::PreloadingEligibility IsSomePreloadingEnabled( const PrefService& prefs); void RegisterPredictionOptionsProfilePrefs( user_prefs::PrefRegistrySyncable* registry); } // namespace prefetch #endif // CHROME_BROWSER_PRELOADING_PRELOADING_PREFS_H_