Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1538)

Unified Diff: chrome/browser/net/prediction_options.cc

Issue 443413002: Enable TCP preconnect and DNS preresolve on cellular. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix preresolve and preconnect conditions in AnticipateOmniboxUrl. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/net/prediction_options.cc
diff --git a/chrome/browser/net/prediction_options.cc b/chrome/browser/net/prediction_options.cc
index 509d259235c96050ecd28dc94a15b9732a27d0b8..6bacfcbacb518f04e6355d6fdb03c762ab3bf290 100644
--- a/chrome/browser/net/prediction_options.cc
+++ b/chrome/browser/net/prediction_options.cc
@@ -16,9 +16,9 @@ namespace {
// Since looking up preferences and current network connection are presumably
// both cheap, we do not cache them here.
-bool CanPredictNetworkActions(int NetworkPredictionOptions,
- bool NetworkPredictionEnabled) {
- switch (NetworkPredictionOptions) {
+bool CanPrefetchAndPrerender(int network_prediction_options,
+ bool network_prediction_enabled) {
+ switch (network_prediction_options) {
case chrome_browser_net::NETWORK_PREDICTION_ALWAYS:
return true;
case chrome_browser_net::NETWORK_PREDICTION_WIFI_ONLY:
@@ -27,7 +27,26 @@ bool CanPredictNetworkActions(int NetworkPredictionOptions,
case chrome_browser_net::NETWORK_PREDICTION_NEVER:
return false;
case chrome_browser_net::NETWORK_PREDICTION_UNSET:
- return NetworkPredictionEnabled;
+ return network_prediction_enabled;
+ default:
+ NOTREACHED() << "Unknown kNetworkPredictionOptions value.";
+ return false;
+ }
+}
+
+bool CanPreresolveAndPreconnect(int network_prediction_options,
+ bool network_prediction_enabled) {
+ switch (network_prediction_options) {
+ case chrome_browser_net::NETWORK_PREDICTION_ALWAYS:
+ return true;
+ // DNS preresolution and TCP preconnect are performed even on cellular
+ // networks if the user setting is WIFI_ONLY.
+ case chrome_browser_net::NETWORK_PREDICTION_WIFI_ONLY:
+ return true;
+ case chrome_browser_net::NETWORK_PREDICTION_NEVER:
+ return false;
+ case chrome_browser_net::NETWORK_PREDICTION_UNSET:
+ return network_prediction_enabled;
default:
NOTREACHED() << "Unknown kNetworkPredictionOptions value.";
return false;
@@ -67,19 +86,34 @@ void MigrateNetworkPredictionUserPrefs(PrefService* pref_service) {
}
}
-bool CanPredictNetworkActionsIO(ProfileIOData* profile_io_data) {
+bool CanPrefetchAndPrerenderIO(ProfileIOData* profile_io_data) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
DCHECK(profile_io_data);
+ return CanPrefetchAndPrerender(
+ profile_io_data->network_prediction_options()->GetValue(),
+ profile_io_data->network_prediction_enabled()->GetValue());
+}
+
+bool CanPrefetchAndPrerenderUI(PrefService* prefs) {
+ DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
+ DCHECK(prefs);
+ return CanPrefetchAndPrerender(
+ prefs->GetInteger(prefs::kNetworkPredictionOptions),
+ prefs->GetBoolean(prefs::kNetworkPredictionEnabled));
+}
- return CanPredictNetworkActions(
+bool CanPreresolveAndPreconnectIO(ProfileIOData* profile_io_data) {
+ DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
+ DCHECK(profile_io_data);
+ return CanPreresolveAndPreconnect(
profile_io_data->network_prediction_options()->GetValue(),
profile_io_data->network_prediction_enabled()->GetValue());
}
-bool CanPredictNetworkActionsUI(PrefService* prefs) {
+bool CanPreresolveAndPreconnectUI(PrefService* prefs) {
DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
DCHECK(prefs);
- return CanPredictNetworkActions(
+ return CanPreresolveAndPreconnect(
prefs->GetInteger(prefs::kNetworkPredictionOptions),
prefs->GetBoolean(prefs::kNetworkPredictionEnabled));
}

Powered by Google App Engine
This is Rietveld 408576698