Home | History | Annotate | Download | only in browser
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_LOGIN_MODEL_H_
      6 #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_LOGIN_MODEL_H_
      7 
      8 #include "base/strings/string16.h"
      9 
     10 namespace password_manager {
     11 
     12 // Simple Model & Observer interfaces for a LoginView to facilitate exchanging
     13 // information.
     14 class LoginModelObserver {
     15  public:
     16   // Called by the model when a username,password pair has been identified
     17   // as a match for the pending login prompt.
     18   virtual void OnAutofillDataAvailable(const base::string16& username,
     19                                        const base::string16& password) = 0;
     20 
     21   virtual void OnLoginModelDestroying() = 0;
     22 
     23  protected:
     24   virtual ~LoginModelObserver() {}
     25 };
     26 
     27 class LoginModel {
     28  public:
     29   // Add an observer interested in the data from the model.
     30   virtual void AddObserver(LoginModelObserver* observer) = 0;
     31   // Remove an observer from the model.
     32   virtual void RemoveObserver(LoginModelObserver* observer) = 0;
     33 
     34  protected:
     35   virtual ~LoginModel() {}
     36 };
     37 
     38 }  // namespace password_manager
     39 
     40 #endif  // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_LOGIN_MODEL_H_
     41