Chromium Code Reviews| 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..bfdeb0085961f31877ed86ee437b0c4239acfc1a 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_count(int count) { |
| + sign_in_promo_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_count; |
|
Ilya Sherman
2016/11/05 01:31:39
nit: I'd add "shown" before "count"
vasilii
2016/11/07 10:40:24
Done.
|
| + |
| 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_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_count); |
| + } else { |
| + UMA_HISTOGRAM_COUNTS_100("PasswordManager.SignInPromoDismissalCount", |
|
Ilya Sherman
2016/11/05 01:31:40
Does CHROME_SIGNIN_CANCEL not correspond to a dism
vasilii
2016/11/07 10:40:24
No. The request was to count implicit dismissals.
|
| + sign_in_promo_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++; |
|
Ilya Sherman
2016/11/05 01:31:39
nit: Please use pre-increment.
vasilii
2016/11/07 10:40:24
Why?
Ilya Sherman
2016/11/07 19:43:20
Hmm, I think the style guide used to recommend pre
vabr (Chromium)
2016/11/08 08:36:33
The style guide still requires it for iterators, b
|
| prefs->SetInteger(password_manager::prefs::kNumberSignInPasswordPromoShown, |
| - show_count + 1); |
| + show_count); |
| + interaction_keeper_->set_sign_in_promo_count(show_count); |
|
Ilya Sherman
2016/11/05 01:31:39
What's the purpose of tracking this in two locatio
vasilii
2016/11/07 10:40:24
Because if one closes the tab then GetWebContents(
|
| return true; |
| } |
| return false; |