| 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..1ad71098b178102a9ebd2fb0b66f7061943b779b 100644
|
| --- a/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| +++ b/chrome/browser/ui/passwords/manage_passwords_bubble_model.cc
|
| @@ -7,9 +7,7 @@
|
| #include "chrome/browser/password_manager/password_store_factory.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_finder.h"
|
| -#include "chrome/browser/ui/chrome_pages.h"
|
| #include "chrome/browser/ui/passwords/manage_passwords_bubble_ui_controller.h"
|
| -#include "chrome/common/url_constants.h"
|
| #include "components/password_manager/core/browser/password_store.h"
|
| #include "grit/generated_resources.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| @@ -20,7 +18,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 +50,50 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
|
|
|
| ManagePasswordsBubbleModel::~ManagePasswordsBubbleModel() {}
|
|
|
| +void ManagePasswordsBubbleModel::OnBubbleShown(
|
| + ManagePasswordsBubble::DisplayReason reason) {
|
| + DCHECK(WaitingToSavePassword() ||
|
| + reason == ManagePasswordsBubble::USER_ACTION);
|
| + if (reason == ManagePasswordsBubble::USER_ACTION) {
|
| + if (WaitingToSavePassword()) {
|
| + 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.
|
| + display_disposition_ =
|
| + password_manager::metrics_util::MANUAL_MANAGE_PASSWORDS;
|
| + }
|
| + } else {
|
| + 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.
|
| + 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() {
|
| + dismissal_reason_ = password_manager::metrics_util::NOT_DISPLAYED;
|
| +}
|
| +
|
| void ManagePasswordsBubbleModel::OnNopeClicked() {
|
| + dismissal_reason_ = password_manager::metrics_util::CLICKED_NOPE;
|
| manage_passwords_bubble_state_ = PASSWORD_TO_BE_SAVED;
|
| }
|
|
|
| void ManagePasswordsBubbleModel::OnNeverForThisSiteClicked() {
|
| + 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 +102,7 @@ void ManagePasswordsBubbleModel::OnNeverForThisSiteClicked() {
|
| }
|
|
|
| void ManagePasswordsBubbleModel::OnSaveClicked() {
|
| + 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,9 +110,14 @@ void ManagePasswordsBubbleModel::OnSaveClicked() {
|
| manage_passwords_bubble_state_ = MANAGE_PASSWORDS_AFTER_SAVING;
|
| }
|
|
|
| +void ManagePasswordsBubbleModel::OnDoneClicked() {
|
| + dismissal_reason_ = password_manager::metrics_util::CLICKED_DONE;
|
| +}
|
| +
|
| void ManagePasswordsBubbleModel::OnManageLinkClicked() {
|
| - chrome::ShowSettingsSubPage(chrome::FindBrowserWithWebContents(web_contents_),
|
| - chrome::kPasswordManagerSubPage);
|
| + dismissal_reason_ = password_manager::metrics_util::CLICKED_MANAGE;
|
| + ManagePasswordsBubbleUIController::FromWebContents(web_contents_)
|
| + ->NavigateToPasswordManagerSettingsPage();
|
| }
|
|
|
| void ManagePasswordsBubbleModel::OnPasswordAction(
|
|
|