Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(222)

Side by Side Diff: components/autofill/core/browser/personal_data_manager.h

Issue 2039493002: Reland of [Autofill] Sort profiles and credit cards by frecency in PaymentRequest. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 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 COMPONENTS_AUTOFILL_CORE_BROWSER_PERSONAL_DATA_MANAGER_H_ 5 #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_PERSONAL_DATA_MANAGER_H_
6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_PERSONAL_DATA_MANAGER_H_ 6 #define COMPONENTS_AUTOFILL_CORE_BROWSER_PERSONAL_DATA_MANAGER_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <set> 9 #include <set>
10 #include <vector> 10 #include <vector>
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 virtual const std::vector<AutofillProfile*>& GetProfiles() const; 173 virtual const std::vector<AutofillProfile*>& GetProfiles() const;
174 virtual const std::vector<AutofillProfile*>& web_profiles() const; 174 virtual const std::vector<AutofillProfile*>& web_profiles() const;
175 // Returns just LOCAL_CARD cards. 175 // Returns just LOCAL_CARD cards.
176 virtual const std::vector<CreditCard*>& GetLocalCreditCards() const; 176 virtual const std::vector<CreditCard*>& GetLocalCreditCards() const;
177 // Returns all credit cards, server and local. 177 // Returns all credit cards, server and local.
178 virtual const std::vector<CreditCard*>& GetCreditCards() const; 178 virtual const std::vector<CreditCard*>& GetCreditCards() const;
179 179
180 // Returns true if there is some data synced from Wallet. 180 // Returns true if there is some data synced from Wallet.
181 bool HasServerData() const; 181 bool HasServerData() const;
182 182
183 // Returns the profiles to suggest to the user, ordered by frecency.
184 const std::vector<AutofillProfile*> GetProfilesToSuggest() const;
185
183 // Loads profiles that can suggest data for |type|. |field_contents| is the 186 // Loads profiles that can suggest data for |type|. |field_contents| is the
184 // part the user has already typed. |field_is_autofilled| is true if the field 187 // part the user has already typed. |field_is_autofilled| is true if the field
185 // has already been autofilled. |other_field_types| represents the rest of 188 // has already been autofilled. |other_field_types| represents the rest of
186 // form. 189 // form.
187 std::vector<Suggestion> GetProfileSuggestions( 190 std::vector<Suggestion> GetProfileSuggestions(
188 const AutofillType& type, 191 const AutofillType& type,
189 const base::string16& field_contents, 192 const base::string16& field_contents,
190 bool field_is_autofilled, 193 bool field_is_autofilled,
191 const std::vector<ServerFieldType>& other_field_types); 194 const std::vector<ServerFieldType>& other_field_types);
192 195
196 // Returns the credit cards to suggest to the user. Those have been deduped
197 // and ordered by frecency with the expired cards put at the end of the
198 // vector.
199 const std::vector<CreditCard*> GetCreditCardsToSuggest() const;
200
193 // Gets credit cards that can suggest data for |type|. See 201 // Gets credit cards that can suggest data for |type|. See
194 // GetProfileSuggestions for argument descriptions. The variant in each 202 // GetProfileSuggestions for argument descriptions. The variant in each
195 // GUID pair should be ignored. 203 // GUID pair should be ignored.
196 std::vector<Suggestion> GetCreditCardSuggestions( 204 std::vector<Suggestion> GetCreditCardSuggestions(
197 const AutofillType& type, 205 const AutofillType& type,
198 const base::string16& field_contents); 206 const base::string16& field_contents);
199 207
200 // Re-loads profiles and credit cards from the WebDatabase asynchronously. 208 // Re-loads profiles and credit cards from the WebDatabase asynchronously.
201 // In the general case, this is a no-op and will re-create the same 209 // In the general case, this is a no-op and will re-create the same
202 // in-memory model as existed prior to the call. If any change occurred to 210 // in-memory model as existed prior to the call. If any change occurred to
(...skipping 28 matching lines...) Expand all
231 239
232 // Returns our best guess for the country a user is likely to use when 240 // Returns our best guess for the country a user is likely to use when
233 // inputting a new address. The value is calculated once and cached, so it 241 // inputting a new address. The value is calculated once and cached, so it
234 // will only update when Chrome is restarted. 242 // will only update when Chrome is restarted.
235 virtual const std::string& GetDefaultCountryCodeForNewAddress() const; 243 virtual const std::string& GetDefaultCountryCodeForNewAddress() const;
236 244
237 // De-dupe credit card to suggest. Full server cards are prefered over their 245 // De-dupe credit card to suggest. Full server cards are prefered over their
238 // local duplicates, and local cards are preferred over their masked server 246 // local duplicates, and local cards are preferred over their masked server
239 // card duplicate. 247 // card duplicate.
240 static void DedupeCreditCardToSuggest( 248 static void DedupeCreditCardToSuggest(
241 std::list<const CreditCard*>* cards_to_suggest); 249 std::list<CreditCard*>* cards_to_suggest);
242 250
243 protected: 251 protected:
244 // Only PersonalDataManagerFactory and certain tests can create instances of 252 // Only PersonalDataManagerFactory and certain tests can create instances of
245 // PersonalDataManager. 253 // PersonalDataManager.
246 FRIEND_TEST_ALL_PREFIXES(AutofillMetricsTest, FirstMiddleLast); 254 FRIEND_TEST_ALL_PREFIXES(AutofillMetricsTest, FirstMiddleLast);
247 FRIEND_TEST_ALL_PREFIXES(AutofillMetricsTest, AutofillIsEnabledAtStartup); 255 FRIEND_TEST_ALL_PREFIXES(AutofillMetricsTest, AutofillIsEnabledAtStartup);
248 friend class autofill::AutofillInteractiveTest; 256 friend class autofill::AutofillInteractiveTest;
249 friend class autofill::AutofillTest; 257 friend class autofill::AutofillTest;
250 friend class autofill::PersonalDataManagerFactory; 258 friend class autofill::PersonalDataManagerFactory;
251 friend class PersonalDataManagerTest; 259 friend class PersonalDataManagerTest;
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 // |record_metrics| is true. Metrics should be recorded when the returned 399 // |record_metrics| is true. Metrics should be recorded when the returned
392 // profiles will be used to populate the fields shown in an Autofill popup. 400 // profiles will be used to populate the fields shown in an Autofill popup.
393 const std::vector<AutofillProfile*>& GetProfiles( 401 const std::vector<AutofillProfile*>& GetProfiles(
394 bool record_metrics) const; 402 bool record_metrics) const;
395 403
396 // Returns credit card suggestions based on the |cards_to_suggest| and the 404 // Returns credit card suggestions based on the |cards_to_suggest| and the
397 // |type| and |field_contents| of the credit card field. 405 // |type| and |field_contents| of the credit card field.
398 std::vector<Suggestion> GetSuggestionsForCards( 406 std::vector<Suggestion> GetSuggestionsForCards(
399 const AutofillType& type, 407 const AutofillType& type,
400 const base::string16& field_contents, 408 const base::string16& field_contents,
401 const std::list<const CreditCard*>& cards_to_suggest) const; 409 const std::vector<CreditCard*>& cards_to_suggest) const;
402 410
403 const std::string app_locale_; 411 const std::string app_locale_;
404 412
405 // The default country code for new addresses. 413 // The default country code for new addresses.
406 mutable std::string default_country_code_; 414 mutable std::string default_country_code_;
407 415
408 // The PrefService that this instance uses. Must outlive this instance. 416 // The PrefService that this instance uses. Must outlive this instance.
409 PrefService* pref_service_; 417 PrefService* pref_service_;
410 418
411 // The AccountTrackerService that this instance uses. Must outlive this 419 // The AccountTrackerService that this instance uses. Must outlive this
(...skipping 19 matching lines...) Expand all
431 439
432 // An observer to listen for changes to prefs::kAutofillWalletImportEnabled. 440 // An observer to listen for changes to prefs::kAutofillWalletImportEnabled.
433 std::unique_ptr<BooleanPrefMember> wallet_enabled_pref_; 441 std::unique_ptr<BooleanPrefMember> wallet_enabled_pref_;
434 442
435 DISALLOW_COPY_AND_ASSIGN(PersonalDataManager); 443 DISALLOW_COPY_AND_ASSIGN(PersonalDataManager);
436 }; 444 };
437 445
438 } // namespace autofill 446 } // namespace autofill
439 447
440 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_PERSONAL_DATA_MANAGER_H_ 448 #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_PERSONAL_DATA_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698