| Index: chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| diff --git a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| index 5fd990e74cb4e13c306cc8af337a66862a2ea0d0..d7896bc51006533a43e3c7653b5a74a1ff648c99 100644
|
| --- a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| +++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| @@ -103,6 +103,10 @@ class ManagePasswordsBubbleModel::InteractionKeeper {
|
| clock_ = std::move(clock);
|
| }
|
|
|
| + void set_sign_in_promo_shown_count(int count) {
|
| + sign_in_promo_shown_count = count;
|
| + }
|
| +
|
| private:
|
| // The way the bubble appeared.
|
| const password_manager::metrics_util::UIDisplayDisposition
|
| @@ -125,6 +129,9 @@ class ManagePasswordsBubbleModel::InteractionKeeper {
|
| // Used to retrieve the current time, in base::Time units.
|
| std::unique_ptr<base::Clock> clock_;
|
|
|
| + // Number of times the sign-in promo was shown to the user.
|
| + int sign_in_promo_shown_count;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(InteractionKeeper);
|
| };
|
|
|
| @@ -136,7 +143,8 @@ ManagePasswordsBubbleModel::InteractionKeeper::InteractionKeeper(
|
| update_password_submission_event_(metrics_util::NO_UPDATE_SUBMISSION),
|
| sign_in_promo_dismissal_reason_(metrics_util::CHROME_SIGNIN_DISMISSED),
|
| interaction_stats_(std::move(stats)),
|
| - clock_(new base::DefaultClock) {}
|
| + clock_(new base::DefaultClock),
|
| + sign_in_promo_shown_count(0) {}
|
|
|
| void ManagePasswordsBubbleModel::InteractionKeeper::ReportInteractions(
|
| const ManagePasswordsBubbleModel* model) {
|
| @@ -170,11 +178,11 @@ void ManagePasswordsBubbleModel::InteractionKeeper::ReportInteractions(
|
| password_manager::metrics_util::CHROME_SIGNIN_OK ||
|
| sign_in_promo_dismissal_reason_ ==
|
| password_manager::metrics_util::CHROME_SIGNIN_CANCEL) {
|
| - DCHECK(model->delegate_);
|
| - int show_count = model->GetProfile()->GetPrefs()->GetInteger(
|
| - password_manager::prefs::kNumberSignInPasswordPromoShown);
|
| UMA_HISTOGRAM_COUNTS_100("PasswordManager.SignInPromoCountTilClick",
|
| - show_count);
|
| + sign_in_promo_shown_count);
|
| + } else {
|
| + UMA_HISTOGRAM_COUNTS_100("PasswordManager.SignInPromoDismissalCount",
|
| + sign_in_promo_shown_count);
|
| }
|
| } else if (model->state() !=
|
| password_manager::ui::PENDING_PASSWORD_UPDATE_STATE) {
|
| @@ -446,8 +454,10 @@ bool ManagePasswordsBubbleModel::ReplaceToShowSignInPromoIfNeeded() {
|
| state_ = password_manager::ui::CHROME_SIGN_IN_PROMO_STATE;
|
| int show_count = prefs->GetInteger(
|
| password_manager::prefs::kNumberSignInPasswordPromoShown);
|
| + show_count++;
|
| prefs->SetInteger(password_manager::prefs::kNumberSignInPasswordPromoShown,
|
| - show_count + 1);
|
| + show_count);
|
| + interaction_keeper_->set_sign_in_promo_shown_count(show_count);
|
| return true;
|
| }
|
| return false;
|
|
|