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

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

Issue 399573002: [Password Generation] Trigger confirmation bubble when a password is saved (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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_ui_controller.cc
diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
index 962b75d4c9efa5e79a29fcd0a967d9ea366d3c01..d41f6256cdf62c1632ce5ac096fc22766c99089c 100644
--- a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
+++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
@@ -73,6 +73,20 @@ void ManagePasswordsUIController::OnPasswordSubmitted(
UpdateBubbleAndIconVisibility();
}
+void ManagePasswordsUIController::ShowSaveConfirmation(
+ scoped_ptr<PasswordFormManager> form_manager) {
+ form_manager_ = form_manager.Pass();
+ password_form_map_ = form_manager_->best_matches();
+ // const_cast<> is icky, but should be safe as PasswordForms stored in this
+ // map are not mutated.
+ password_form_map_[form_manager_->associated_username()] =
+ const_cast<autofill::PasswordForm*>(
+ &form_manager_->pending_credentials());
+ origin_ = form_manager_->pending_credentials().origin;
+ state_ = password_manager::ui::CONFIRMATION_STATE;
+ UpdateBubbleAndIconVisibility();
+}
+
void ManagePasswordsUIController::OnPasswordAutofilled(
const PasswordFormMap& password_form_map) {
password_form_map_ = password_form_map;
@@ -203,23 +217,13 @@ const autofill::PasswordForm& ManagePasswordsUIController::
void ManagePasswordsUIController::UpdateIconAndBubbleState(
ManagePasswordsIcon* icon) {
- if (state_ == password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE) {
- // We must display the icon before showing the bubble, as the bubble would
- // be otherwise unanchored. However, we can't change the controller's state
- // until _after_ the bubble is shown, as our metrics depend on the
- // distinction between PENDING_PASSWORD_AND_BUBBLE_STATE and
- // PENDING_PASSWORD_STATE to determine if the bubble opened automagically
- // or via user action.
- icon->SetState(password_manager::ui::PENDING_PASSWORD_STATE);
Garrett Casto 2014/07/16 06:29:00 This code make it seems like the views only expect
Mike West 2014/07/16 07:55:03 Not doing the transition here means that the icon
Garrett Casto 2014/07/17 06:42:45 Part of the reason that I was wondering about this
+ icon->SetState(state_);
+ if (password_manager::ui::IsAutomaticDisplayState(state_))
ShowBubbleWithoutUserInteraction();
- state_ = password_manager::ui::PENDING_PASSWORD_STATE;
- } else {
- icon->SetState(state_);
- }
}
void ManagePasswordsUIController::ShowBubbleWithoutUserInteraction() {
- DCHECK_EQ(state_, password_manager::ui::PENDING_PASSWORD_AND_BUBBLE_STATE);
+ DCHECK(password_manager::ui::IsAutomaticDisplayState(state_));
#if !defined(OS_ANDROID)
Browser* browser = chrome::FindBrowserWithWebContents(web_contents());
if (!browser || browser->toolbar_model()->input_in_progress())

Powered by Google App Engine
This is Rietveld 408576698