OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_H_ | 5 #ifndef CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_H_ |
6 #define CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_H_ | 6 #define CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
96 // PasswordStore::SetObserver. | 96 // PasswordStore::SetObserver. |
97 class Observer { | 97 class Observer { |
98 public: | 98 public: |
99 // Notifies the observer that password data changed in some way. | 99 // Notifies the observer that password data changed in some way. |
100 virtual void OnLoginsChanged() = 0; | 100 virtual void OnLoginsChanged() = 0; |
101 | 101 |
102 protected: | 102 protected: |
103 virtual ~Observer() {} | 103 virtual ~Observer() {} |
104 }; | 104 }; |
105 | 105 |
106 PasswordStore(); | 106 explicit PasswordStore( |
Garrett Casto
2014/02/03 15:56:46
No need for explicit.
Patrick Dubroy
2014/02/03 17:43:25
Whoops, added that when I was initially only passi
| |
107 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, | |
108 scoped_refptr<base::SingleThreadTaskRunner> db_thread_runner); | |
107 | 109 |
108 // Reimplement this to add custom initialization. Always call this too. | 110 // Reimplement this to add custom initialization. Always call this too. |
109 virtual bool Init(); | 111 virtual bool Init(); |
110 | 112 |
111 // Adds the given PasswordForm to the secure password store asynchronously. | 113 // Adds the given PasswordForm to the secure password store asynchronously. |
112 virtual void AddLogin(const autofill::PasswordForm& form); | 114 virtual void AddLogin(const autofill::PasswordForm& form); |
113 | 115 |
114 // Updates the matching PasswordForm in the secure password store (async). | 116 // Updates the matching PasswordForm in the secure password store (async). |
115 void UpdateLogin(const autofill::PasswordForm& form); | 117 void UpdateLogin(const autofill::PasswordForm& form); |
116 | 118 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
168 friend void passwords_helper::RemoveLogin(PasswordStore*, | 170 friend void passwords_helper::RemoveLogin(PasswordStore*, |
169 const autofill::PasswordForm&); | 171 const autofill::PasswordForm&); |
170 friend void passwords_helper::UpdateLogin(PasswordStore*, | 172 friend void passwords_helper::UpdateLogin(PasswordStore*, |
171 const autofill::PasswordForm&); | 173 const autofill::PasswordForm&); |
172 | 174 |
173 virtual ~PasswordStore(); | 175 virtual ~PasswordStore(); |
174 | 176 |
175 // Schedules the given |task| to be run on the PasswordStore's TaskRunner. | 177 // Schedules the given |task| to be run on the PasswordStore's TaskRunner. |
176 bool ScheduleTask(const base::Closure& task); | 178 bool ScheduleTask(const base::Closure& task); |
177 | 179 |
178 // Get the TaskRunner to use for PasswordStore tasks. | 180 // Get the TaskRunner to use for PasswordStore background tasks. |
179 // By default, a SingleThreadTaskRunner on the DB thread is used, but | 181 // By default, a SingleThreadTaskRunner on the DB thread is used, but |
180 // subclasses can override. | 182 // subclasses can override. |
181 virtual scoped_refptr<base::SequencedTaskRunner> GetTaskRunner(); | 183 virtual scoped_refptr<base::SequencedTaskRunner> GetBackgroundTaskRunner(); |
182 | 184 |
183 // These will be run in PasswordStore's own thread. | 185 // These will be run in PasswordStore's own thread. |
184 // Synchronous implementation that reports usage metrics. | 186 // Synchronous implementation that reports usage metrics. |
185 virtual void ReportMetricsImpl() = 0; | 187 virtual void ReportMetricsImpl() = 0; |
186 // Synchronous implementation to add the given login. | 188 // Synchronous implementation to add the given login. |
187 virtual void AddLoginImpl(const autofill::PasswordForm& form) = 0; | 189 virtual void AddLoginImpl(const autofill::PasswordForm& form) = 0; |
188 // Synchronous implementation to update the given login. | 190 // Synchronous implementation to update the given login. |
189 virtual void UpdateLoginImpl(const autofill::PasswordForm& form) = 0; | 191 virtual void UpdateLoginImpl(const autofill::PasswordForm& form) = 0; |
190 // Synchronous implementation to remove the given login. | 192 // Synchronous implementation to remove the given login. |
191 virtual void RemoveLoginImpl(const autofill::PasswordForm& form) = 0; | 193 virtual void RemoveLoginImpl(const autofill::PasswordForm& form) = 0; |
(...skipping 26 matching lines...) Expand all Loading... | |
218 virtual bool FillBlacklistLogins( | 220 virtual bool FillBlacklistLogins( |
219 std::vector<autofill::PasswordForm*>* forms) = 0; | 221 std::vector<autofill::PasswordForm*>* forms) = 0; |
220 | 222 |
221 // Dispatches the result to the PasswordStoreConsumer on the original caller's | 223 // Dispatches the result to the PasswordStoreConsumer on the original caller's |
222 // thread so the callback can be executed there. This should be the UI thread. | 224 // thread so the callback can be executed there. This should be the UI thread. |
223 virtual void ForwardLoginsResult(GetLoginsRequest* request); | 225 virtual void ForwardLoginsResult(GetLoginsRequest* request); |
224 | 226 |
225 // Log UMA stats for number of bulk deletions. | 227 // Log UMA stats for number of bulk deletions. |
226 void LogStatsForBulkDeletion(int num_deletions); | 228 void LogStatsForBulkDeletion(int num_deletions); |
227 | 229 |
230 // TaskRunner for tasks that run on the main PasswordStore thread (usually | |
Garrett Casto
2014/02/03 15:56:46
How about just "main thread" instead of "main Pass
Patrick Dubroy
2014/02/03 17:43:25
Done.
Patrick Dubroy
2014/02/03 17:43:25
Done.
| |
231 // the UI thread). | |
232 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_; | |
Garrett Casto
2014/02/03 15:56:46
Not sure if I think that this is the right name. m
Patrick Dubroy
2014/02/03 17:43:25
Done.
| |
233 | |
234 // TaskRunner for the DB thread. By default, this is the task runner used for | |
235 // background tasks -- see |GetBackgroundTaskRunner|. | |
236 scoped_refptr<base::SingleThreadTaskRunner> db_thread_runner_; | |
237 | |
228 private: | 238 private: |
229 // Schedule the given |func| to be run in the PasswordStore's own thread with | 239 // Schedule the given |func| to be run in the PasswordStore's own thread with |
230 // responses delivered to |consumer| on the current thread. | 240 // responses delivered to |consumer| on the current thread. |
231 template<typename BackendFunc> | 241 template<typename BackendFunc> |
232 void Schedule(BackendFunc func, PasswordStoreConsumer* consumer); | 242 void Schedule(BackendFunc func, PasswordStoreConsumer* consumer); |
233 | 243 |
234 // Wrapper method called on the destination thread (DB for non-mac) that | 244 // Wrapper method called on the destination thread (DB for non-mac) that |
235 // invokes |task| and then calls back into the source thread to notify | 245 // invokes |task| and then calls back into the source thread to notify |
236 // observers that the password store may have been modified via | 246 // observers that the password store may have been modified via |
237 // NotifyLoginsChanged(). Note that there is no guarantee that the called | 247 // NotifyLoginsChanged(). Note that there is no guarantee that the called |
(...skipping 19 matching lines...) Expand all Loading... | |
257 PasswordStore::GetLoginsRequest* request, | 267 PasswordStore::GetLoginsRequest* request, |
258 const std::vector<autofill::PasswordForm*>& matched_forms); | 268 const std::vector<autofill::PasswordForm*>& matched_forms); |
259 | 269 |
260 // The observers. | 270 // The observers. |
261 ObserverList<Observer> observers_; | 271 ObserverList<Observer> observers_; |
262 | 272 |
263 DISALLOW_COPY_AND_ASSIGN(PasswordStore); | 273 DISALLOW_COPY_AND_ASSIGN(PasswordStore); |
264 }; | 274 }; |
265 | 275 |
266 #endif // CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_H_ | 276 #endif // CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_H_ |
OLD | NEW |