• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_CONSUMER_H_
6 #define CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_CONSUMER_H_
7 #pragma once
8 
9 #include "content/browser/cancelable_request.h"
10 
11 namespace webkit_glue {
12 struct PasswordForm;
13 };
14 
15 // Reads from the PasswordStore are done asynchrously 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();
23 
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<webkit_glue::PasswordForm*>& result) = 0;
29 
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.
cancelable_consumer()34   CancelableRequestConsumerBase* cancelable_consumer() {
35     return &cancelable_consumer_;
36   }
37 
38  protected:
39   virtual ~PasswordStoreConsumer();
40 
41  private:
42   CancelableRequestConsumer cancelable_consumer_;
43 };
44 
45 #endif  // CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_CONSUMER_H_
46