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) { ...@@ -400,6 +400,8 @@ TEST_F(ManagePasswordsBubbleModelTest, EditCredential) {
} }
TEST_F(ManagePasswordsBubbleModelTest, SuppressSignInPromo) { TEST_F(ManagePasswordsBubbleModelTest, SuppressSignInPromo) {
prefs()->SetBoolean(password_manager::prefs::kSignInPasswordPromoRevive,
true);
prefs()->SetBoolean(password_manager::prefs::kWasSignInPasswordPromoClicked, prefs()->SetBoolean(password_manager::prefs::kWasSignInPasswordPromoClicked,
true); true);
PretendPasswordWaiting(); PretendPasswordWaiting();
......
...@@ -28,6 +28,9 @@ void RegisterPrefs(PrefRegistrySimple* registry) { ...@@ -28,6 +28,9 @@ void RegisterPrefs(PrefRegistrySimple* registry) {
registry->RegisterIntegerPref( registry->RegisterIntegerPref(
password_manager::prefs::kNumberSignInPasswordPromoShown, 0); password_manager::prefs::kNumberSignInPasswordPromoShown, 0);
registry->RegisterBooleanPref(
password_manager::prefs::kSignInPasswordPromoRevive, false);
} }
int GetSmartBubbleDismissalThreshold() { int GetSmartBubbleDismissalThreshold() {
...@@ -69,6 +72,13 @@ bool ShouldShowChromeSignInPasswordPromo( ...@@ -69,6 +72,13 @@ bool ShouldShowChromeSignInPasswordPromo(
sync_service->GetUserSettings()->IsFirstSetupComplete()) { sync_service->GetUserSettings()->IsFirstSetupComplete()) {
return false; 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. // Don't show the promo more than 3 times.
constexpr int kThreshold = 3; constexpr int kThreshold = 3;
return !prefs->GetBoolean( return !prefs->GetBoolean(
......
...@@ -86,6 +86,20 @@ TEST_F(PasswordManagerPasswordBubbleExperimentTest, ...@@ -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) { TEST_F(PasswordManagerPasswordBubbleExperimentTest, IsSmartLockUser) {
constexpr struct { constexpr struct {
syncer::ModelType type; syncer::ModelType type;
......
...@@ -38,6 +38,9 @@ const char kWasSignInPasswordPromoClicked[] = ...@@ -38,6 +38,9 @@ const char kWasSignInPasswordPromoClicked[] =
const char kNumberSignInPasswordPromoShown[] = const char kNumberSignInPasswordPromoShown[] =
"profile.number_sign_in_password_promo_shown"; "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 kSyncPasswordHash[] = "profile.sync_password_hash";
const char kSyncPasswordLengthAndHashSalt[] = const char kSyncPasswordLengthAndHashSalt[] =
......
...@@ -63,6 +63,10 @@ extern const char kWasSignInPasswordPromoClicked[]; ...@@ -63,6 +63,10 @@ extern const char kWasSignInPasswordPromoClicked[];
// Number of times the Chrome Sign in promo popped up. // Number of times the Chrome Sign in promo popped up.
extern const char kNumberSignInPasswordPromoShown[]; 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. // String that represents the sync password hash.
extern const char kSyncPasswordHash[]; 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