Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / browser / password_manager / password_store_consumer.h
blobc5ca1686af3ef8010923977a83c6a7a039b729ff
1 // Copyright (c) 2011 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.
5 #ifndef CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_CONSUMER_H_
6 #define CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_CONSUMER_H_
8 #include "chrome/browser/common/cancelable_request.h"
9 #include "chrome/common/cancelable_task_tracker.h"
11 namespace autofill {
12 struct PasswordForm;
15 // Reads from the PasswordStore are done asynchronously on a separate
16 // thread. PasswordStoreConsumer provides the virtual callback method, which is
17 // guaranteed to be executed on this (the UI) thread. It also provides the
18 // CancelableRequestConsumer member, which cancels any outstanding requests upon
19 // destruction.
20 class PasswordStoreConsumer {
21 public:
22 PasswordStoreConsumer();
24 // Call this when the request is finished. If there are no results, call it
25 // anyway with an empty vector.
26 virtual void OnPasswordStoreRequestDone(
27 CancelableRequestProvider::Handle handle,
28 const std::vector<autofill::PasswordForm*>& result) = 0;
30 // The CancelableRequest framework needs both a callback (the
31 // PasswordStoreConsumer::OnPasswordStoreRequestDone) as well as a
32 // CancelableRequestConsumer. This accessor makes the API simpler for callers
33 // as PasswordStore can get both from the PasswordStoreConsumer.
34 CancelableRequestConsumerBase* cancelable_consumer() {
35 return &cancelable_consumer_;
38 // Called when the request is finished. If there are no results, it is called
39 // with an empty vector.
40 // Note: The implementation owns all PasswordForms in the vector.
41 virtual void OnGetPasswordStoreResults(
42 const std::vector<autofill::PasswordForm*>& results) = 0;
44 // Cancels the task.
45 CancelableTaskTracker* cancelable_task_tracker() {
46 return &cancelable_task_tracker_;
49 protected:
50 virtual ~PasswordStoreConsumer();
52 private:
53 CancelableRequestConsumer cancelable_consumer_;
54 CancelableTaskTracker cancelable_task_tracker_;
57 #endif // CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_CONSUMER_H_