Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / browser / net / prediction_options.h
blob6a2f8df8e9908931215b7b9d8bad729ab8affd36
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.
5 #ifndef CHROME_BROWSER_NET_PREDICTION_OPTIONS_H_
6 #define CHROME_BROWSER_NET_PREDICTION_OPTIONS_H_
8 namespace user_prefs {
9 class PrefRegistrySyncable;
12 class PrefService;
13 class ProfileIOData;
15 namespace chrome_browser_net {
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 enum NetworkPredictionOptions {
21 NETWORK_PREDICTION_ALWAYS,
22 NETWORK_PREDICTION_WIFI_ONLY,
23 NETWORK_PREDICTION_NEVER,
24 NETWORK_PREDICTION_DEFAULT = NETWORK_PREDICTION_WIFI_ONLY,
27 void RegisterPredictionOptionsProfilePrefs(
28 user_prefs::PrefRegistrySyncable* registry);
30 // The following two global functions determine whether prefetching
31 // and prerendering are enabled, based on preferences and network type.
33 // To be executed on the IO thread only.
34 bool CanPrefetchAndPrerenderIO(ProfileIOData* profile_io_data);
36 // To be executed on the UI thread only.
37 bool CanPrefetchAndPrerenderUI(PrefService* prefs);
39 // The following two global functions determine whether TCP preconnect
40 // and DNS preresolution are enabled, based on preferences.
42 // To be executed on the IO thread only.
43 bool CanPreresolveAndPreconnectIO(ProfileIOData* profile_io_data);
45 // To be executed on the UI thread only.
46 bool CanPreresolveAndPreconnectUI(PrefService* prefs);
48 } // namespace chrome_browser_net
50 #endif // CHROME_BROWSER_NET_PREDICTION_OPTIONS_H_