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

Side by Side Diff: components/autofill/core/browser/autofill_field.cc

Issue 1582353006: CountryNames: Separate data creation from usage (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@571610_exposeCountryNamesToTesting
Patch Set: Just rebased Created 4 years, 11 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 #include "components/autofill/core/browser/autofill_field.h" 5 #include "components/autofill/core/browser/autofill_field.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/i18n/string_search.h" 10 #include "base/i18n/string_search.h"
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 if (!full.empty() && SetSelectControlValueSubstringMatch(full, field)) { 167 if (!full.empty() && SetSelectControlValueSubstringMatch(full, field)) {
168 return true; 168 return true;
169 } 169 }
170 170
171 // Then try an inexact match of the abbreviation name. 171 // Then try an inexact match of the abbreviation name.
172 return !abbreviation.empty() && 172 return !abbreviation.empty() &&
173 SetSelectControlValueTokenMatch(abbreviation, field); 173 SetSelectControlValueTokenMatch(abbreviation, field);
174 } 174 }
175 175
176 bool FillCountrySelectControl(const base::string16& value, 176 bool FillCountrySelectControl(const base::string16& value,
177 const std::string& app_locale,
178 FormFieldData* field_data) { 177 FormFieldData* field_data) {
179 std::string country_code = 178 std::string country_code = CountryNames::GetInstance()->GetCountryCode(value);
180 CountryNames::GetInstance()->GetCountryCode(value, app_locale);
181 if (country_code.empty()) 179 if (country_code.empty())
182 return false; 180 return false;
183 181
184 DCHECK_EQ(field_data->option_values.size(), 182 DCHECK_EQ(field_data->option_values.size(),
185 field_data->option_contents.size()); 183 field_data->option_contents.size());
186 for (size_t i = 0; i < field_data->option_values.size(); ++i) { 184 for (size_t i = 0; i < field_data->option_values.size(); ++i) {
187 // Canonicalize each <option> value to a country code, and compare to the 185 // Canonicalize each <option> value to a country code, and compare to the
188 // target country code. 186 // target country code.
189 base::string16 value = field_data->option_values[i]; 187 base::string16 value = field_data->option_values[i];
190 base::string16 contents = field_data->option_contents[i]; 188 base::string16 contents = field_data->option_contents[i];
191 if (country_code == 189 if (country_code == CountryNames::GetInstance()->GetCountryCode(value) ||
192 CountryNames::GetInstance()->GetCountryCode(value, app_locale) || 190 country_code == CountryNames::GetInstance()->GetCountryCode(contents)) {
193 country_code ==
194 CountryNames::GetInstance()->GetCountryCode(contents, app_locale)) {
195 field_data->value = value; 191 field_data->value = value;
196 return true; 192 return true;
197 } 193 }
198 } 194 }
199 195
200 return false; 196 return false;
201 } 197 }
202 198
203 bool FillExpirationMonthSelectControl(const base::string16& value, 199 bool FillExpirationMonthSelectControl(const base::string16& value,
204 const std::string& app_locale, 200 const std::string& app_locale,
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 return FillExpirationMonthSelectControl(value, app_locale, field); 338 return FillExpirationMonthSelectControl(value, app_locale, field);
343 339
344 // Search for exact matches. 340 // Search for exact matches.
345 if (SetSelectControlValue(value, field)) 341 if (SetSelectControlValue(value, field))
346 return true; 342 return true;
347 343
348 // If that fails, try specific fallbacks based on the field type. 344 // If that fails, try specific fallbacks based on the field type.
349 if (storable_type == ADDRESS_HOME_STATE) { 345 if (storable_type == ADDRESS_HOME_STATE) {
350 return FillStateSelectControl(value, field); 346 return FillStateSelectControl(value, field);
351 } else if (storable_type == ADDRESS_HOME_COUNTRY) { 347 } else if (storable_type == ADDRESS_HOME_COUNTRY) {
352 return FillCountrySelectControl(value, app_locale, field); 348 return FillCountrySelectControl(value, field);
353 } else if (storable_type == CREDIT_CARD_EXP_2_DIGIT_YEAR || 349 } else if (storable_type == CREDIT_CARD_EXP_2_DIGIT_YEAR ||
354 storable_type == CREDIT_CARD_EXP_4_DIGIT_YEAR) { 350 storable_type == CREDIT_CARD_EXP_4_DIGIT_YEAR) {
355 return FillYearSelectControl(value, field); 351 return FillYearSelectControl(value, field);
356 } else if (storable_type == CREDIT_CARD_TYPE) { 352 } else if (storable_type == CREDIT_CARD_TYPE) {
357 return FillCreditCardTypeSelectControl(value, field); 353 return FillCreditCardTypeSelectControl(value, field);
358 } 354 }
359 355
360 return false; 356 return false;
361 } 357 }
362 358
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 if (compare.StringsEqual(value_stripped, option_contents)) { 592 if (compare.StringsEqual(value_stripped, option_contents)) {
597 if (index) 593 if (index)
598 *index = i; 594 *index = i;
599 return true; 595 return true;
600 } 596 }
601 } 597 }
602 return false; 598 return false;
603 } 599 }
604 600
605 } // namespace autofill 601 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/core/browser/address_unittest.cc ('k') | components/autofill/core/browser/autofill_field_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698