Index: chrome/browser/bookmarks/enhanced_bookmarks_features.cc |
diff --git a/chrome/browser/bookmarks/enhanced_bookmarks_features.cc b/chrome/browser/bookmarks/enhanced_bookmarks_features.cc |
index 769686d0601c39bee0eb94b20cd1912c74d914be..4b3ef82c7006b7bc830d613961ea19fb8e69ccf8 100644 |
--- a/chrome/browser/bookmarks/enhanced_bookmarks_features.cc |
+++ b/chrome/browser/bookmarks/enhanced_bookmarks_features.cc |
@@ -55,9 +55,11 @@ bool GetBookmarksExperimentExtensionID(const PrefService* user_prefs, |
return false; |
} |
-void UpdateBookmarksExperimentState(PrefService* user_prefs, |
- PrefService* local_state, |
- bool user_signed_in) { |
+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. |
@@ -80,16 +82,8 @@ void UpdateBookmarksExperimentState(PrefService* user_prefs, |
BookmarksExperimentState bookmarks_experiment_new_state = |
kNoBookmarksExperiment; |
- bool enabled_from_finch = false; |
- if (IsEnhancedBookmarksExperimentEnabledFromFinch()) { |
- enabled_from_finch = !user_signed_in; |
- if (user_signed_in) { |
- bookmarks_experiment_new_state = |
- kBookmarksExperimentEnabledFromFinchUserSignedIn; |
- } |
- } |
- if (enabled_from_finch) { |
+ if (IsEnhancedBookmarksExperimentEnabledFromFinch() && !user_signed_in) { |
if (opt_out) { |
// Experiment enabled but user opted out. |
bookmarks_experiment_new_state = kBookmarksExperimentOptOutFromFinch; |
@@ -97,6 +91,18 @@ void UpdateBookmarksExperimentState(PrefService* user_prefs, |
// Experiment enabled. |
bookmarks_experiment_new_state = kBookmarksExperimentEnabledFromFinch; |
} |
+ } else if (experiment_enabled_from_sync == kBookmarksExperimentEnabled) { |
sky
2014/05/23 19:51:56
How about a switch here?
|
+ // Experiment enabled from Chrome sync. |
+ if (opt_out) { |
+ // Experiment enabled but user opted out. |
+ bookmarks_experiment_new_state = kBookmarksExperimentEnabledUserOptOut; |
+ } else { |
+ // Experiment enabled. |
+ bookmarks_experiment_new_state = kBookmarksExperimentEnabled; |
+ } |
+ } else if (experiment_enabled_from_sync == kNoBookmarksExperiment) { |
+ // Experiment is not enabled from Chrome sync. |
+ bookmarks_experiment_new_state = kNoBookmarksExperiment; |
} else if (bookmarks_experiment_state_before == kBookmarksExperimentEnabled) { |
if (opt_out) { |
// Experiment enabled but user opted out. |
@@ -120,9 +126,8 @@ void UpdateBookmarksExperimentState(PrefService* user_prefs, |
user_prefs->SetInteger( |
sync_driver::prefs::kEnhancedBookmarksExperimentEnabled, |
bookmarks_experiment_new_state); |
- if (bookmarks_experiment_state_before != bookmarks_experiment_new_state) |
- ForceFinchBookmarkExperimentIfNeeded(flags_storage, |
- bookmarks_experiment_new_state); |
+ ForceFinchBookmarkExperimentIfNeeded(flags_storage, |
+ bookmarks_experiment_new_state); |
} |
void ForceFinchBookmarkExperimentIfNeeded( |