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; |