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 d572f6e3cc078e4ebffe186b539f8d326e7d59ee..a9aca15480dfbe1c4b258687df9c12fcabcf529c 100644 |
--- a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc |
+++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc |
@@ -54,6 +54,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(); |
@@ -71,6 +72,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); |
} |
@@ -135,12 +139,34 @@ void ManagePasswordsBubbleModel::OnBubbleHidden() { |
if (dismissal_reason_ == metrics_util::NOT_DISPLAYED) |
return; |
+ if (password_manager::ui::IsAskSubmitURLState(state_)) { |
+ state_ = |
+ password_manager::ui::ASK_USER_TO_REPORT_URL_AND_PENDING_BUBBLE_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_TO_REPORT_URL_AND_PENDING_BUBBLE_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_TO_REPORT_URL_AND_PENDING_BUBBLE_STATE; |
+} |
+ |
void ManagePasswordsBubbleModel::OnNopeClicked() { |
dismissal_reason_ = metrics_util::CLICKED_NOPE; |
RecordExperimentStatistics(web_contents(), dismissal_reason_); |