Commit 140e5bc5 authored by Vasilii Sukhanov's avatar Vasilii Sukhanov Committed by Commit Bot

Revive the sync promo from the password bubble.

The promo should be shown again 3 times starting from M79.

Bug: 1013181
Change-Id: I3bcf46096f18aefc8d8894d34597aea24aa24601
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1855981
Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org>
Reviewed-by: default avatarJan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#705100}
parent 3881ac26
......@@ -400,6 +400,8 @@ TEST_F(ManagePasswordsBubbleModelTest, EditCredential) {
}
TEST_F(ManagePasswordsBubbleModelTest, SuppressSignInPromo) {
prefs()->SetBoolean(password_manager::prefs::kSignInPasswordPromoRevive,
true);
prefs()->SetBoolean(password_manager::prefs::kWasSignInPasswordPromoClicked,
true);
PretendPasswordWaiting();
......
......@@ -28,6 +28,9 @@ void RegisterPrefs(PrefRegistrySimple* registry) {
registry->RegisterIntegerPref(
password_manager::prefs::kNumberSignInPasswordPromoShown, 0);
registry->RegisterBooleanPref(
password_manager::prefs::kSignInPasswordPromoRevive, false);
}
int GetSmartBubbleDismissalThreshold() {
......@@ -69,6 +72,13 @@ bool ShouldShowChromeSignInPasswordPromo(
sync_service->GetUserSettings()->IsFirstSetupComplete()) {
return false;
}
if (!prefs->GetBoolean(password_manager::prefs::kSignInPasswordPromoRevive)) {
// Reset the counters so that the promo is shown again.
prefs->SetBoolean(password_manager::prefs::kSignInPasswordPromoRevive,
true);
prefs->ClearPref(password_manager::prefs::kWasSignInPasswordPromoClicked);
prefs->ClearPref(password_manager::prefs::kNumberSignInPasswordPromoShown);
}
// Don't show the promo more than 3 times.
constexpr int kThreshold = 3;
return !prefs->GetBoolean(
......
......@@ -86,6 +86,20 @@ TEST_F(PasswordManagerPasswordBubbleExperimentTest,
}
}
TEST_F(PasswordManagerPasswordBubbleExperimentTest, ReviveSignInPasswordPromo) {
sync_service()->SetDisableReasons(syncer::SyncService::DISABLE_REASON_NONE);
sync_service()->SetFirstSetupComplete(false);
sync_service()->SetTransportState(
syncer::SyncService::TransportState::PENDING_DESIRED_CONFIGURATION);
prefs()->SetBoolean(password_manager::prefs::kWasSignInPasswordPromoClicked,
true);
prefs()->SetInteger(password_manager::prefs::kNumberSignInPasswordPromoShown,
10);
// The state is to be reset.
EXPECT_TRUE(ShouldShowChromeSignInPasswordPromo(prefs(), sync_service()));
}
TEST_F(PasswordManagerPasswordBubbleExperimentTest, IsSmartLockUser) {
constexpr struct {
syncer::ModelType type;
......
......@@ -38,6 +38,9 @@ const char kWasSignInPasswordPromoClicked[] =
const char kNumberSignInPasswordPromoShown[] =
"profile.number_sign_in_password_promo_shown";
const char kSignInPasswordPromoRevive[] =
"profile.sign_in_password_promo_revive";
const char kSyncPasswordHash[] = "profile.sync_password_hash";
const char kSyncPasswordLengthAndHashSalt[] =
......
......@@ -63,6 +63,10 @@ extern const char kWasSignInPasswordPromoClicked[];
// Number of times the Chrome Sign in promo popped up.
extern const char kNumberSignInPasswordPromoShown[];
// True if the counters for the sign in promo were reset for M79.
// Safe to remove for M82.
extern const char kSignInPasswordPromoRevive[];
// String that represents the sync password hash.
extern const char kSyncPasswordHash[];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment