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

Unified Diff: chrome/browser/ui/search/search.cc

Issue 12094073: Use an experiment value to set the instant_extended.enabled pref default. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 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/ui/search/search.cc
diff --git a/chrome/browser/ui/search/search.cc b/chrome/browser/ui/search/search.cc
index 796edb4ee64bf23013c73c455ea65b7d8c84b63d..f2a40110ffe5e2432596026144f8a8c51cce3623 100644
--- a/chrome/browser/ui/search/search.cc
+++ b/chrome/browser/ui/search/search.cc
@@ -33,6 +33,10 @@ const bool kEnableOnThemesDefault = false;
const char kEmbeddedPageVersionFlagName[] = "espv";
const int kEmbeddedPageVersionDefault = 1;
+const char kInstantExtendedActivationName[] = "instant";
+const chrome::search::InstantExtendedDefault kInstantExtendedActivationDefault =
+ chrome::search::INSTANT_USE_EXISTING;
+
// Constants for the field trial name and group prefix.
const char kInstantExtendedFieldTrialName[] = "InstantExtended";
const char kGroupNumberPrefix[] = "Group";
@@ -46,6 +50,33 @@ const char kDisablingSuffix[] = "DISABLED";
namespace chrome {
namespace search {
+InstantExtendedDefault InstantExtendedDefaultFromInt64(int64 default_value) {
MAD 2013/01/31 15:44:57 I usually prefer having functions not available ou
robertshield 2013/01/31 18:56:52 Ordinarily I would have, but since most of this fu
MAD 2013/01/31 20:14:53 OK... Forget it...
+ switch (default_value) {
+ case 0: return INSTANT_FORCE_ON;
+ case 1: return INSTANT_USE_EXISTING;
+ case 2: return INSTANT_FORCE_OFF;
+ default: return INSTANT_USE_EXISTING;
+ }
+}
+
+InstantExtendedDefault GetInstantExtendedDefaultSetting() {
+ InstantExtendedDefault default_setting = INSTANT_USE_EXISTING;
+
+ FieldTrialFlags flags;
+ uint64 group_number = 0;
+ base::FieldTrial* trial =
+ base::FieldTrialList::Find(kInstantExtendedFieldTrialName);
MAD 2013/01/31 15:44:57 There's also a method on FieldTrialList to get the
robertshield 2013/01/31 18:56:52 Used the method you suggest. With the refactoring
MAD 2013/01/31 20:14:53 Agreed...
+ if (trial && GetFieldTrialInfo(trial->group_name(), &flags, &group_number)) {
+ uint64 trial_default = GetUInt64ValueForFlagWithDefault(
+ kInstantExtendedActivationName,
+ kInstantExtendedActivationDefault,
+ flags);
+ default_setting = InstantExtendedDefaultFromInt64(trial_default);
+ }
+
+ return default_setting;
+}
+
// Check whether or not the Extended API should be used on the given profile.
bool IsInstantExtendedAPIEnabled(Profile* profile) {
return EmbeddedSearchPageVersion(profile) != 0;
@@ -66,12 +97,7 @@ uint64 EmbeddedSearchPageVersion(Profile* profile) {
uint64 group_number = 0;
base::FieldTrial* trial =
base::FieldTrialList::Find(kInstantExtendedFieldTrialName);
- if (trial) {
- std::string group_name = trial->group_name();
- GetFieldTrialInfo(group_name, &flags, &group_number);
- }
-
- if (group_number > 0) {
+ if (trial && GetFieldTrialInfo(trial->group_name(), &flags, &group_number)) {
uint64 espv = GetUInt64ValueForFlagWithDefault(
kEmbeddedPageVersionFlagName,
kEmbeddedPageVersionDefault,
@@ -153,9 +179,10 @@ bool IsForcedInstantURL(const GURL& url) {
// Given a field trial group name in the above format, parses out the group
// number and configuration flags. Will return a group number of 0 on error.
-void GetFieldTrialInfo(const std::string& group_name,
+bool GetFieldTrialInfo(const std::string& group_name,
MAD 2013/01/31 15:44:57 Now that we return success, group_number pointer c
robertshield 2013/01/31 18:56:52 Done.
FieldTrialFlags* flags,
uint64* group_number) {
+ bool success = false;
if (!EndsWith(group_name, kDisablingSuffix, true) &&
StartsWithASCII(group_name, kGroupNumberPrefix, true)) {
// We have a valid trial that starts with "Group" and isn't disabled.
@@ -168,12 +195,15 @@ void GetFieldTrialInfo(const std::string& group_name,
base::SplitStringIntoKeyValuePairs(
group_name.substr(first_space), ':', ' ', flags);
}
- if (!base::StringToUint64(group_prefix.substr(strlen(kGroupNumberPrefix)),
- group_number)) {
- // Could not parse group number.
+ if (base::StringToUint64(group_prefix.substr(strlen(kGroupNumberPrefix)),
+ group_number)) {
+ success = true;
+ } else {
*group_number = 0;
}
}
+
+ return success;
}
// Given a FieldTrialFlags object, returns the string value of the provided

Powered by Google App Engine
This is Rietveld 408576698