| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_MANAGER_DELEGATE_H_ |
| #define CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_MANAGER_DELEGATE_H_ |
| |
| class PasswordFormManager; |
| class Profile; |
| |
| namespace autofill { |
| struct PasswordFormFillData; |
| } // namespace autofill |
| |
| // An abstraction of operations in the external environment (WebContents) |
| // that the PasswordManager depends on. This allows for more targeted |
| // unit testing. |
| class PasswordManagerDelegate { |
| public: |
| PasswordManagerDelegate() {} |
| virtual ~PasswordManagerDelegate() {} |
| |
| // Fill forms matching |form_data| in |web_contents|. By default, goes |
| // through the RenderViewHost to FillPasswordForm. Tests can override this |
| // to sever the dependency on the entire rendering stack. |
| virtual void FillPasswordForm( |
| const autofill::PasswordFormFillData& form_data) = 0; |
| |
| // A mechanism to show an infobar in the current tab at our request. |
| // The infobar may not show in some circumstances, such as when the one-click |
| // sign in infobar is or will be shown. |
| virtual void AddSavePasswordInfoBarIfPermitted( |
| PasswordFormManager* form_to_save) = 0; |
| |
| // Get the profile for which we are managing passwords. |
| virtual Profile* GetProfile() = 0; |
| |
| // If any SSL certificate errors were encountered as a result of the last |
| // page load. |
| virtual bool DidLastPageLoadEncounterSSLErrors() = 0; |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(PasswordManagerDelegate); |
| }; |
| |
| |
| #endif // CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_MANAGER_DELEGATE_H_ |