1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file. 4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_SYNC_INTERFACE_H_ 6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_SYNC_INTERFACE_H_ 7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include <vector> 9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "components/password_manager/core/browser/password_store_change.h" 11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace password_manager { 13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// PasswordStore interface for PasswordSyncableService. It provides access to 15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// synchronous methods of PasswordStore which shouldn't be accessible to other 16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// classes. These methods are to be called on the PasswordStore background 17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// thread only. 18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class PasswordStoreSync { 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public: 20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Finds all non-blacklist PasswordForms, and fills the vector. 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual bool FillAutofillableLogins( 22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) std::vector<autofill::PasswordForm*>* forms) = 0; 23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Finds all blacklist PasswordForms, and fills the vector. 25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual bool FillBlacklistLogins( 26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) std::vector<autofill::PasswordForm*>* forms) = 0; 27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 28010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Synchronous implementation to add the given login. 29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual PasswordStoreChangeList AddLoginImpl( 30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const autofill::PasswordForm& form) = 0; 31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Synchronous implementation to update the given login. 33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual PasswordStoreChangeList UpdateLoginImpl( 34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const autofill::PasswordForm& form) = 0; 35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Synchronous implementation to remove the given login. 37010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual PasswordStoreChangeList RemoveLoginImpl( 38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const autofill::PasswordForm& form) = 0; 39010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 40010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Notifies observers that password store data may have been changed. 41010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual void NotifyLoginsChanged(const PasswordStoreChangeList& changes) = 0; 42010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 43010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) protected: 44010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) virtual ~PasswordStoreSync(); 45010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}; 46010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 47010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace password_manager 48010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 49010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_SYNC_INTERFACE_H_ 50