autofill_webdata.h revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
1// Copyright 2013 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 COMPONENTS_AUTOFILL_CORE_BROWSER_WEBDATA_AUTOFILL_WEBDATA_H_
6#define COMPONENTS_AUTOFILL_CORE_BROWSER_WEBDATA_AUTOFILL_WEBDATA_H_
7
8#include <string>
9#include <vector>
10
11#include "base/memory/scoped_ptr.h"
12#include "base/strings/string16.h"
13#include "components/webdata/common/web_data_service_base.h"
14
15namespace base {
16
17class Time;
18
19}  // namespace base
20
21class Profile;
22class WebDataServiceConsumer;
23
24namespace autofill {
25
26class AutofillProfile;
27class CreditCard;
28struct FormFieldData;
29
30// Pure virtual interface for retrieving Autofill data.  API users
31// should use AutofillWebDataService.
32class AutofillWebData {
33 public:
34  virtual ~AutofillWebData() {}
35
36  // Schedules a task to add form fields to the web database.
37  virtual void AddFormFields(
38      const std::vector<FormFieldData>& fields) = 0;
39
40  // Initiates the request for a vector of values which have been entered in
41  // form input fields named |name|.  The method OnWebDataServiceRequestDone of
42  // |consumer| gets called back when the request is finished, with the vector
43  // included in the argument |result|.
44  virtual WebDataServiceBase::Handle GetFormValuesForElementName(
45      const base::string16& name,
46      const base::string16& prefix,
47      int limit,
48      WebDataServiceConsumer* consumer) = 0;
49
50  // Checks if there are any form elements in the database.
51  virtual WebDataServiceBase::Handle HasFormElements(
52      WebDataServiceConsumer* consumer) = 0;
53
54  // Removes form elements recorded for Autocomplete from the database.
55  virtual void RemoveFormElementsAddedBetween(
56      const base::Time& delete_begin, const base::Time& delete_end) = 0;
57
58  virtual void RemoveFormValueForElementName(const base::string16& name,
59                                             const base::string16& value) = 0;
60
61  // Schedules a task to add an Autofill profile to the web database.
62  virtual void AddAutofillProfile(const AutofillProfile& profile) = 0;
63
64  // Schedules a task to update an Autofill profile in the web database.
65  virtual void UpdateAutofillProfile(const AutofillProfile& profile) = 0;
66
67  // Schedules a task to remove an Autofill profile from the web database.
68  // |guid| is the identifer of the profile to remove.
69  virtual void RemoveAutofillProfile(const std::string& guid) = 0;
70
71  // Initiates the request for all Autofill profiles.  The method
72  // OnWebDataServiceRequestDone of |consumer| gets called when the request is
73  // finished, with the profiles included in the argument |result|.  The
74  // consumer owns the profiles.
75  virtual WebDataServiceBase::Handle GetAutofillProfiles(
76      WebDataServiceConsumer* consumer) = 0;
77
78  // Schedules a task to add credit card to the web database.
79  virtual void AddCreditCard(const CreditCard& credit_card) = 0;
80
81  // Schedules a task to update credit card in the web database.
82  virtual void UpdateCreditCard(const CreditCard& credit_card) = 0;
83
84  // Schedules a task to remove a credit card from the web database.
85  // |guid| is identifer of the credit card to remove.
86  virtual void RemoveCreditCard(const std::string& guid) = 0;
87
88  // Initiates the request for all credit cards.  The method
89  // OnWebDataServiceRequestDone of |consumer| gets called when the request is
90  // finished, with the credit cards included in the argument |result|.  The
91  // consumer owns the credit cards.
92  virtual WebDataServiceBase::Handle GetCreditCards(
93      WebDataServiceConsumer* consumer) = 0;
94
95  // Removes Autofill records from the database.
96  virtual void RemoveAutofillDataModifiedBetween(
97      const base::Time& delete_begin, const base::Time& delete_end) = 0;
98
99  // Removes origin URLs associated with Autofill profiles and credit cards from
100  // the database.
101  virtual void RemoveOriginURLsModifiedBetween(
102      const base::Time& delete_begin, const base::Time& delete_end) = 0;
103};
104
105}  // namespace autofill
106
107#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_WEBDATA_AUTOFILL_WEBDATA_H_
108