summaryrefslogtreecommitdiffstats
path: root/chrome/browser/bookmarks/enhanced_bookmarks_features.cc
diff options
context:
space:
mode:
authorwittman <wittman@chromium.org>2015-03-17 14:14:46 -0700
committerCommit bot <commit-bot@chromium.org>2015-03-17 21:15:39 +0000
commitc8ae1d65bada9e45e2fcfa4a00f0f18018e823bb (patch)
treeb77e450d0c7aed9a973ead75dd277fb673586c2a /chrome/browser/bookmarks/enhanced_bookmarks_features.cc
parentbba16e7a9323bca8d411ff5f51a94093d889df2b (diff)
downloadchromium_src-c8ae1d65bada9e45e2fcfa4a00f0f18018e823bb.zip
chromium_src-c8ae1d65bada9e45e2fcfa4a00f0f18018e823bb.tar.gz
chromium_src-c8ae1d65bada9e45e2fcfa4a00f0f18018e823bb.tar.bz2
Remove enhanced bookmarks sync experiment
Uses the enhanced bookmarks Finch experiment as the only mechanism for enabling enhanced bookmarks in Chrome. With this change we no longer need the EnhancedBookmarks.SyncExperimentState UMA histogram since we can now get all the relevant metrics via Finch. BUG=467040 Review URL: https://codereview.chromium.org/1009673002 Cr-Commit-Position: refs/heads/master@{#320973}
Diffstat (limited to 'chrome/browser/bookmarks/enhanced_bookmarks_features.cc')
-rw-r--r--chrome/browser/bookmarks/enhanced_bookmarks_features.cc204
1 files changed, 18 insertions, 186 deletions
diff --git a/chrome/browser/bookmarks/enhanced_bookmarks_features.cc b/chrome/browser/bookmarks/enhanced_bookmarks_features.cc
index 142e5cb..9f681c6 100644
--- a/chrome/browser/bookmarks/enhanced_bookmarks_features.cc
+++ b/chrome/browser/bookmarks/enhanced_bookmarks_features.cc
@@ -30,200 +30,35 @@ namespace {
const char kFieldTrialName[] = "EnhancedBookmarks";
-// Get extension id from Finch EnhancedBookmarks group parameters.
-std::string GetEnhancedBookmarksExtensionIdFromFinch() {
- return variations::GetVariationParamValue(kFieldTrialName, "id");
-}
-
-// Returns true if enhanced bookmarks experiment is enabled from Finch.
-bool IsEnhancedBookmarksExperimentEnabledFromFinch() {
- const std::string ext_id = GetEnhancedBookmarksExtensionIdFromFinch();
-#if defined(OS_ANDROID)
- return !ext_id.empty();
-#else
- const extensions::FeatureProvider* feature_provider =
- extensions::FeatureProvider::GetPermissionFeatures();
- extensions::Feature* feature = feature_provider->GetFeature("metricsPrivate");
- return feature && feature->IsIdInWhitelist(ext_id);
-#endif
-}
-
-}; // namespace
+} // namespace
-bool GetBookmarksExperimentExtensionID(const PrefService* user_prefs,
- std::string* extension_id) {
- BookmarksExperimentState bookmarks_experiment_state =
- static_cast<BookmarksExperimentState>(user_prefs->GetInteger(
- sync_driver::prefs::kEnhancedBookmarksExperimentEnabled));
- if (bookmarks_experiment_state == BOOKMARKS_EXPERIMENT_ENABLED_FROM_FINCH) {
- *extension_id = GetEnhancedBookmarksExtensionIdFromFinch();
- return !extension_id->empty();
- }
- if (bookmarks_experiment_state == BOOKMARKS_EXPERIMENT_ENABLED) {
- *extension_id = user_prefs->GetString(
- sync_driver::prefs::kEnhancedBookmarksExtensionId);
- return !extension_id->empty();
- }
-
- return false;
-}
-
-void UpdateBookmarksExperimentState(
- PrefService* user_prefs,
- PrefService* local_state,
- bool user_signed_in,
- BookmarksExperimentState experiment_enabled_from_sync) {
- PrefService* flags_storage = local_state;
-#if defined(OS_CHROMEOS)
- // Chrome OS is using user prefs for flags storage.
- flags_storage = user_prefs;
-#endif
-
- BookmarksExperimentState bookmarks_experiment_state_before =
- static_cast<BookmarksExperimentState>(user_prefs->GetInteger(
- sync_driver::prefs::kEnhancedBookmarksExperimentEnabled));
- // If user signed out, clear possible previous state.
- if (!user_signed_in) {
- bookmarks_experiment_state_before = BOOKMARKS_EXPERIMENT_NONE;
- ForceFinchBookmarkExperimentIfNeeded(flags_storage,
- BOOKMARKS_EXPERIMENT_NONE);
- }
+bool GetBookmarksExperimentExtensionID(std::string* extension_id) {
+ *extension_id = variations::GetVariationParamValue(kFieldTrialName, "id");
+ if (extension_id->empty())
+ return false;
// kEnhancedBookmarksExperiment flag could have values "", "1" and "0".
// "0" - user opted out.
bool opt_out = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
- switches::kEnhancedBookmarksExperiment) == "0";
+ switches::kEnhancedBookmarksExperiment) == "0";
- BookmarksExperimentState bookmarks_experiment_new_state =
- BOOKMARKS_EXPERIMENT_NONE;
-
- if (IsEnhancedBookmarksExperimentEnabledFromFinch() && !user_signed_in) {
- if (opt_out) {
- // Experiment enabled but user opted out.
- bookmarks_experiment_new_state = BOOKMARKS_EXPERIMENT_OPT_OUT_FROM_FINCH;
- } else {
- // Experiment enabled.
- bookmarks_experiment_new_state = BOOKMARKS_EXPERIMENT_ENABLED_FROM_FINCH;
- }
- } else if (experiment_enabled_from_sync == BOOKMARKS_EXPERIMENT_ENABLED) {
- // Experiment enabled from Chrome sync.
- if (opt_out) {
- // Experiment enabled but user opted out.
- bookmarks_experiment_new_state =
- BOOKMARKS_EXPERIMENT_ENABLED_USER_OPT_OUT;
- } else {
- // Experiment enabled.
- bookmarks_experiment_new_state = BOOKMARKS_EXPERIMENT_ENABLED;
- }
- } else if (experiment_enabled_from_sync == BOOKMARKS_EXPERIMENT_NONE) {
- // Experiment is not enabled from Chrome sync.
- bookmarks_experiment_new_state = BOOKMARKS_EXPERIMENT_NONE;
- } else if (bookmarks_experiment_state_before ==
- BOOKMARKS_EXPERIMENT_ENABLED) {
- if (opt_out) {
- // Experiment enabled but user opted out.
- bookmarks_experiment_new_state =
- BOOKMARKS_EXPERIMENT_ENABLED_USER_OPT_OUT;
- } else {
- bookmarks_experiment_new_state = BOOKMARKS_EXPERIMENT_ENABLED;
- }
- } else if (bookmarks_experiment_state_before ==
- BOOKMARKS_EXPERIMENT_ENABLED_USER_OPT_OUT) {
- if (opt_out) {
- bookmarks_experiment_new_state =
- BOOKMARKS_EXPERIMENT_ENABLED_USER_OPT_OUT;
- } else {
- // User opted in again.
- bookmarks_experiment_new_state = BOOKMARKS_EXPERIMENT_ENABLED;
- }
- }
+ if (opt_out)
+ return false;
#if defined(OS_ANDROID)
- if (base::android::BuildInfo::GetInstance()->sdk_int() <=
- base::android::SdkVersion::SDK_VERSION_ICE_CREAM_SANDWICH_MR1) {
- opt_out = true;
- bookmarks_experiment_new_state = BOOKMARKS_EXPERIMENT_NONE;
- }
- bool opt_in = !opt_out &&
- base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
- switches::kEnhancedBookmarksExperiment) == "1";
- if (opt_in && bookmarks_experiment_new_state == BOOKMARKS_EXPERIMENT_NONE)
- bookmarks_experiment_new_state = BOOKMARKS_EXPERIMENT_ENABLED;
-#endif
-
- UMA_HISTOGRAM_ENUMERATION("EnhancedBookmarks.SyncExperimentState",
- bookmarks_experiment_new_state,
- BOOKMARKS_EXPERIMENT_ENUM_SIZE);
- user_prefs->SetInteger(
- sync_driver::prefs::kEnhancedBookmarksExperimentEnabled,
- bookmarks_experiment_new_state);
- ForceFinchBookmarkExperimentIfNeeded(flags_storage,
- bookmarks_experiment_new_state);
-}
-
-void InitBookmarksExperimentState(Profile* profile) {
- SigninManagerBase* signin = SigninManagerFactory::GetForProfile(profile);
- bool is_signed_in = signin && signin->IsAuthenticated();
- UpdateBookmarksExperimentState(
- profile->GetPrefs(),
- g_browser_process->local_state(),
- is_signed_in,
- BOOKMARKS_EXPERIMENT_ENABLED_FROM_SYNC_UNKNOWN);
-}
-
-void ForceFinchBookmarkExperimentIfNeeded(
- PrefService* flags_storage,
- BookmarksExperimentState bookmarks_experiment_state) {
- if (!flags_storage)
- return;
- ListPrefUpdate update(flags_storage, prefs::kEnabledLabsExperiments);
- base::ListValue* experiments_list = update.Get();
- if (!experiments_list)
- return;
- size_t index;
- if (bookmarks_experiment_state == BOOKMARKS_EXPERIMENT_NONE) {
- experiments_list->Remove(
- base::StringValue(switches::kManualEnhancedBookmarks), &index);
- experiments_list->Remove(
- base::StringValue(switches::kManualEnhancedBookmarksOptout), &index);
- } else if (bookmarks_experiment_state == BOOKMARKS_EXPERIMENT_ENABLED) {
- experiments_list->Remove(
- base::StringValue(switches::kManualEnhancedBookmarksOptout), &index);
- experiments_list->AppendIfNotPresent(
- new base::StringValue(switches::kManualEnhancedBookmarks));
- } else if (bookmarks_experiment_state ==
- BOOKMARKS_EXPERIMENT_ENABLED_USER_OPT_OUT) {
- experiments_list->Remove(
- base::StringValue(switches::kManualEnhancedBookmarks), &index);
- experiments_list->AppendIfNotPresent(
- new base::StringValue(switches::kManualEnhancedBookmarksOptout));
- }
-}
-
-bool IsEnhancedBookmarksExperimentEnabled(
- about_flags::FlagsStorage* flags_storage) {
-#if defined(OS_CHROMEOS)
- // We are not setting command line flags on Chrome OS to avoid browser restart
- // but still have flags in flags_storage. So check flags_storage instead.
- const std::set<std::string> flags = flags_storage->GetFlags();
- if (flags.find(switches::kManualEnhancedBookmarks) != flags.end())
- return true;
- if (flags.find(switches::kManualEnhancedBookmarksOptout) != flags.end())
- return true;
+ return base::android::BuildInfo::GetInstance()->sdk_int() >
+ base::android::SdkVersion::SDK_VERSION_ICE_CREAM_SANDWICH_MR1;
#else
- base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
- if (command_line->HasSwitch(switches::kManualEnhancedBookmarks) ||
- command_line->HasSwitch(switches::kManualEnhancedBookmarksOptout)) {
- return true;
- }
+ const extensions::FeatureProvider* feature_provider =
+ extensions::FeatureProvider::GetPermissionFeatures();
+ extensions::Feature* feature = feature_provider->GetFeature("metricsPrivate");
+ return feature && feature->IsIdInWhitelist(*extension_id);
#endif
-
- return IsEnhancedBookmarksExperimentEnabledFromFinch();
}
#if defined(OS_ANDROID)
bool IsEnhancedBookmarkImageFetchingEnabled(const PrefService* user_prefs) {
- if (IsEnhancedBookmarksEnabled(user_prefs))
+ if (IsEnhancedBookmarksEnabled())
return true;
// Salient images are collected from visited bookmarked pages even if the
@@ -236,12 +71,9 @@ bool IsEnhancedBookmarkImageFetchingEnabled(const PrefService* user_prefs) {
return disable_fetching.empty();
}
-bool IsEnhancedBookmarksEnabled(const PrefService* user_prefs) {
- BookmarksExperimentState bookmarks_experiment_state =
- static_cast<BookmarksExperimentState>(user_prefs->GetInteger(
- sync_driver::prefs::kEnhancedBookmarksExperimentEnabled));
- return bookmarks_experiment_state == BOOKMARKS_EXPERIMENT_ENABLED ||
- bookmarks_experiment_state == BOOKMARKS_EXPERIMENT_ENABLED_FROM_FINCH;
+bool IsEnhancedBookmarksEnabled() {
+ std::string extension_id;
+ return GetBookmarksExperimentExtensionID(&extension_id);
}
#endif