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

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

Issue 250353003: Password bubble: refactor ManagePasswordsIconView. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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_ui_controller.cc
diff --git a/chrome/browser/ui/passwords/manage_passwords_bubble_ui_controller.cc b/chrome/browser/ui/passwords/manage_passwords_bubble_ui_controller.cc
index d9516de0fdb8c3cca6668b850f7f317d60548daa..8327f008b8aacda540133c47b28dc6f4806e2704 100644
--- a/chrome/browser/ui/passwords/manage_passwords_bubble_ui_controller.cc
+++ b/chrome/browser/ui/passwords/manage_passwords_bubble_ui_controller.cc
@@ -10,6 +10,7 @@
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/chrome_pages.h"
#include "chrome/browser/ui/omnibox/location_bar.h"
+#include "chrome/browser/ui/passwords/manage_passwords_icon.h"
#include "chrome/common/url_constants.h"
#include "components/password_manager/core/browser/password_store.h"
#include "content/public/browser/notification_service.h"
@@ -58,8 +59,11 @@ void ManagePasswordsBubbleUIController::UpdateBubbleAndIconVisibility() {
void ManagePasswordsBubbleUIController::OnPasswordSubmitted(
PasswordFormManager* form_manager) {
- form_manager_.reset(form_manager);
- password_form_map_ = form_manager_->best_matches();
+ // The |form_manager| might be NULL during testing.
+ if (form_manager) {
vabr (Chromium) 2014/04/24 12:56:12 nit: I'm always a bit uneasy about modifying produ
Mike West 2014/04/24 14:27:59 Naah, you're right. I shouldn't have taken the eas
+ form_manager_.reset(form_manager);
+ password_form_map_ = form_manager_->best_matches();
+ }
origin_ = PendingCredentials().origin;
manage_passwords_icon_to_be_shown_ = true;
password_to_be_saved_ = true;
@@ -70,8 +74,11 @@ void ManagePasswordsBubbleUIController::OnPasswordSubmitted(
void ManagePasswordsBubbleUIController::OnPasswordAutofilled(
const PasswordFormMap& password_form_map) {
- password_form_map_ = password_form_map;
- origin_ = password_form_map_.begin()->second->origin;
+ // An empty |password_form_map| might be provided during testing.
+ if (!password_form_map_.empty()) {
vabr (Chromium) 2014/04/24 12:56:12 Ditto about putting test-only provisions into prod
Mike West 2014/04/24 14:27:59 Done.
+ password_form_map_ = password_form_map;
+ origin_ = password_form_map_.begin()->second->origin;
+ }
manage_passwords_icon_to_be_shown_ = true;
password_to_be_saved_ = false;
manage_passwords_bubble_needs_showing_ = false;
@@ -115,10 +122,6 @@ void ManagePasswordsBubbleUIController::OnLoginsChanged(
}
}
-void ManagePasswordsBubbleUIController::OnBubbleShown() {
- unset_manage_passwords_bubble_needs_showing();
-}
-
void ManagePasswordsBubbleUIController::
NavigateToPasswordManagerSettingsPage() {
// TODO(mkwst): chrome_pages.h is compiled out of Android. Need to figure out
@@ -157,3 +160,23 @@ const autofill::PasswordForm& ManagePasswordsBubbleUIController::
DCHECK(form_manager_);
return form_manager_->pending_credentials();
}
+
+void ManagePasswordsBubbleUIController::UpdateIconAndBubbleState(
+ ManagePasswordsIcon* icon) {
+ ManagePasswordsIcon::State state = ManagePasswordsIcon::INACTIVE_STATE;
+
+ if (autofill_blocked_)
+ state = ManagePasswordsIcon::BLACKLISTED_STATE;
+ else if (password_to_be_saved_)
+ state = ManagePasswordsIcon::PENDING_STATE;
+ else if (manage_passwords_icon_to_be_shown_)
+ state = ManagePasswordsIcon::MANAGE_STATE;
+
+ icon->SetState(state);
+
+ if (manage_passwords_bubble_needs_showing_) {
+ DCHECK(state == ManagePasswordsIcon::PENDING_STATE);
+ icon->ShowBubbleWithoutUserInteraction();
+ manage_passwords_bubble_needs_showing_ = false;
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698