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