prediction_options.h revision 116680a4aac90f2aa7413d9095a592090648e557
1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_NET_PREDICTION_OPTIONS_H_ 6#define CHROME_BROWSER_NET_PREDICTION_OPTIONS_H_ 7 8namespace user_prefs { 9class PrefRegistrySyncable; 10} 11 12class PrefService; 13class ProfileIOData; 14 15namespace chrome_browser_net { 16 17// Enum describing when to allow network predictions based on connection type. 18// The numerical value is stored in the prefs file, therefore the same enum 19// with the same order must be used by the platform-dependent components. 20// TODO(bnc): implement as per crbug.com/334602. 21// NETWORK_PREDICTION_UNSET means that the old preferences, 22// kNetworkPredictionEnabled and kAllowPrerender, should be observed. 23enum NetworkPredictionOptions { 24 NETWORK_PREDICTION_ALWAYS, 25 NETWORK_PREDICTION_WIFI_ONLY, 26 NETWORK_PREDICTION_NEVER, 27 NETWORK_PREDICTION_UNSET, 28}; 29 30void RegisterPredictionOptionsProfilePrefs( 31 user_prefs::PrefRegistrySyncable* registry); 32 33// The following two global functions determine whether predictive network 34// actions are enabled, based on preferences and network type. 35 36// To be executed on the IO thread only. 37bool CanPredictNetworkActionsIO(ProfileIOData* profile_io_data); 38 39// To be executed on the UI thread only. 40bool CanPredictNetworkActionsUI(PrefService* prefs); 41 42} // namespace chrome_browser_net 43 44#endif // CHROME_BROWSER_NET_PREDICTION_OPTIONS_H_ 45