| 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 16c4cf2e5c3d211c5583cb4b13e80b653dbf79fb..ffcafa686c88a0b723c0d4e7ad86c0d3384dd087 100644
|
| --- a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| +++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| @@ -20,7 +20,10 @@ using autofill::PasswordFormMap;
|
| ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
|
| content::WebContents* web_contents)
|
| : content::WebContentsObserver(web_contents),
|
| - web_contents_(web_contents) {
|
| + web_contents_(web_contents),
|
| + display_disposition_(
|
| + password_manager::metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING),
|
| + dismissal_reason_(password_manager::metrics_util::NOT_DISPLAYED) {
|
| ManagePasswordsBubbleUIController* manage_passwords_bubble_ui_controller =
|
| ManagePasswordsBubbleUIController::FromWebContents(web_contents_);
|
|
|
| @@ -49,11 +52,51 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
|
|
|
| ManagePasswordsBubbleModel::~ManagePasswordsBubbleModel() {}
|
|
|
| +void ManagePasswordsBubbleModel::OnBubbleShown(
|
| + ManagePasswordsBubble::DisplayReason reason) {
|
| + DCHECK(WaitingToSavePassword() ||
|
| + reason == ManagePasswordsBubble::USER_ACTION);
|
| + if (reason == ManagePasswordsBubble::USER_ACTION) {
|
| + if (WaitingToSavePassword()) {
|
| + set_display_disposition(
|
| + password_manager::metrics_util::MANUAL_WITH_PASSWORD_PENDING);
|
| + } else {
|
| + // TODO(mkwst): Deal with "Never save passwords" once we've decided how
|
| + // that flow should work.
|
| + set_display_disposition(
|
| + password_manager::metrics_util::MANUAL_MANAGE_PASSWORDS);
|
| + }
|
| + } else {
|
| + set_display_disposition(
|
| + password_manager::metrics_util::AUTOMATIC_WITH_PASSWORD_PENDING);
|
| + }
|
| + password_manager::metrics_util::LogUIDisplayDisposition(
|
| + display_disposition());
|
| +
|
| + // Default to a dismissal reason of "no interaction". If the user interacts
|
| + // with the button in such a way that it closes, we'll reset this value
|
| + // accordingly.
|
| + set_dismissal_reason(password_manager::metrics_util::NO_DIRECT_INTERACTION);
|
| +}
|
| +
|
| +void ManagePasswordsBubbleModel::OnBubbleHidden() {
|
| + if (dismissal_reason() == password_manager::metrics_util::NOT_DISPLAYED)
|
| + return;
|
| +
|
| + password_manager::metrics_util::LogUIDismissalReason(dismissal_reason());
|
| +}
|
| +
|
| +void ManagePasswordsBubbleModel::OnCloseWithoutLogging() {
|
| + set_dismissal_reason(password_manager::metrics_util::NOT_DISPLAYED);
|
| +}
|
| +
|
| void ManagePasswordsBubbleModel::OnNopeClicked() {
|
| + set_dismissal_reason(password_manager::metrics_util::CLICKED_NOPE);
|
| manage_passwords_bubble_state_ = PASSWORD_TO_BE_SAVED;
|
| }
|
|
|
| void ManagePasswordsBubbleModel::OnNeverForThisSiteClicked() {
|
| + set_dismissal_reason(password_manager::metrics_util::CLICKED_NEVER);
|
| ManagePasswordsBubbleUIController* manage_passwords_bubble_ui_controller =
|
| ManagePasswordsBubbleUIController::FromWebContents(web_contents_);
|
| manage_passwords_bubble_ui_controller->NeverSavePassword();
|
| @@ -62,6 +105,7 @@ void ManagePasswordsBubbleModel::OnNeverForThisSiteClicked() {
|
| }
|
|
|
| void ManagePasswordsBubbleModel::OnSaveClicked() {
|
| + set_dismissal_reason(password_manager::metrics_util::CLICKED_SAVE);
|
| ManagePasswordsBubbleUIController* manage_passwords_bubble_ui_controller =
|
| ManagePasswordsBubbleUIController::FromWebContents(web_contents_);
|
| manage_passwords_bubble_ui_controller->SavePassword();
|
| @@ -69,7 +113,12 @@ void ManagePasswordsBubbleModel::OnSaveClicked() {
|
| manage_passwords_bubble_state_ = MANAGE_PASSWORDS_AFTER_SAVING;
|
| }
|
|
|
| +void ManagePasswordsBubbleModel::OnDoneClicked() {
|
| + set_dismissal_reason(password_manager::metrics_util::CLICKED_DONE);
|
| +}
|
| +
|
| void ManagePasswordsBubbleModel::OnManageLinkClicked() {
|
| + set_dismissal_reason(password_manager::metrics_util::CLICKED_MANAGE);
|
| chrome::ShowSettingsSubPage(chrome::FindBrowserWithWebContents(web_contents_),
|
| chrome::kPasswordManagerSubPage);
|
| }
|
|
|