OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 "components/omnibox/omnibox_field_trial.h" | 5 #include "components/omnibox/omnibox_field_trial.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 kBundledExperimentFieldTrialName, | 329 kBundledExperimentFieldTrialName, |
330 kAddUWYTMatchEvenIfPromotedURLsRule) == "true"; | 330 kAddUWYTMatchEvenIfPromotedURLsRule) == "true"; |
331 } | 331 } |
332 | 332 |
333 bool OmniboxFieldTrial::DisplayHintTextWhenPossible() { | 333 bool OmniboxFieldTrial::DisplayHintTextWhenPossible() { |
334 return variations::GetVariationParamValue( | 334 return variations::GetVariationParamValue( |
335 kBundledExperimentFieldTrialName, | 335 kBundledExperimentFieldTrialName, |
336 kDisplayHintTextWhenPossibleRule) == "true"; | 336 kDisplayHintTextWhenPossibleRule) == "true"; |
337 } | 337 } |
338 | 338 |
| 339 bool OmniboxFieldTrial::DisableResultsCaching() { |
| 340 return variations::GetVariationParamValue( |
| 341 kBundledExperimentFieldTrialName, |
| 342 kDisableResultsCachingRule) == "true"; |
| 343 } |
| 344 |
| 345 void OmniboxFieldTrial::GetSuggestPollingStrategy(bool* from_last_keystroke, |
| 346 int* polling_delay_ms) { |
| 347 *from_last_keystroke = variations::GetVariationParamValue( |
| 348 kBundledExperimentFieldTrialName, |
| 349 kMeasureSuggestPollingDelayFromLastKeystrokeRule) == "true"; |
| 350 |
| 351 const std::string& polling_delay_string = variations::GetVariationParamValue( |
| 352 kBundledExperimentFieldTrialName, |
| 353 kSuggestPollingDelayMsRule); |
| 354 if (polling_delay_string.empty() || |
| 355 !base::StringToInt(polling_delay_string, polling_delay_ms) || |
| 356 (*polling_delay_ms <= 0)) { |
| 357 *polling_delay_ms = kDefaultMinimumTimeBetweenSuggestQueriesMs; |
| 358 } |
| 359 } |
| 360 |
339 const char OmniboxFieldTrial::kBundledExperimentFieldTrialName[] = | 361 const char OmniboxFieldTrial::kBundledExperimentFieldTrialName[] = |
340 "OmniboxBundledExperimentV1"; | 362 "OmniboxBundledExperimentV1"; |
341 const char OmniboxFieldTrial::kShortcutsScoringMaxRelevanceRule[] = | 363 const char OmniboxFieldTrial::kShortcutsScoringMaxRelevanceRule[] = |
342 "ShortcutsScoringMaxRelevance"; | 364 "ShortcutsScoringMaxRelevance"; |
343 const char OmniboxFieldTrial::kSearchHistoryRule[] = "SearchHistory"; | 365 const char OmniboxFieldTrial::kSearchHistoryRule[] = "SearchHistory"; |
344 const char OmniboxFieldTrial::kDemoteByTypeRule[] = "DemoteByType"; | 366 const char OmniboxFieldTrial::kDemoteByTypeRule[] = "DemoteByType"; |
345 const char OmniboxFieldTrial::kHQPBookmarkValueRule[] = | 367 const char OmniboxFieldTrial::kHQPBookmarkValueRule[] = |
346 "HQPBookmarkValue"; | 368 "HQPBookmarkValue"; |
347 const char OmniboxFieldTrial::kHQPAllowMatchInTLDRule[] = "HQPAllowMatchInTLD"; | 369 const char OmniboxFieldTrial::kHQPAllowMatchInTLDRule[] = "HQPAllowMatchInTLD"; |
348 const char OmniboxFieldTrial::kHQPAllowMatchInSchemeRule[] = | 370 const char OmniboxFieldTrial::kHQPAllowMatchInSchemeRule[] = |
349 "HQPAllowMatchInScheme"; | 371 "HQPAllowMatchInScheme"; |
350 const char OmniboxFieldTrial::kZeroSuggestRule[] = "ZeroSuggest"; | 372 const char OmniboxFieldTrial::kZeroSuggestRule[] = "ZeroSuggest"; |
351 const char OmniboxFieldTrial::kZeroSuggestVariantRule[] = "ZeroSuggestVariant"; | 373 const char OmniboxFieldTrial::kZeroSuggestVariantRule[] = "ZeroSuggestVariant"; |
352 const char OmniboxFieldTrial::kDisableInliningRule[] = "DisableInlining"; | 374 const char OmniboxFieldTrial::kDisableInliningRule[] = "DisableInlining"; |
353 const char OmniboxFieldTrial::kAnswersInSuggestRule[] = "AnswersInSuggest"; | 375 const char OmniboxFieldTrial::kAnswersInSuggestRule[] = "AnswersInSuggest"; |
354 const char OmniboxFieldTrial::kAddUWYTMatchEvenIfPromotedURLsRule[] = | 376 const char OmniboxFieldTrial::kAddUWYTMatchEvenIfPromotedURLsRule[] = |
355 "AddUWYTMatchEvenIfPromotedURLs"; | 377 "AddUWYTMatchEvenIfPromotedURLs"; |
356 const char OmniboxFieldTrial::kDisplayHintTextWhenPossibleRule[] = | 378 const char OmniboxFieldTrial::kDisplayHintTextWhenPossibleRule[] = |
357 "DisplayHintTextWhenPossible"; | 379 "DisplayHintTextWhenPossible"; |
| 380 const char OmniboxFieldTrial::kDisableResultsCachingRule[] = |
| 381 "DisableResultsCaching"; |
| 382 const char |
| 383 OmniboxFieldTrial::kMeasureSuggestPollingDelayFromLastKeystrokeRule[] = |
| 384 "MeasureSuggestPollingDelayFromLastKeystroke"; |
| 385 const char OmniboxFieldTrial::kSuggestPollingDelayMsRule[] = |
| 386 "SuggestPollingDelayMs"; |
358 | 387 |
359 const char OmniboxFieldTrial::kHUPNewScoringEnabledParam[] = | 388 const char OmniboxFieldTrial::kHUPNewScoringEnabledParam[] = |
360 "HUPExperimentalScoringEnabled"; | 389 "HUPExperimentalScoringEnabled"; |
361 const char OmniboxFieldTrial::kHUPNewScoringTypedCountRelevanceCapParam[] = | 390 const char OmniboxFieldTrial::kHUPNewScoringTypedCountRelevanceCapParam[] = |
362 "TypedCountRelevanceCap"; | 391 "TypedCountRelevanceCap"; |
363 const char OmniboxFieldTrial::kHUPNewScoringTypedCountHalfLifeTimeParam[] = | 392 const char OmniboxFieldTrial::kHUPNewScoringTypedCountHalfLifeTimeParam[] = |
364 "TypedCountHalfLifeTime"; | 393 "TypedCountHalfLifeTime"; |
365 const char OmniboxFieldTrial::kHUPNewScoringTypedCountScoreBucketsParam[] = | 394 const char OmniboxFieldTrial::kHUPNewScoringTypedCountScoreBucketsParam[] = |
366 "TypedCountScoreBuckets"; | 395 "TypedCountScoreBuckets"; |
367 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountRelevanceCapParam[] = | 396 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountRelevanceCapParam[] = |
368 "VisitedCountRelevanceCap"; | 397 "VisitedCountRelevanceCap"; |
369 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountHalfLifeTimeParam[] = | 398 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountHalfLifeTimeParam[] = |
370 "VisitedCountHalfLifeTime"; | 399 "VisitedCountHalfLifeTime"; |
371 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountScoreBucketsParam[] = | 400 const char OmniboxFieldTrial::kHUPNewScoringVisitedCountScoreBucketsParam[] = |
372 "VisitedCountScoreBuckets"; | 401 "VisitedCountScoreBuckets"; |
373 | 402 |
| 403 // static |
| 404 int OmniboxFieldTrial::kDefaultMinimumTimeBetweenSuggestQueriesMs = 100; |
| 405 |
374 // Background and implementation details: | 406 // Background and implementation details: |
375 // | 407 // |
376 // Each experiment group in any field trial can come with an optional set of | 408 // Each experiment group in any field trial can come with an optional set of |
377 // parameters (key-value pairs). In the bundled omnibox experiment | 409 // parameters (key-value pairs). In the bundled omnibox experiment |
378 // (kBundledExperimentFieldTrialName), each experiment group comes with a | 410 // (kBundledExperimentFieldTrialName), each experiment group comes with a |
379 // list of parameters in the form: | 411 // list of parameters in the form: |
380 // key=<Rule>: | 412 // key=<Rule>: |
381 // <OmniboxEventProto::PageClassification (as an int)>: | 413 // <OmniboxEventProto::PageClassification (as an int)>: |
382 // <whether Instant Extended is enabled (as a 1 or 0)> | 414 // <whether Instant Extended is enabled (as a 1 or 0)> |
383 // (note that there are no linebreaks in keys; this format is for | 415 // (note that there are no linebreaks in keys; this format is for |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
426 if (it != params.end()) | 458 if (it != params.end()) |
427 return it->second; | 459 return it->second; |
428 // Fall back to the global instant extended context. | 460 // Fall back to the global instant extended context. |
429 it = params.find(rule + ":" + page_classification_str + ":*"); | 461 it = params.find(rule + ":" + page_classification_str + ":*"); |
430 if (it != params.end()) | 462 if (it != params.end()) |
431 return it->second; | 463 return it->second; |
432 // Look up rule in the global context. | 464 // Look up rule in the global context. |
433 it = params.find(rule + ":*:*"); | 465 it = params.find(rule + ":*:*"); |
434 return (it != params.end()) ? it->second : std::string(); | 466 return (it != params.end()) ? it->second : std::string(); |
435 } | 467 } |
OLD | NEW |