| 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 c82651b8481e8bcccb6169d12de3cc9e81946628..d904e23fe206c64acaa22733c9e444c9fee23f93 100644
|
| --- a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| +++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| @@ -61,6 +61,7 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
|
| ManagePasswordsUIController* controller =
|
| ManagePasswordsUIController::FromWebContents(web_contents);
|
|
|
| + origin_ = controller->origin();
|
| state_ = controller->state();
|
| if (password_manager::ui::IsPendingState(state_))
|
| pending_password_ = controller->PendingPassword();
|
| @@ -78,6 +79,9 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
|
| l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CONFIRM_GENERATED_TITLE);
|
| } else if (password_manager::ui::IsCredentialsState(state_)) {
|
| title_ = l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_CHOOSE_TITLE);
|
| + } else if (password_manager::ui::IsAskSubmitURLState(state_)) {
|
| + title_ =
|
| + l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_ASK_TO_SUBMIT_URL_TITLE);
|
| } else {
|
| title_ = l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_TITLE);
|
| }
|
| @@ -142,12 +146,31 @@ void ManagePasswordsBubbleModel::OnBubbleHidden() {
|
| if (dismissal_reason_ == metrics_util::NOT_DISPLAYED)
|
| return;
|
|
|
| + if (password_manager::ui::IsAskSubmitURLState(state_)) {
|
| + state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE;
|
| + }
|
| metrics_util::LogUIDismissalReason(dismissal_reason_);
|
| // Other use cases have been reported in the callbacks like OnSaveClicked().
|
| if (dismissal_reason_ == metrics_util::NO_DIRECT_INTERACTION)
|
| RecordExperimentStatistics(web_contents(), dismissal_reason_);
|
| }
|
|
|
| +void ManagePasswordsBubbleModel::OnCollectURLClicked() {
|
| + dismissal_reason_ = metrics_util::CLICKED_COLLECT_URL;
|
| + RecordExperimentStatistics(web_contents(), dismissal_reason_);
|
| + // User interaction with bubble has happened, do not need to show bubble
|
| + // in case it was before transition to another page.
|
| + state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE;
|
| +}
|
| +
|
| +void ManagePasswordsBubbleModel::OnDoNotCollectURLClicked() {
|
| + dismissal_reason_ = metrics_util::CLICKED_DO_NOT_COLLECT_URL;
|
| + RecordExperimentStatistics(web_contents(), dismissal_reason_);
|
| + // User interaction with bubble has happened, do not need to show bubble
|
| + // in case it was before transition to another page.
|
| + state_ = password_manager::ui::ASK_USER_REPORT_URL_BUBBLE_SHOWN_STATE;
|
| +}
|
| +
|
| void ManagePasswordsBubbleModel::OnNopeClicked() {
|
| dismissal_reason_ = metrics_util::CLICKED_NOPE;
|
| RecordExperimentStatistics(web_contents(), dismissal_reason_);
|
|
|