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

Unified Diff: chrome/browser/predictors/resource_prefetch_common.cc

Issue 2729563002: predictors: Disable URL-based learning by default. (Closed)
Patch Set: Created 3 years, 10 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/predictors/resource_prefetch_common.cc
diff --git a/chrome/browser/predictors/resource_prefetch_common.cc b/chrome/browser/predictors/resource_prefetch_common.cc
index 27ea7933c98834c5ddcc57903fc9775dce60cd82..ccd3139e4d30b17fe8b225ec9201a3960270747e 100644
--- a/chrome/browser/predictors/resource_prefetch_common.cc
+++ b/chrome/browser/predictors/resource_prefetch_common.cc
@@ -7,14 +7,12 @@
#include <string>
#include <tuple>
-#include "base/command_line.h"
-#include "base/metrics/field_trial.h"
+#include "base/feature_list.h"
+#include "base/metrics/field_trial_params.h"
#include "chrome/browser/net/prediction_options.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/sessions/session_tab_helper.h"
-#include "chrome/common/chrome_switches.h"
#include "components/prefs/pref_service.h"
-#include "components/variations/variations_associated_data.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_contents.h"
@@ -26,6 +24,10 @@ const char kModeParamName[] = "mode";
const char kLearningMode[] = "learning";
const char kExternalPrefetchingMode[] = "external-prefetching";
const char kPrefetchingMode[] = "prefetching";
+const char kKeyTypeParamName[] = "key-type";
+const char kUrlKeyType[] = "url";
+const char kHostKeyType[] = "host";
+const char kBothKeyType[] = "both";
namespace {
@@ -61,18 +63,29 @@ bool IsSpeculativeResourcePrefetchingEnabled(
if (!base::FeatureList::IsEnabled(kSpeculativeResourcePrefetchingFeature))
return false;
- std::string mode_value = variations::GetVariationParamValueByFeature(
+ std::string key_type_value = base::GetFieldTrialParamValueByFeature(
Benoit L 2017/03/01 16:04:41 Do we really want URL-only? If not, can we simpli
alexilin 2017/03/01 16:55:56 Done.
+ kSpeculativeResourcePrefetchingFeature, kKeyTypeParamName);
+ if (key_type_value == kUrlKeyType) {
+ config->mode |= ResourcePrefetchPredictorConfig::URL_LEARNING;
+ } else if (key_type_value == kHostKeyType) {
+ config->mode |= ResourcePrefetchPredictorConfig::HOST_LEARNING;
+ } else if (key_type_value == kBothKeyType) {
+ config->mode |= ResourcePrefetchPredictorConfig::URL_LEARNING |
+ ResourcePrefetchPredictorConfig::HOST_LEARNING;
+ } else {
+ // Only host learning by default.
+ config->mode |= ResourcePrefetchPredictorConfig::HOST_LEARNING;
+ }
+
+ std::string mode_value = base::GetFieldTrialParamValueByFeature(
kSpeculativeResourcePrefetchingFeature, kModeParamName);
if (mode_value == kLearningMode) {
- config->mode |= ResourcePrefetchPredictorConfig::LEARNING;
return true;
} else if (mode_value == kExternalPrefetchingMode) {
- config->mode |= ResourcePrefetchPredictorConfig::LEARNING |
- ResourcePrefetchPredictorConfig::PREFETCHING_FOR_EXTERNAL;
+ config->mode |= ResourcePrefetchPredictorConfig::PREFETCHING_FOR_EXTERNAL;
return true;
} else if (mode_value == kPrefetchingMode) {
- config->mode |= ResourcePrefetchPredictorConfig::LEARNING |
- ResourcePrefetchPredictorConfig::PREFETCHING_FOR_EXTERNAL |
+ config->mode |= ResourcePrefetchPredictorConfig::PREFETCHING_FOR_EXTERNAL |
ResourcePrefetchPredictorConfig::PREFETCHING_FOR_NAVIGATION;
return true;
}
@@ -135,7 +148,15 @@ ResourcePrefetchPredictorConfig::~ResourcePrefetchPredictorConfig() {
}
bool ResourcePrefetchPredictorConfig::IsLearningEnabled() const {
- return (mode & LEARNING) > 0;
+ return IsURLLearningEnabled() || IsHostLearningEnabled();
+}
+
+bool ResourcePrefetchPredictorConfig::IsURLLearningEnabled() const {
+ return (mode & URL_LEARNING) > 0;
+}
+
+bool ResourcePrefetchPredictorConfig::IsHostLearningEnabled() const {
+ return (mode & HOST_LEARNING) > 0;
}
bool ResourcePrefetchPredictorConfig::IsPrefetchingEnabledForSomeOrigin(

Powered by Google App Engine
This is Rietveld 408576698