• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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