Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3407)

Unified Diff: chrome/browser/ui/passwords/manage_passwords_bubble_model.cc

Issue 232753002: Password bubble: Deplatformify ManagePasswordsBubbleView. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Feedback. Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 5c06cbfc71cb7542948fe304acd18821c59e3781..687dca2a90f47b1367a8f3b141ddb4acef686fd8 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_);
@@ -33,7 +34,7 @@ ManagePasswordsBubbleModel::ManagePasswordsBubbleModel(
(manage_passwords_bubble_state_ == PASSWORD_TO_BE_SAVED) ?
IDS_SAVE_PASSWORD : IDS_MANAGE_PASSWORDS);
pending_credentials_ =
- manage_passwords_bubble_ui_controller->pending_credentials();
+ manage_passwords_bubble_ui_controller->PendingCredentials();
best_matches_ = manage_passwords_bubble_ui_controller->best_matches();
manage_link_ =
l10n_util::GetStringUTF16(IDS_OPTIONS_PASSWORDS_MANAGE_PASSWORDS_LINK);
@@ -41,11 +42,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();
@@ -54,6 +94,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();
@@ -61,9 +102,14 @@ void ManagePasswordsBubbleModel::OnSaveClicked() {
manage_passwords_bubble_state_ = MANAGE_PASSWORDS;
}
+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(

Powered by Google App Engine
This is Rietveld 408576698