Index: chrome/browser/ui/webui/sync_promo/sync_promo_trial.cc |
diff --git a/chrome/browser/ui/webui/sync_promo/sync_promo_trial.cc b/chrome/browser/ui/webui/sync_promo/sync_promo_trial.cc |
index 6f6b564ac3d4fb816976dc9021dfdcf09b0b2764..278b22db6280410f87986b804afec4d8f9fba258 100644 |
--- a/chrome/browser/ui/webui/sync_promo/sync_promo_trial.cc |
+++ b/chrome/browser/ui/webui/sync_promo/sync_promo_trial.cc |
@@ -4,210 +4,14 @@ |
#include "chrome/browser/ui/webui/sync_promo/sync_promo_trial.h" |
-#include "base/command_line.h" |
-#include "base/metrics/field_trial.h" |
-#include "base/string_number_conversions.h" |
-#include "base/string_util.h" |
-#include "chrome/browser/google/google_util.h" |
-#include "chrome/browser/metrics/metrics_service.h" |
-#include "chrome/browser/prefs/pref_service.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/ui/webui/sync_promo/sync_promo_ui.h" |
-#include "chrome/common/chrome_switches.h" |
-#include "chrome/common/chrome_version_info.h" |
-#include "content/public/browser/web_contents.h" |
-#include "content/public/browser/web_ui.h" |
-#include "grit/generated_resources.h" |
- |
-namespace { |
- |
-const char kLayoutExperimentTrialName[] = "SyncPromoLayoutExperiment"; |
- |
-enum LayoutExperimentType { |
- LAYOUT_EXPERIMENT_DEFAULT = 0, |
- LAYOUT_EXPERIMENT_DEVICES, |
- LAYOUT_EXPERIMENT_VERBOSE, |
- LAYOUT_EXPERIMENT_SIMPLE, |
- LAYOUT_EXPERIMENT_NONE, |
- LAYOUT_EXPERIMENT_DIALOG, |
- LAYOUT_EXPERIMENT_BOUNDARY, |
-}; |
- |
-// Flag to make sure sync_promo_trial::Activate() has been called. |
-bool sync_promo_trial_initialized; |
- |
-// Checks if a sync promo layout experiment is active. If it is active then the |
-// layout type is return in |type|. |
-bool GetActiveLayoutExperiment(LayoutExperimentType* type) { |
- DCHECK(type); |
- |
- int version = 0; |
- if (base::StringToInt(CommandLine::ForCurrentProcess()-> |
- GetSwitchValueASCII(switches::kSyncPromoVersion), &version)) { |
- switch (version) { |
- case SyncPromoUI::VERSION_DEFAULT: |
- *type = LAYOUT_EXPERIMENT_DEFAULT; |
- return true; |
- case SyncPromoUI::VERSION_DEVICES: |
- *type = LAYOUT_EXPERIMENT_DEVICES; |
- return true; |
- case SyncPromoUI::VERSION_VERBOSE: |
- *type = LAYOUT_EXPERIMENT_VERBOSE; |
- return true; |
- case SyncPromoUI::VERSION_SIMPLE: |
- *type = LAYOUT_EXPERIMENT_SIMPLE; |
- return true; |
- case SyncPromoUI::VERSION_DIALOG: |
- *type = LAYOUT_EXPERIMENT_DIALOG; |
- return true; |
- default: |
- return false; |
- } |
- } |
- |
- if (chrome::VersionInfo::GetChannel() == |
- chrome::VersionInfo::CHANNEL_STABLE) { |
- std::string brand; |
- if (!google_util::GetBrand(&brand)) |
- return false; |
- |
- if (brand == "GGRG" || brand == "CHCG") |
- *type = LAYOUT_EXPERIMENT_DEFAULT; |
- else if (brand == "GGRH" || brand == "CHCH") |
- *type = LAYOUT_EXPERIMENT_DEVICES; |
- else if (brand == "GGRI" || brand == "CHCI") |
- *type = LAYOUT_EXPERIMENT_VERBOSE; |
- else if (brand == "GGRJ" || brand == "CHCJ") |
- *type = LAYOUT_EXPERIMENT_SIMPLE; |
- else if (brand == "GGRL" || brand == "CHCL") |
- *type = LAYOUT_EXPERIMENT_NONE; |
- else if (brand == "GGRK" || brand == "CHCK") |
- *type = LAYOUT_EXPERIMENT_DIALOG; |
- else |
- return false; |
- } else { |
- if (!base::FieldTrialList::TrialExists(kLayoutExperimentTrialName)) |
- return false; |
- int value = base::FieldTrialList::FindValue(kLayoutExperimentTrialName) - |
- base::FieldTrial::kDefaultGroupNumber; |
- *type = static_cast<LayoutExperimentType>(value); |
- } |
- |
- return true; |
-} |
- |
-} // namespace |
- |
namespace sync_promo_trial { |
-void Activate() { |
- DCHECK(!sync_promo_trial_initialized); |
- sync_promo_trial_initialized = true; |
- |
- // For stable builds we'll use brand codes to enroll uesrs into experiments. |
- // For dev and beta we don't have brand codes so we randomly enroll users. |
- if (chrome::VersionInfo::GetChannel() != |
- chrome::VersionInfo::CHANNEL_STABLE) { |
-#if defined(GOOGLE_CHROME_BUILD) |
- // Create a field trial that expires in August 8, 2012. It contains 6 groups |
- // with each group having an equal chance of enrollment. |
- scoped_refptr<base::FieldTrial> trial(new base::FieldTrial( |
- kLayoutExperimentTrialName, 6, "default", 2012, 8, 1)); |
- if (base::FieldTrialList::IsOneTimeRandomizationEnabled()) |
- trial->UseOneTimeRandomization(); |
- trial->AppendGroup("", 1); |
- trial->AppendGroup("", 1); |
- trial->AppendGroup("", 1); |
- trial->AppendGroup("", 1); |
- trial->AppendGroup("", 1); |
-#endif |
- } |
-} |
- |
-StartupOverride GetStartupOverrideForCurrentTrial() { |
- DCHECK(sync_promo_trial_initialized); |
- |
- LayoutExperimentType type; |
- if (GetActiveLayoutExperiment(&type)) { |
- return type == LAYOUT_EXPERIMENT_NONE ? STARTUP_OVERRIDE_HIDE : |
- STARTUP_OVERRIDE_SHOW; |
- } |
- return STARTUP_OVERRIDE_NONE; |
-} |
- |
void RecordUserShownPromo(content::WebUI* web_ui) { |
- DCHECK(sync_promo_trial_initialized); |
- |
- LayoutExperimentType type; |
- if (GetActiveLayoutExperiment(&type)) { |
- bool is_at_startup = SyncPromoUI::GetIsLaunchPageForSyncPromoURL( |
- web_ui->GetWebContents()->GetURL()); |
- if (is_at_startup) { |
- DCHECK(SyncPromoUI::HasShownPromoAtStartup(Profile::FromWebUI(web_ui))); |
- UMA_HISTOGRAM_ENUMERATION("SyncPromo.ShownPromoWithLayoutExpAtStartup", |
- type, LAYOUT_EXPERIMENT_BOUNDARY); |
- } else { |
- UMA_HISTOGRAM_ENUMERATION("SyncPromo.ShownPromoWithLayoutExp", |
- type, LAYOUT_EXPERIMENT_BOUNDARY); |
- } |
- } |
-} |
- |
-void RecordSyncPromoSuppressedForCurrentTrial() { |
- DCHECK(sync_promo_trial_initialized); |
- LayoutExperimentType type = LAYOUT_EXPERIMENT_DEFAULT; |
- DCHECK(GetActiveLayoutExperiment(&type) && type == LAYOUT_EXPERIMENT_NONE); |
- // Avoid warning about unused variable in release builds. |
- (void)type; |
- UMA_HISTOGRAM_ENUMERATION("SyncPromo.ShownPromoWithLayoutExpAtStartup", |
- LAYOUT_EXPERIMENT_NONE, LAYOUT_EXPERIMENT_BOUNDARY); |
+ // TODO(sail): Add new UMA stats here. |
} |
void RecordUserSignedIn(content::WebUI* web_ui) { |
- DCHECK(sync_promo_trial_initialized); |
- |
- LayoutExperimentType type; |
- if (GetActiveLayoutExperiment(&type)) { |
- bool is_at_startup = SyncPromoUI::GetIsLaunchPageForSyncPromoURL( |
- web_ui->GetWebContents()->GetURL()); |
- if (is_at_startup) { |
- DCHECK(SyncPromoUI::HasShownPromoAtStartup(Profile::FromWebUI(web_ui))); |
- UMA_HISTOGRAM_ENUMERATION("SyncPromo.SignedInWithLayoutExpAtStartup", |
- type, LAYOUT_EXPERIMENT_BOUNDARY); |
- } else { |
- UMA_HISTOGRAM_ENUMERATION("SyncPromo.SignedInWithLayoutExp", |
- type, LAYOUT_EXPERIMENT_BOUNDARY); |
- } |
- } |
-} |
- |
-bool GetSyncPromoVersionForCurrentTrial(SyncPromoUI::Version* version) { |
- DCHECK(sync_promo_trial_initialized); |
- DCHECK(version); |
- |
- LayoutExperimentType type; |
- if (!GetActiveLayoutExperiment(&type)) |
- return false; |
- |
- switch (type) { |
- case LAYOUT_EXPERIMENT_DEFAULT: |
- *version = SyncPromoUI::VERSION_DEFAULT; |
- return true; |
- case LAYOUT_EXPERIMENT_DEVICES: |
- *version = SyncPromoUI::VERSION_DEVICES; |
- return true; |
- case LAYOUT_EXPERIMENT_VERBOSE: |
- *version = SyncPromoUI::VERSION_VERBOSE; |
- return true; |
- case LAYOUT_EXPERIMENT_SIMPLE: |
- *version = SyncPromoUI::VERSION_SIMPLE; |
- return true; |
- case LAYOUT_EXPERIMENT_DIALOG: |
- *version = SyncPromoUI::VERSION_DIALOG; |
- return true; |
- default: |
- return false; |
- } |
+ // TODO(sail): Add new UMA stats here. |
} |
} // namespace sync_promo_trial |