| Index: components/password_manager/core/browser/form_fetcher_impl.h
|
| diff --git a/components/password_manager/core/browser/form_fetcher_impl.h b/components/password_manager/core/browser/form_fetcher_impl.h
|
| index e46438697bd698d3e07dac2ec5c14552eee7cd4e..096bd618d5e3a35e9fe380cbf09ed941e0bfcc8e 100644
|
| --- a/components/password_manager/core/browser/form_fetcher_impl.h
|
| +++ b/components/password_manager/core/browser/form_fetcher_impl.h
|
| @@ -11,6 +11,8 @@
|
|
|
| #include "base/macros.h"
|
| #include "components/password_manager/core/browser/form_fetcher.h"
|
| +#include "components/password_manager/core/browser/password_store.h"
|
| +#include "components/password_manager/core/browser/password_store_consumer.h"
|
|
|
| namespace password_manager {
|
|
|
| @@ -18,10 +20,12 @@ class PasswordManagerClient;
|
|
|
| // Production implementation of FormFetcher. Fetches credentials associated
|
| // with a particular origin.
|
| -// TODO(crbug.com/621355): This class should ultimately work with PasswordStore.
|
| -class FormFetcherImpl : public FormFetcher {
|
| +class FormFetcherImpl : public FormFetcher, public PasswordStoreConsumer {
|
| public:
|
| - explicit FormFetcherImpl(const PasswordManagerClient* client);
|
| + // |form_digest| describes what credentials need to be retrieved and
|
| + // |client| serves the PasswordStore, the logging information etc.
|
| + FormFetcherImpl(PasswordStore::FormDigest form_digest,
|
| + const PasswordManagerClient* client);
|
|
|
| ~FormFetcherImpl() override;
|
|
|
| @@ -32,23 +36,18 @@ class FormFetcherImpl : public FormFetcher {
|
| const override;
|
| const std::vector<const autofill::PasswordForm*>& GetFederatedMatches()
|
| const override;
|
| + void Fetch() override;
|
|
|
| - // TODO(crbug.com/621355): Remove this once FormFetcher becomes a
|
| - // PasswordStoreConsumer.
|
| - void set_state(State state) { state_ = state; }
|
| -
|
| - // TODO(crbug.com/621355): Remove this once FormFetcher becomes a
|
| - // PasswordStoreConsumer.
|
| - // Resets the results owned by |this| with new results from PasswordStore and
|
| - // sets the state to NOT_WAITING.
|
| - void SetResults(std::vector<std::unique_ptr<autofill::PasswordForm>> results);
|
| -
|
| - // TODO(crbug.com/621355): Remove this once FormFetcher becomes a
|
| - // PasswordStoreConsumer.
|
| - // Resets the stats owned by |this| with new stats from PasswordStore.
|
| - void SetStats(std::vector<std::unique_ptr<InteractionsStats>> stats);
|
| + // PasswordStoreConsumer:
|
| + void OnGetPasswordStoreResults(
|
| + std::vector<std::unique_ptr<autofill::PasswordForm>> results) override;
|
| + void OnGetSiteStatistics(
|
| + std::vector<std::unique_ptr<InteractionsStats>> stats) override;
|
|
|
| private:
|
| + // PasswordStore results will be fetched for this description.
|
| + const PasswordStore::FormDigest form_digest_;
|
| +
|
| // Results obtained from PasswordStore:
|
| std::vector<std::unique_ptr<autofill::PasswordForm>> non_federated_;
|
|
|
| @@ -78,6 +77,10 @@ class FormFetcherImpl : public FormFetcher {
|
| // State of the fetcher.
|
| State state_ = State::NOT_WAITING;
|
|
|
| + // False unless FetchDataFromPasswordStore has been called again without the
|
| + // password store returning results in the meantime.
|
| + bool need_to_refetch_ = false;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(FormFetcherImpl);
|
| };
|
|
|
|
|