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

Side by Side Diff: chrome/browser/autocomplete/autocomplete_field_trial.cc

Issue 11421139: Omnibox: Create Field Trial for HQP to Ignore Mid-Word Matches (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Peter's comments. Created 8 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/autocomplete/autocomplete_field_trial.h" 5 #include "chrome/browser/autocomplete/autocomplete_field_trial.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/metrics/field_trial.h" 9 #include "base/metrics/field_trial.h"
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
11 #include "chrome/common/metrics/variations/variation_ids.h" 11 #include "chrome/common/metrics/variations/variation_ids.h"
12 #include "chrome/common/metrics/variations/variations_util.h" 12 #include "chrome/common/metrics/variations/variations_util.h"
13 13
14 namespace { 14 namespace {
15 15
16 // Field trial names. 16 // Field trial names.
17 static const char kDisallowInlineHQPFieldTrialName[] = 17 static const char kDisallowInlineHQPFieldTrialName[] =
18 "OmniboxDisallowInlineHQP"; 18 "OmniboxDisallowInlineHQP";
19 // Because we regularly change the name of the suggest field trial in 19 // Because we regularly change the name of the suggest field trial in
20 // order to shuffle users among groups, we use the date the current trial 20 // order to shuffle users among groups, we use the date the current trial
21 // was created as part of the name. 21 // was created as part of the name.
22 static const char kSuggestFieldTrialStarted2012Q4Name[] = 22 static const char kSuggestFieldTrialStarted2012Q4Name[] =
23 "OmniboxSearchSuggestTrialStarted2012Q4"; 23 "OmniboxSearchSuggestTrialStarted2012Q4";
24 static const char kHQPNewScoringFieldTrialName[] = "OmniboxHQPNewScoring"; 24 static const char kHQPNewScoringFieldTrialName[] = "OmniboxHQPNewScoring";
25 static const char kHUPCullRedirectsFieldTrialName[] = "OmniboxHUPCullRedirects"; 25 static const char kHUPCullRedirectsFieldTrialName[] = "OmniboxHUPCullRedirects";
26 static const char kHUPCreateShorterMatchFieldTrialName[] = 26 static const char kHUPCreateShorterMatchFieldTrialName[] =
27 "OmniboxHUPCreateShorterMatch"; 27 "OmniboxHUPCreateShorterMatch";
28 static const char kHQPReplaceHUPScoringFieldTrialName[] = 28 static const char kHQPReplaceHUPScoringFieldTrialName[] =
29 "OmniboxHQPReplaceHUPNumComponentsFix"; 29 "OmniboxHQPReplaceHUPNumComponentsFix";
30 static const char kHQPOnlyCountMatchesAtWordBoundariesFieldTrialName[] =
31 "OmniboxHQPOnlyCountMatchesAtWordBoundaries";
30 32
31 // Field trial experiment probabilities. 33 // Field trial experiment probabilities.
32 34
33 // For inline History Quick Provider field trial, put 0% ( = 0/100 ) 35 // For inline History Quick Provider field trial, put 0% ( = 0/100 )
34 // of the users in the disallow-inline experiment group. 36 // of the users in the disallow-inline experiment group.
35 const base::FieldTrial::Probability kDisallowInlineHQPFieldTrialDivisor = 100; 37 const base::FieldTrial::Probability kDisallowInlineHQPFieldTrialDivisor = 100;
36 const base::FieldTrial::Probability 38 const base::FieldTrial::Probability
37 kDisallowInlineHQPFieldTrialExperimentFraction = 0; 39 kDisallowInlineHQPFieldTrialExperimentFraction = 0;
38 40
39 // For the search suggestion field trial, divide the people in the 41 // For the search suggestion field trial, divide the people in the
(...skipping 27 matching lines...) Expand all
67 69
68 // For the field trial that removes searching/scoring URLs from 70 // For the field trial that removes searching/scoring URLs from
69 // HistoryURL provider and adds a HistoryURL-provider-like scoring 71 // HistoryURL provider and adds a HistoryURL-provider-like scoring
70 // mode to HistoryQuick provider, put 25% ( = 25/100 ) of the users in 72 // mode to HistoryQuick provider, put 25% ( = 25/100 ) of the users in
71 // the experiment group. 73 // the experiment group.
72 const base::FieldTrial::Probability 74 const base::FieldTrial::Probability
73 kHQPReplaceHUPScoringFieldTrialDivisor = 100; 75 kHQPReplaceHUPScoringFieldTrialDivisor = 100;
74 const base::FieldTrial::Probability 76 const base::FieldTrial::Probability
75 kHQPReplaceHUPScoringFieldTrialExperimentFraction = 25; 77 kHQPReplaceHUPScoringFieldTrialExperimentFraction = 25;
76 78
79 // For the field trial that ignores all mid-term matches in HistoryQuick
80 // provider, put 25% ( = 25/100 ) of the users in the experiment group.
81 const base::FieldTrial::Probability
82 kHQPOnlyCountMatchesAtWordBoundariesFieldTrialDivisor = 100;
83 const base::FieldTrial::Probability
84 kHQPOnlyCountMatchesAtWordBoundariesFieldTrialExperimentFraction = 25;
85
77 86
78 // Field trial IDs. 87 // Field trial IDs.
79 // Though they are not literally "const", they are set only once, in 88 // Though they are not literally "const", they are set only once, in
80 // Activate() below. 89 // Activate() below.
81 90
82 // Field trial ID for the disallow-inline History Quick Provider 91 // Field trial ID for the disallow-inline History Quick Provider
83 // experiment group. 92 // experiment group.
84 int disallow_inline_hqp_experiment_group = 0; 93 int disallow_inline_hqp_experiment_group = 0;
85 94
86 // Field trial ID for the History Quick Provider new scoring experiment group. 95 // Field trial ID for the History Quick Provider new scoring experiment group.
87 int hqp_new_scoring_experiment_group = 0; 96 int hqp_new_scoring_experiment_group = 0;
88 97
89 // Field trial ID for the HistoryURL provider cull redirects experiment group. 98 // Field trial ID for the HistoryURL provider cull redirects experiment group.
90 int hup_dont_cull_redirects_experiment_group = 0; 99 int hup_dont_cull_redirects_experiment_group = 0;
91 100
92 // Field trial ID for the HistoryURL provider create shorter match 101 // Field trial ID for the HistoryURL provider create shorter match
93 // experiment group. 102 // experiment group.
94 int hup_dont_create_shorter_match_experiment_group = 0; 103 int hup_dont_create_shorter_match_experiment_group = 0;
95 104
96 // Field trial ID for the HistoryQuick provider replaces HistoryURL provider 105 // Field trial ID for the HistoryQuick provider replaces HistoryURL provider
97 // experiment group. 106 // experiment group.
98 int hqp_replace_hup_scoring_experiment_group = 0; 107 int hqp_replace_hup_scoring_experiment_group = 0;
99 108
109 // Field trial ID for the HistoryQuick provider only count matches at
110 // word boundaries experiment group.
111 int hqp_only_count_matches_at_word_boundaries_experiment_group = 0;
112
100 } 113 }
101 114
102 115
103 void AutocompleteFieldTrial::Activate() { 116 void AutocompleteFieldTrial::Activate() {
104 // Create inline History Quick Provider field trial. 117 // Create inline History Quick Provider field trial.
105 // Make it expire on November 8, 2012. 118 // Make it expire on November 8, 2012.
106 scoped_refptr<base::FieldTrial> trial( 119 scoped_refptr<base::FieldTrial> trial(
107 base::FieldTrialList::FactoryGetFieldTrial( 120 base::FieldTrialList::FactoryGetFieldTrial(
108 kDisallowInlineHQPFieldTrialName, kDisallowInlineHQPFieldTrialDivisor, 121 kDisallowInlineHQPFieldTrialName, kDisallowInlineHQPFieldTrialDivisor,
109 "Standard", 2012, 11, 8, NULL)); 122 "Standard", 2012, 11, 8, NULL));
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 // Create the field trial that makes HistoryQuick provider score 197 // Create the field trial that makes HistoryQuick provider score
185 // some results like HistoryURL provider and simultaneously disable 198 // some results like HistoryURL provider and simultaneously disable
186 // HistoryURL provider from searching the URL database. Make it 199 // HistoryURL provider from searching the URL database. Make it
187 // expire on June 23, 2013. 200 // expire on June 23, 2013.
188 trial = base::FieldTrialList::FactoryGetFieldTrial( 201 trial = base::FieldTrialList::FactoryGetFieldTrial(
189 kHQPReplaceHUPScoringFieldTrialName, kHQPReplaceHUPScoringFieldTrialDivisor, 202 kHQPReplaceHUPScoringFieldTrialName, kHQPReplaceHUPScoringFieldTrialDivisor,
190 "Standard", 2013, 6, 23, NULL); 203 "Standard", 2013, 6, 23, NULL);
191 trial->UseOneTimeRandomization(); 204 trial->UseOneTimeRandomization();
192 hqp_replace_hup_scoring_experiment_group = trial->AppendGroup("HQPReplaceHUP", 205 hqp_replace_hup_scoring_experiment_group = trial->AppendGroup("HQPReplaceHUP",
193 kHQPReplaceHUPScoringFieldTrialExperimentFraction); 206 kHQPReplaceHUPScoringFieldTrialExperimentFraction);
207
208 // Create the field trial that makes HistoryQuick provider score
209 // ignore all matches that happen in the middle of a word. Make it
210 // expire on June 23, 2013.
211 trial = base::FieldTrialList::FactoryGetFieldTrial(
212 kHQPOnlyCountMatchesAtWordBoundariesFieldTrialName,
213 kHQPOnlyCountMatchesAtWordBoundariesFieldTrialDivisor,
214 "Standard", 2013, 6, 23, NULL);
215 trial->UseOneTimeRandomization();
216 hqp_only_count_matches_at_word_boundaries_experiment_group =
217 trial->AppendGroup("HQPOnlyCountMatchesAtWordBoundaries",
218 kHQPOnlyCountMatchesAtWordBoundariesFieldTrialExperimentFraction);
194 } 219 }
195 220
196 bool AutocompleteFieldTrial::InDisallowInlineHQPFieldTrial() { 221 bool AutocompleteFieldTrial::InDisallowInlineHQPFieldTrial() {
197 return base::FieldTrialList::TrialExists(kDisallowInlineHQPFieldTrialName); 222 return base::FieldTrialList::TrialExists(kDisallowInlineHQPFieldTrialName);
198 } 223 }
199 224
200 bool AutocompleteFieldTrial::InDisallowInlineHQPFieldTrialExperimentGroup() { 225 bool AutocompleteFieldTrial::InDisallowInlineHQPFieldTrialExperimentGroup() {
201 if (!base::FieldTrialList::TrialExists(kDisallowInlineHQPFieldTrialName)) 226 if (!base::FieldTrialList::TrialExists(kDisallowInlineHQPFieldTrialName))
202 return false; 227 return false;
203 228
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 282
258 bool AutocompleteFieldTrial::InHQPReplaceHUPScoringFieldTrialExperimentGroup() { 283 bool AutocompleteFieldTrial::InHQPReplaceHUPScoringFieldTrialExperimentGroup() {
259 if (!InHQPReplaceHUPScoringFieldTrial()) 284 if (!InHQPReplaceHUPScoringFieldTrial())
260 return false; 285 return false;
261 286
262 // Return true if we're in the experiment group. 287 // Return true if we're in the experiment group.
263 const int group = base::FieldTrialList::FindValue( 288 const int group = base::FieldTrialList::FindValue(
264 kHQPReplaceHUPScoringFieldTrialName); 289 kHQPReplaceHUPScoringFieldTrialName);
265 return group == hqp_replace_hup_scoring_experiment_group; 290 return group == hqp_replace_hup_scoring_experiment_group;
266 } 291 }
292
293 bool AutocompleteFieldTrial::InHQPOnlyCountMatchesAtWordBoundariesFieldTrial() {
294 return base::FieldTrialList::TrialExists(
295 kHQPOnlyCountMatchesAtWordBoundariesFieldTrialName);
296 }
297
298 bool AutocompleteFieldTrial::
299 InHQPOnlyCountMatchesAtWordBoundariesFieldTrialExperimentGroup() {
300 if (!InHQPOnlyCountMatchesAtWordBoundariesFieldTrial())
301 return false;
302
303 // Return true if we're in the experiment group.
304 const int group = base::FieldTrialList::FindValue(
305 kHQPOnlyCountMatchesAtWordBoundariesFieldTrialName);
306 return group == hqp_only_count_matches_at_word_boundaries_experiment_group;
307 }
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_field_trial.h ('k') | chrome/browser/history/scored_history_match.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698