Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / components / password_manager / core / browser / password_store_default.h
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_STORE_DEFAULT_H_
6 #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_STORE_DEFAULT_H_
7
8 #include <vector>
9
10 #include "base/memory/scoped_ptr.h"
11 #include "components/password_manager/core/browser/login_database.h"
12 #include "components/password_manager/core/browser/password_store.h"
13
14 namespace password_manager {
15
16 // Simple password store implementation that delegates everything to
17 // the LoginDatabase.
18 class PasswordStoreDefault : public PasswordStore {
19  public:
20   // Takes ownership of |login_db|.
21   PasswordStoreDefault(
22       scoped_refptr<base::SingleThreadTaskRunner> main_thread_runner,
23       scoped_refptr<base::SingleThreadTaskRunner> db_thread_runner,
24       LoginDatabase* login_db);
25
26  protected:
27   virtual ~PasswordStoreDefault();
28
29   // Implements PasswordStore interface.
30   virtual void ReportMetricsImpl(const std::string& sync_username) OVERRIDE;
31   virtual PasswordStoreChangeList AddLoginImpl(
32       const autofill::PasswordForm& form) OVERRIDE;
33   virtual PasswordStoreChangeList UpdateLoginImpl(
34       const autofill::PasswordForm& form) OVERRIDE;
35   virtual PasswordStoreChangeList RemoveLoginImpl(
36       const autofill::PasswordForm& form) OVERRIDE;
37   virtual PasswordStoreChangeList RemoveLoginsCreatedBetweenImpl(
38       base::Time delete_begin,
39       base::Time delete_end) OVERRIDE;
40   virtual PasswordStoreChangeList RemoveLoginsSyncedBetweenImpl(
41       base::Time delete_begin,
42       base::Time delete_end) OVERRIDE;
43   virtual void GetLoginsImpl(
44       const autofill::PasswordForm& form,
45       AuthorizationPromptPolicy prompt_policy,
46       const ConsumerCallbackRunner& callback_runner) OVERRIDE;
47   virtual void GetAutofillableLoginsImpl(GetLoginsRequest* request) OVERRIDE;
48   virtual void GetBlacklistLoginsImpl(GetLoginsRequest* request) OVERRIDE;
49   virtual bool FillAutofillableLogins(
50       std::vector<autofill::PasswordForm*>* forms) OVERRIDE;
51   virtual bool FillBlacklistLogins(
52       std::vector<autofill::PasswordForm*>* forms) OVERRIDE;
53
54  protected:
55   inline bool DeleteAndRecreateDatabaseFile() {
56     return login_db_->DeleteAndRecreateDatabaseFile();
57   }
58
59  private:
60   scoped_ptr<LoginDatabase> login_db_;
61
62   DISALLOW_COPY_AND_ASSIGN(PasswordStoreDefault);
63 };
64
65 }  // namespace password_manager
66
67 #endif  // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_STORE_DEFAULT_H_