Index: chrome/browser/ui/passwords/manage_passwords_ui_controller.h |
diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller.h b/chrome/browser/ui/passwords/manage_passwords_ui_controller.h |
index 772d5dc77b6b2561f4503c5ab99cc0858299e842..87c52dc6d2828e576e19cdd481db82ec70bd438e 100644 |
--- a/chrome/browser/ui/passwords/manage_passwords_ui_controller.h |
+++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller.h |
@@ -18,6 +18,7 @@ class WebContents; |
} |
namespace password_manager { |
+struct CredentialInfo; |
class PasswordFormManager; |
} |
@@ -38,6 +39,12 @@ class ManagePasswordsUIController |
void OnPasswordSubmitted( |
scoped_ptr<password_manager::PasswordFormManager> form_manager); |
+ // Called when the site asks user to choose from credentials. This triggers |
+ // the UI to prompt the user. |credentials| shouldn't be empty. |
+ bool OnChooseCredentials( |
+ ScopedVector<autofill::PasswordForm> credentials, |
+ base::Callback<void(const password_manager::CredentialInfo&)> callback); |
+ |
// Called when the password will be saved automatically, but we still wish to |
// visually inform the user that the save has occured. |
void OnAutomaticPasswordSave( |
@@ -64,6 +71,11 @@ class ManagePasswordsUIController |
// and WILL be in MANAGE_STATE after this method executes. |
virtual void SavePassword(); |
+ // Called from the model when the user chooses a credential. |
+ // The controller MUST be in a pending credentials state. |
+ virtual void ChooseCredential(bool was_chosen, |
+ const autofill::PasswordForm& form); |
+ |
// Called from the model when the user chooses to never save passwords; passes |
// the action off to the FormManager. The controller MUST be in a pending |
// state, and WILL be in BLACKLIST_STATE after this method executes. |
@@ -77,14 +89,21 @@ class ManagePasswordsUIController |
// Open a new tab, pointing to the password manager settings page. |
virtual void NavigateToPasswordManagerSettingsPage(); |
- virtual const autofill::PasswordForm& PendingCredentials() const; |
+ virtual const autofill::PasswordForm& PendingPassword() const; |
// Set the state of the Omnibox icon, and possibly show the associated bubble |
// without user interaction. |
virtual void UpdateIconAndBubbleState(ManagePasswordsIcon* icon); |
+ // Called from the model when the bubble is displayed. |
+ void OnBubbleShown(); |
+ |
password_manager::ui::State state() const { return state_; } |
+ ScopedVector<autofill::PasswordForm>& new_password_forms() { |
+ return new_password_forms_; |
+ } |
+ |
// True if a password is sitting around, waiting for a user to decide whether |
// or not to save it. |
bool PasswordPendingUserDecision() const; |
@@ -104,6 +123,11 @@ class ManagePasswordsUIController |
virtual void SavePasswordInternal(); |
virtual void NeverSavePasswordInternal(); |
+ // Called when a passwordform is autofilled, when a new passwordform is |
+ // submitted, or when a navigation occurs to update the visibility of the |
+ // manage passwords icon and bubble. |
+ virtual void UpdateBubbleAndIconVisibility(); |
+ |
// content::WebContentsObserver: |
void DidNavigateMainFrame( |
const content::LoadCommittedDetails& details, |
@@ -137,11 +161,6 @@ class ManagePasswordsUIController |
// be in PENDING_PASSWORD_AND_BUBBLE_STATE. |
void ShowBubbleWithoutUserInteraction(); |
- // Called when a passwordform is autofilled, when a new passwordform is |
- // submitted, or when a navigation occurs to update the visibility of the |
- // manage passwords icon and bubble. |
- void UpdateBubbleAndIconVisibility(); |
- |
// content::WebContentsObserver: |
void WebContentsDestroyed() override; |
@@ -151,9 +170,13 @@ class ManagePasswordsUIController |
// associated login information in Chrome's password store. |
scoped_ptr<password_manager::PasswordFormManager> form_manager_; |
- // Stores whether autofill was blocked due to a user's decision to blacklist |
- // the current site ("Never save passwords for this site"). |
- bool autofill_blocked_; |
+ // A callback to be invoked when user selects a credential. |
+ base::Callback<void(const password_manager::CredentialInfo&)> |
+ credentials_callback_; |
+ |
+ // Contains true is the bubble's appeared during the last call to |
+ // UpdateBubbleAndIconVisibility(). |
+ bool bubble_shown_; |
// The origin of the form we're currently dealing with; we'll use this to |
// determine which PasswordStore changes we should care about when updating |