Index: components/omnibox/browser/omnibox_field_trial.cc |
diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc |
index 75527959f1ab1eecb51c8ce7293ebc8eeed92dac..9016b0a9fbb84f90907dc581069511f94038b8e4 100644 |
--- a/components/omnibox/browser/omnibox_field_trial.cc |
+++ b/components/omnibox/browser/omnibox_field_trial.cc |
@@ -45,10 +45,30 @@ std::string DynamicFieldTrialName(int id) { |
return base::StringPrintf("%s%d", kAutocompleteDynamicFieldTrialPrefix, id); |
} |
+void InitializeBucketsFromString(const std::string& bucket_string, |
+ ScoreBuckets* score_buckets) { |
+ // Clear the buckets. |
+ score_buckets->buckets().clear(); |
+ base::StringPairs kv_pairs; |
+ if (base::SplitStringIntoKeyValuePairs(bucket_string, ':', ',', &kv_pairs)) { |
+ for (base::StringPairs::const_iterator it = kv_pairs.begin(); |
+ it != kv_pairs.end(); ++it) { |
+ ScoreBuckets::CountMaxRelevance bucket; |
+ base::StringToDouble(it->first, &bucket.first); |
+ base::StringToInt(it->second, &bucket.second); |
+ score_buckets->buckets().push_back(bucket); |
+ } |
+ std::sort(score_buckets->buckets().begin(), |
+ score_buckets->buckets().end(), |
+ std::greater<ScoreBuckets::CountMaxRelevance>()); |
+ } |
+} |
+ |
void InitializeScoreBuckets(const VariationParams& params, |
const char* relevance_cap_param, |
const char* half_life_param, |
const char* score_buckets_param, |
+ const char* use_decay_factor_param, |
ScoreBuckets* score_buckets) { |
VariationParams::const_iterator it = params.find(relevance_cap_param); |
if (it != params.end()) { |
@@ -57,6 +77,13 @@ void InitializeScoreBuckets(const VariationParams& params, |
score_buckets->set_relevance_cap(relevance_cap); |
} |
+ it = params.find(use_decay_factor_param); |
+ if (it != params.end()) { |
+ int use_decay_factor; |
+ if (base::StringToInt(it->second, &use_decay_factor)) |
+ score_buckets->set_use_decay_factor((use_decay_factor != 0)); |
Peter Kasting
2015/08/27 00:50:44
Nit: Extra parens
Ashok vardhan
2015/08/27 19:09:27
Done.
|
+ } |
+ |
it = params.find(half_life_param); |
if (it != params.end()) { |
int half_life_days; |
@@ -67,20 +94,8 @@ void InitializeScoreBuckets(const VariationParams& params, |
it = params.find(score_buckets_param); |
if (it != params.end()) { |
// The value of the score bucket is a comma-separated list of |
- // {DecayedCount + ":" + MaxRelevance}. |
- base::StringPairs kv_pairs; |
- if (base::SplitStringIntoKeyValuePairs(it->second, ':', ',', &kv_pairs)) { |
- for (base::StringPairs::const_iterator it = kv_pairs.begin(); |
- it != kv_pairs.end(); ++it) { |
- ScoreBuckets::CountMaxRelevance bucket; |
- base::StringToDouble(it->first, &bucket.first); |
- base::StringToInt(it->second, &bucket.second); |
- score_buckets->buckets().push_back(bucket); |
- } |
- std::sort(score_buckets->buckets().begin(), |
- score_buckets->buckets().end(), |
- std::greater<ScoreBuckets::CountMaxRelevance>()); |
- } |
+ // {DecayedCount/DecayedFactor + ":" + MaxRelevance}. |
+ InitializeBucketsFromString(it->second, score_buckets); |
} |
} |
@@ -262,14 +277,33 @@ void OmniboxFieldTrial::GetDemotionsByType( |
} |
} |
+void OmniboxFieldTrial::GetDefaultHUPScoringParams( |
+ HUPScoringParams* scoring_params) { |
+ ScoreBuckets* type_score_buckets = &scoring_params->typed_count_buckets; |
+ type_score_buckets->set_half_life_days(30); |
+ type_score_buckets->set_use_decay_factor(false); |
+ const std::string& typed_count_score_buckets_str = |
+ "1.0:1413,0.97:1390,0.93:1360,0.85:1340,0.72:1320,0.50:1250,0.0:1203"; |
Peter Kasting
2015/08/27 00:50:44
These values are incredibly magic. Can there at l
Ashok vardhan
2015/08/27 19:09:27
Done.
|
+ InitializeBucketsFromString(typed_count_score_buckets_str, |
+ type_score_buckets); |
+ |
+ ScoreBuckets* visit_score_buckets = &scoring_params->visited_count_buckets; |
+ visit_score_buckets->set_half_life_days(30); |
+ visit_score_buckets->set_use_decay_factor(false); |
+ const std::string& visit_count_score_buckets_str = "4.0:790,0.5:590,0.0:100"; |
Peter Kasting
2015/08/27 00:50:44
Same.
Ashok vardhan
2015/08/27 19:09:27
Done.
|
+ InitializeBucketsFromString(visit_count_score_buckets_str, |
+ visit_score_buckets); |
+} |
+ |
void OmniboxFieldTrial::GetExperimentalHUPScoringParams( |
HUPScoringParams* scoring_params) { |
scoring_params->experimental_scoring_enabled = false; |
VariationParams params; |
if (!variations::GetVariationParams(kBundledExperimentFieldTrialName, |
- ¶ms)) |
+ ¶ms)) { |
Peter Kasting
2015/08/27 00:50:44
Nit: Don't add {}
Ashok vardhan
2015/08/27 19:09:27
Done.
|
return; |
+ } |
VariationParams::const_iterator it = params.find(kHUPNewScoringEnabledParam); |
if (it != params.end()) { |
@@ -281,10 +315,12 @@ void OmniboxFieldTrial::GetExperimentalHUPScoringParams( |
InitializeScoreBuckets(params, kHUPNewScoringTypedCountRelevanceCapParam, |
kHUPNewScoringTypedCountHalfLifeTimeParam, |
kHUPNewScoringTypedCountScoreBucketsParam, |
+ kHUPNewScoringTypedCountUseDecayFactorParam, |
&scoring_params->typed_count_buckets); |
InitializeScoreBuckets(params, kHUPNewScoringVisitedCountRelevanceCapParam, |
kHUPNewScoringVisitedCountHalfLifeTimeParam, |
kHUPNewScoringVisitedCountScoreBucketsParam, |
+ kHUPNewScoringVisitedCountUseDecayFactorParam, |
&scoring_params->visited_count_buckets); |
} |
@@ -435,12 +471,16 @@ const char OmniboxFieldTrial::kHUPNewScoringTypedCountHalfLifeTimeParam[] = |
"TypedCountHalfLifeTime"; |
const char OmniboxFieldTrial::kHUPNewScoringTypedCountScoreBucketsParam[] = |
"TypedCountScoreBuckets"; |
+const char OmniboxFieldTrial::kHUPNewScoringTypedCountUseDecayFactorParam[] = |
+ "TypedCountUseDecayFactor"; |
const char OmniboxFieldTrial::kHUPNewScoringVisitedCountRelevanceCapParam[] = |
"VisitedCountRelevanceCap"; |
const char OmniboxFieldTrial::kHUPNewScoringVisitedCountHalfLifeTimeParam[] = |
"VisitedCountHalfLifeTime"; |
const char OmniboxFieldTrial::kHUPNewScoringVisitedCountScoreBucketsParam[] = |
"VisitedCountScoreBuckets"; |
+const char OmniboxFieldTrial::kHUPNewScoringVisitedCountUseDecayFactorParam[] = |
+ "VisitedCountUseDecayFactor"; |
const char OmniboxFieldTrial::kHQPExperimentalScoringEnabledParam[] = |
"HQPExperimentalScoringEnabled"; |