OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_WEBDATA_AUTOFILL_TABLE_H_ | 5 #ifndef CHROME_BROWSER_WEBDATA_AUTOFILL_TABLE_H_ |
6 #define CHROME_BROWSER_WEBDATA_AUTOFILL_TABLE_H_ | 6 #define CHROME_BROWSER_WEBDATA_AUTOFILL_TABLE_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include "base/gtest_prod_util.h" | 9 #include "base/gtest_prod_util.h" |
10 #include "base/string16.h" | 10 #include "base/string16.h" |
11 #include "chrome/browser/webdata/web_database_table.h" | 11 #include "chrome/browser/webdata/web_database_table.h" |
12 | 12 |
13 #include <vector> | 13 #include <vector> |
14 | 14 |
15 class AutofillChange; | 15 class AutofillChange; |
16 class AutofillEntry; | 16 class AutofillEntry; |
17 class AutofillProfile; | 17 class AutofillProfile; |
18 class AutofillTableTest; | 18 class AutofillTableTest; |
19 class CreditCard; | 19 class CreditCard; |
20 | 20 |
| 21 namespace base { |
| 22 class Time; |
| 23 } |
| 24 |
21 namespace webkit_glue { | 25 namespace webkit_glue { |
22 struct FormField; | 26 struct FormField; |
23 } | 27 } |
24 | 28 |
25 // This class manages the various autofill tables within the SQLite database | 29 // This class manages the various autofill tables within the SQLite database |
26 // passed to the constructor. It expects the following schemas: | 30 // passed to the constructor. It expects the following schemas: |
27 // | 31 // |
28 // Note: The database stores time in seconds, UTC. | 32 // Note: The database stores time in seconds, UTC. |
29 // | 33 // |
30 // autofill | 34 // autofill |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 const string16& prefix, | 139 const string16& prefix, |
136 std::vector<string16>* values, | 140 std::vector<string16>* values, |
137 int limit); | 141 int limit); |
138 | 142 |
139 // Removes rows from autofill_dates if they were created on or after | 143 // Removes rows from autofill_dates if they were created on or after |
140 // |delete_begin| and strictly before |delete_end|. Decrements the | 144 // |delete_begin| and strictly before |delete_end|. Decrements the |
141 // count of the corresponding rows in the autofill table, and | 145 // count of the corresponding rows in the autofill table, and |
142 // removes those rows if the count goes to 0. A list of all changed | 146 // removes those rows if the count goes to 0. A list of all changed |
143 // keys and whether each was updater or removed is returned in the | 147 // keys and whether each was updater or removed is returned in the |
144 // changes out parameter. | 148 // changes out parameter. |
145 bool RemoveFormElementsAddedBetween(base::Time delete_begin, | 149 bool RemoveFormElementsAddedBetween(const base::Time& delete_begin, |
146 base::Time delete_end, | 150 const base::Time& delete_end, |
147 std::vector<AutofillChange>* changes); | 151 std::vector<AutofillChange>* changes); |
148 | 152 |
149 // Removes from autofill_dates rows with given pair_id where date_created lies | 153 // Removes from autofill_dates rows with given pair_id where date_created lies |
150 // between delte_begin and delte_end. | 154 // between delte_begin and delte_end. |
151 bool RemoveFormElementForTimeRange(int64 pair_id, | 155 bool RemoveFormElementForTimeRange(int64 pair_id, |
152 base::Time delete_begin, | 156 const base::Time& delete_begin, |
153 base::Time delete_end, | 157 const base::Time& delete_end, |
154 int* how_many); | 158 int* how_many); |
155 | 159 |
156 // Increments the count in the row corresponding to |pair_id| by | 160 // Increments the count in the row corresponding to |pair_id| by |
157 // |delta|. Removes the row from the table and sets the | 161 // |delta|. Removes the row from the table and sets the |
158 // |was_removed| out parameter to true if the count becomes 0. | 162 // |was_removed| out parameter to true if the count becomes 0. |
159 bool AddToCountOfFormElement(int64 pair_id, int delta, bool* was_removed); | 163 bool AddToCountOfFormElement(int64 pair_id, int delta, bool* was_removed); |
160 | 164 |
161 // Gets the pair_id and count entries from name and value specified in | 165 // Gets the pair_id and count entries from name and value specified in |
162 // |element|. Sets *pair_id and *count to 0 if there is no such row in | 166 // |element|. Sets *pair_id and *count to 0 if there is no such row in |
163 // the table. | 167 // the table. |
164 bool GetIDAndCountOfFormElement(const webkit_glue::FormField& element, | 168 bool GetIDAndCountOfFormElement(const webkit_glue::FormField& element, |
165 int64* pair_id, | 169 int64* pair_id, |
166 int* count); | 170 int* count); |
167 | 171 |
168 // Gets the count only given the pair_id. | 172 // Gets the count only given the pair_id. |
169 bool GetCountOfFormElement(int64 pair_id, int* count); | 173 bool GetCountOfFormElement(int64 pair_id, int* count); |
170 | 174 |
171 // Updates the count entry in the row corresponding to |pair_id| to |count|. | 175 // Updates the count entry in the row corresponding to |pair_id| to |count|. |
172 bool SetCountOfFormElement(int64 pair_id, int count); | 176 bool SetCountOfFormElement(int64 pair_id, int count); |
173 | 177 |
174 // Adds a new row to the autofill table with name and value given in | 178 // Adds a new row to the autofill table with name and value given in |
175 // |element|. Sets *pair_id to the pair_id of the new row. | 179 // |element|. Sets *pair_id to the pair_id of the new row. |
176 bool InsertFormElement(const webkit_glue::FormField& element, int64* pair_id); | 180 bool InsertFormElement(const webkit_glue::FormField& element, int64* pair_id); |
177 | 181 |
178 // Adds a new row to the autofill_dates table. | 182 // Adds a new row to the autofill_dates table. |
179 bool InsertPairIDAndDate(int64 pair_id, base::Time date_created); | 183 bool InsertPairIDAndDate(int64 pair_id, const base::Time& date_created); |
180 | 184 |
181 // Removes row from the autofill tables given |pair_id|. | 185 // Removes row from the autofill tables given |pair_id|. |
182 bool RemoveFormElementForID(int64 pair_id); | 186 bool RemoveFormElementForID(int64 pair_id); |
183 | 187 |
184 // Removes row from the autofill tables for the given |name| |value| pair. | 188 // Removes row from the autofill tables for the given |name| |value| pair. |
185 virtual bool RemoveFormElement(const string16& name, const string16& value); | 189 virtual bool RemoveFormElement(const string16& name, const string16& value); |
186 | 190 |
187 // Retrieves all of the entries in the autofill table. | 191 // Retrieves all of the entries in the autofill table. |
188 virtual bool GetAllAutofillEntries(std::vector<AutofillEntry>* entries); | 192 virtual bool GetAllAutofillEntries(std::vector<AutofillEntry>* entries); |
189 | 193 |
190 // Retrieves a single entry from the autofill table. | 194 // Retrieves a single entry from the autofill table. |
191 virtual bool GetAutofillTimestamps(const string16& name, | 195 virtual bool GetAutofillTimestamps(const string16& name, |
192 const string16& value, | 196 const string16& value, |
193 std::vector<base::Time>* timestamps); | 197 std::vector<base::Time>* timestamps); |
194 | 198 |
195 // Replaces existing autofill entries with the entries supplied in | 199 // Replaces existing autofill entries with the entries supplied in |
196 // the argument. If the entry does not already exist, it will be | 200 // the argument. If the entry does not already exist, it will be |
197 // added. | 201 // added. |
198 virtual bool UpdateAutofillEntries(const std::vector<AutofillEntry>& entries); | 202 virtual bool UpdateAutofillEntries(const std::vector<AutofillEntry>& entries); |
199 | 203 |
200 // Records a single Autofill profile in the autofill_profiles table. | 204 // Records a single Autofill profile in the autofill_profiles table. |
201 virtual bool AddAutofillProfile(const AutofillProfile& profile); | 205 virtual bool AddAutofillProfile(const AutofillProfile& profile); |
202 | 206 |
203 // Updates the database values for the specified profile. | 207 // Updates the database values for the specified profile. |
(...skipping 28 matching lines...) Expand all Loading... |
232 bool GetCreditCard(const std::string& guid, CreditCard** credit_card); | 236 bool GetCreditCard(const std::string& guid, CreditCard** credit_card); |
233 | 237 |
234 // Retrieves all credit cards in the database. Caller owns the returned | 238 // Retrieves all credit cards in the database. Caller owns the returned |
235 // credit cards. | 239 // credit cards. |
236 virtual bool GetCreditCards(std::vector<CreditCard*>* credit_cards); | 240 virtual bool GetCreditCards(std::vector<CreditCard*>* credit_cards); |
237 | 241 |
238 // Removes rows from autofill_profiles and credit_cards if they were created | 242 // Removes rows from autofill_profiles and credit_cards if they were created |
239 // on or after |delete_begin| and strictly before |delete_end|. Returns lists | 243 // on or after |delete_begin| and strictly before |delete_end|. Returns lists |
240 // of deleted guids in |profile_guids| and |credit_card_guids|. | 244 // of deleted guids in |profile_guids| and |credit_card_guids|. |
241 bool RemoveAutofillProfilesAndCreditCardsModifiedBetween( | 245 bool RemoveAutofillProfilesAndCreditCardsModifiedBetween( |
242 base::Time delete_begin, | 246 const base::Time& delete_begin, |
243 base::Time delete_end, | 247 const base::Time& delete_end, |
244 std::vector<std::string>* profile_guids, | 248 std::vector<std::string>* profile_guids, |
245 std::vector<std::string>* credit_card_guids); | 249 std::vector<std::string>* credit_card_guids); |
246 | 250 |
247 // Retrieves all profiles in the database that have been deleted since last | 251 // Retrieves all profiles in the database that have been deleted since last |
248 // "empty" of the trash. | 252 // "empty" of the trash. |
249 bool GetAutofillProfilesInTrash(std::vector<std::string>* guids); | 253 bool GetAutofillProfilesInTrash(std::vector<std::string>* guids); |
250 | 254 |
251 // Empties the Autofill profiles "trash can". | 255 // Empties the Autofill profiles "trash can". |
252 bool EmptyAutofillProfilesTrash(); | 256 bool EmptyAutofillProfilesTrash(); |
253 | 257 |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 bool InitProfilesTable(); | 325 bool InitProfilesTable(); |
322 bool InitProfileNamesTable(); | 326 bool InitProfileNamesTable(); |
323 bool InitProfileEmailsTable(); | 327 bool InitProfileEmailsTable(); |
324 bool InitProfilePhonesTable(); | 328 bool InitProfilePhonesTable(); |
325 bool InitProfileTrashTable(); | 329 bool InitProfileTrashTable(); |
326 | 330 |
327 DISALLOW_COPY_AND_ASSIGN(AutofillTable); | 331 DISALLOW_COPY_AND_ASSIGN(AutofillTable); |
328 }; | 332 }; |
329 | 333 |
330 #endif // CHROME_BROWSER_WEBDATA_AUTOFILL_TABLE_H_ | 334 #endif // CHROME_BROWSER_WEBDATA_AUTOFILL_TABLE_H_ |
OLD | NEW |