Index: components/password_manager/core/browser/password_bubble_experiment.cc |
diff --git a/components/password_manager/core/browser/password_bubble_experiment.cc b/components/password_manager/core/browser/password_bubble_experiment.cc |
index ff0b3ef493a395c0c43caf6a8ce81908fa5f326b..a0e5c88d13b1629d454ce825c91ac5a130808141 100644 |
--- a/components/password_manager/core/browser/password_bubble_experiment.cc |
+++ b/components/password_manager/core/browser/password_bubble_experiment.cc |
@@ -18,13 +18,20 @@ |
namespace password_bubble_experiment { |
+const char kBrandingExperimentName[] = "PasswordBranding"; |
const char kChromeSignInPasswordPromoExperimentName[] = "SignInPasswordPromo"; |
const char kChromeSignInPasswordPromoThresholdParam[] = "dismissal_threshold"; |
const char kSmartBubbleExperimentName[] = "PasswordSmartBubble"; |
const char kSmartBubbleThresholdParam[] = "dismissal_count"; |
+const char kSmartLockBrandingGroupName[] = "SmartLockBranding"; |
+const char kSmartLockBrandingSavePromptOnlyGroupName[] = |
+ "SmartLockBrandingSavePromptOnly"; |
void RegisterPrefs(PrefRegistrySimple* registry) { |
registry->RegisterBooleanPref( |
+ password_manager::prefs::kWasSavePrompFirstRunExperienceShown, false); |
+ |
+ registry->RegisterBooleanPref( |
password_manager::prefs::kWasAutoSignInFirstRunExperienceShown, false, |
user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF); |
@@ -48,6 +55,40 @@ bool IsSmartLockUser(const syncer::SyncService* sync_service) { |
password_manager::SYNCING_NORMAL_ENCRYPTION; |
} |
+SmartLockBranding GetSmartLockBrandingState( |
+ const syncer::SyncService* sync_service) { |
+ // Query the group first for correct UMA reporting. |
+ std::string group_name = |
+ base::FieldTrialList::FindFullName(kBrandingExperimentName); |
+ if (!IsSmartLockUser(sync_service)) |
+ return SmartLockBranding::NONE; |
+ if (group_name == kSmartLockBrandingGroupName) |
+ return SmartLockBranding::FULL; |
+ if (group_name == kSmartLockBrandingSavePromptOnlyGroupName) |
+ return SmartLockBranding::SAVE_PROMPT_ONLY; |
+ return SmartLockBranding::NONE; |
+} |
+ |
+bool IsSmartLockBrandingEnabled(const syncer::SyncService* sync_service) { |
+ return GetSmartLockBrandingState(sync_service) == SmartLockBranding::FULL; |
+} |
+ |
+bool IsSmartLockBrandingSavePromptEnabled( |
+ const syncer::SyncService* sync_service) { |
+ return GetSmartLockBrandingState(sync_service) != SmartLockBranding::NONE; |
+} |
+ |
+bool ShouldShowSavePromptFirstRunExperience( |
+ const syncer::SyncService* sync_service, |
+ PrefService* prefs) { |
+ return false; |
+} |
+ |
+void RecordSavePromptFirstRunExperienceWasShown(PrefService* prefs) { |
+ prefs->SetBoolean( |
+ password_manager::prefs::kWasSavePrompFirstRunExperienceShown, true); |
+} |
+ |
bool ShouldShowAutoSignInPromptFirstRunExperience(PrefService* prefs) { |
return !prefs->GetBoolean( |
password_manager::prefs::kWasAutoSignInFirstRunExperienceShown); |