| Index: components/password_manager/core/browser/login_model.h
|
| diff --git a/components/password_manager/core/browser/login_model.h b/components/password_manager/core/browser/login_model.h
|
| index 04019261528429e0f8bcf26db67a5112d2e31dc3..612d45ae1226b5b82f2b0bc3a7c74cd3e7506a2a 100644
|
| --- a/components/password_manager/core/browser/login_model.h
|
| +++ b/components/password_manager/core/browser/login_model.h
|
| @@ -5,34 +5,67 @@
|
| #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_LOGIN_MODEL_H_
|
| #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_LOGIN_MODEL_H_
|
|
|
| +#include <string>
|
| +
|
| +#include "base/macros.h"
|
| #include "base/strings/string16.h"
|
| +#include "components/autofill/core/common/password_form.h"
|
|
|
| namespace password_manager {
|
|
|
| -// Simple Model & Observer interfaces for a LoginView to facilitate exchanging
|
| -// information.
|
| +// A base class for the http-auth UI to communicate with the provider of stored
|
| +// credentials.
|
| class LoginModelObserver {
|
| public:
|
| - // Called by the model when a username,password pair has been identified
|
| - // as a match for the pending login prompt.
|
| - virtual void OnAutofillDataAvailable(const base::string16& username,
|
| - const base::string16& password) = 0;
|
| + LoginModelObserver();
|
| +
|
| + // Called by the model when |credentials| has been identified as a match for
|
| + // the pending login prompt. Checks that the realm matches, and passes
|
| + // |credentials| to OnAutofillDataAvailableInternal.
|
| + void OnAutofillDataAvailable(const autofill::PasswordForm& credentials);
|
|
|
| virtual void OnLoginModelDestroying() = 0;
|
|
|
| + // To be called by the model during AddObserverAndDeliverCredentials.
|
| + void set_signon_realm(const std::string& signon_realm) {
|
| + signon_realm_ = signon_realm;
|
| + }
|
| +
|
| protected:
|
| - virtual ~LoginModelObserver() {}
|
| + virtual ~LoginModelObserver();
|
| +
|
| + virtual void OnAutofillDataAvailableInternal(
|
| + const base::string16& username,
|
| + const base::string16& password) = 0;
|
| +
|
| + private:
|
| + // Signon realm for which this observer wishes to receive credentials.
|
| + std::string signon_realm_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(LoginModelObserver);
|
| };
|
|
|
| +// Corresponding Model interface to be inherited by the provider of stored
|
| +// passwords.
|
| class LoginModel {
|
| public:
|
| - // Add an observer interested in the data from the model.
|
| - virtual void AddObserver(LoginModelObserver* observer) = 0;
|
| + LoginModel();
|
| +
|
| + // Add an observer interested in the data from the model. Also, requests that
|
| + // the model sends a callback to |observer| with stored credentials for
|
| + // |observed_form|.
|
| + virtual void AddObserverAndDeliverCredentials(
|
| + LoginModelObserver* observer,
|
| + const autofill::PasswordForm& observed_form) = 0;
|
| +
|
| // Remove an observer from the model.
|
| virtual void RemoveObserver(LoginModelObserver* observer) = 0;
|
|
|
| protected:
|
| - virtual ~LoginModel() {}
|
| + virtual ~LoginModel();
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(LoginModel);
|
| };
|
|
|
| } // namespace password_manager
|
|
|