diff options
Diffstat (limited to 'chrome/browser/password_manager.h')
-rw-r--r-- | chrome/browser/password_manager.h | 43 |
1 files changed, 31 insertions, 12 deletions
diff --git a/chrome/browser/password_manager.h b/chrome/browser/password_manager.h index 584ffff..ecdac61 100644 --- a/chrome/browser/password_manager.h +++ b/chrome/browser/password_manager.h @@ -6,7 +6,7 @@ #define CHROME_BROWSER_PASSWORD_MANAGER_H__ #include "base/scoped_ptr.h" -#include "chrome/browser/infobar_delegate.h" +#include "chrome/browser/views/info_bar_confirm_view.h" #include "chrome/browser/password_form_manager.h" #include "chrome/browser/views/login_view.h" #include "chrome/common/pref_member.h" @@ -21,8 +21,7 @@ class WebContents; // receiving password form data from the renderer and managing the password // database through the WebDataService. The PasswordManager is a LoginModel // for purposes of supporting HTTP authentication dialogs. -class PasswordManager : public views::LoginModel, - public ConfirmInfoBarDelegate { +class PasswordManager : public views::LoginModel { public: static void RegisterUserPrefs(PrefService* prefs); @@ -35,6 +34,9 @@ class PasswordManager : public views::LoginModel, const PasswordFormMap& best_matches, const PasswordForm* const preferred_match) const; + // Closes any visible password manager UI + void CloseBars(); + // Notification that the user navigated away from the current page. // Unless this is a password form submission, for our purposes this // means we're done with the current page, so we can clean-up. @@ -61,15 +63,32 @@ class PasswordManager : public views::LoginModel, } private: - // Overridden from ConfirmInfoBarDelegate: - virtual void InfoBarClosed(); - virtual std::wstring GetMessageText() const; - virtual SkBitmap* GetIcon() const; - virtual int GetButtons() const; - virtual std::wstring GetButtonLabel(InfoBarButton button) const; - virtual void Accept(); - virtual void Cancel(); - + // The Info Bar UI that prompts the user to save a password. + friend class SavePasswordBar; + class SavePasswordBar : public InfoBarConfirmView { + public: + SavePasswordBar(PasswordFormManager* form_manager, + PasswordManager* password_manager); + virtual ~SavePasswordBar(); + + // InfoBarConfirmView overrides. + virtual void OKButtonPressed(); + virtual void CancelButtonPressed(); + + private: + PasswordFormManager* form_manager_; + PasswordManager* password_manager_; + + DISALLOW_EVIL_CONSTRUCTORS(SavePasswordBar); + }; + + // Replace the current InfoBar with a new one. Just adds if there is no + // visible InfoBars. + void ReplaceInfoBar(InfoBarItemView* view); + + // The currently visible InfoBar (NULL if none) + InfoBarItemView* current_bar_; + // When a form is "seen" on a page, a PasswordFormManager is created // and stored in this collection until user navigates away from page. typedef std::vector<PasswordFormManager*> LoginManagers; |