Home | History | Annotate | Download | only in password_manager
      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.
     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