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_PASSWORD_SYNC_INTERFACE_H_ 6 #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_SYNC_INTERFACE_H_ 7 8 #include <vector> 9 10 #include "components/password_manager/core/browser/password_store_change.h" 11 12 namespace password_manager { 13 14 // PasswordStore interface for PasswordSyncableService. It provides access to 15 // synchronous methods of PasswordStore which shouldn't be accessible to other 16 // classes. These methods are to be called on the PasswordStore background 17 // thread only. 18 class PasswordStoreSync { 19 public: 20 // Finds all non-blacklist PasswordForms, and fills the vector. 21 virtual bool FillAutofillableLogins( 22 std::vector<autofill::PasswordForm*>* forms) = 0; 23 24 // Finds all blacklist PasswordForms, and fills the vector. 25 virtual bool FillBlacklistLogins( 26 std::vector<autofill::PasswordForm*>* forms) = 0; 27 28 // Synchronous implementation to add the given login. 29 virtual PasswordStoreChangeList AddLoginImpl( 30 const autofill::PasswordForm& form) = 0; 31 32 // Synchronous implementation to update the given login. 33 virtual PasswordStoreChangeList UpdateLoginImpl( 34 const autofill::PasswordForm& form) = 0; 35 36 // Synchronous implementation to remove the given login. 37 virtual PasswordStoreChangeList RemoveLoginImpl( 38 const autofill::PasswordForm& form) = 0; 39 40 // Notifies observers that password store data may have been changed. 41 virtual void NotifyLoginsChanged(const PasswordStoreChangeList& changes) = 0; 42 43 protected: 44 virtual ~PasswordStoreSync(); 45 }; 46 47 } // namespace password_manager 48 49 #endif // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_SYNC_INTERFACE_H_ 50