diff options
author | jimblackler@chromium.org <jimblackler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-04 12:35:42 +0000 |
---|---|---|
committer | jimblackler@chromium.org <jimblackler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-04 12:35:42 +0000 |
commit | a36215aa2ae4ccdee4a577b4668dfa391d1ced0c (patch) | |
tree | 01e99ceb16a0aa81fc64cd7463381283a9979103 /components | |
parent | c9132eaa3f2eb391284e1b64af353c84947893b7 (diff) | |
download | chromium_src-a36215aa2ae4ccdee4a577b4668dfa391d1ced0c.zip chromium_src-a36215aa2ae4ccdee4a577b4668dfa391d1ced0c.tar.gz chromium_src-a36215aa2ae4ccdee4a577b4668dfa391d1ced0c.tar.bz2 |
Rules for Autofill profile import relaxed where appropriate for most countries worldwide
Specifically, adapt PersonalDataManager::IsMinimumAddress to use the rules from the Android Address Widget project https://code.google.com/p/libaddressinput/source/browse/trunk/src/com/android/i18n/addressinput/RegionDataConstants.java?spec=svn117&r=117 regarding minimum address elements (Address Line 1, City, State, Zip) for each locality.
BUG=http://crbug.com/224567
TEST=PersonalDataManager.ImportFormMinimumAddressUSA, PersonalDataManager.ImportFormMinimumAddressGB, PersonalDataManager.ImportFormMinimumAddressGI
Review URL: https://chromiumcodereview.appspot.com/13375023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192319 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components')
-rw-r--r-- | components/autofill/browser/autofill_country.cc | 728 | ||||
-rw-r--r-- | components/autofill/browser/autofill_country.h | 43 | ||||
-rw-r--r-- | components/autofill/browser/personal_data_manager.cc | 33 | ||||
-rw-r--r-- | components/autofill/browser/personal_data_manager_unittest.cc | 84 |
4 files changed, 640 insertions, 248 deletions
diff --git a/components/autofill/browser/autofill_country.cc b/components/autofill/browser/autofill_country.cc index e8a8f9e..f38ba09 100644 --- a/components/autofill/browser/autofill_country.cc +++ b/components/autofill/browser/autofill_country.cc @@ -39,6 +39,7 @@ const size_t kLocaleCapacity = struct CountryData { int postal_code_label_id; int state_label_id; + AddressRequiredFields address_required_fields; }; struct StaticCountryData { @@ -49,487 +50,731 @@ struct StaticCountryData { // Maps country codes to localized label string identifiers. const StaticCountryData kCountryData[] = { { "AD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PARISH } }, + IDS_AUTOFILL_FIELD_LABEL_PARISH, + ADDRESS_REQUIRES_STATE } }, { "AE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_EMIRATE } }, + IDS_AUTOFILL_FIELD_LABEL_EMIRATE, + ADDRESS_REQUIRES_STATE } }, { "AF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "AG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_ADDRESS_LINE_1_ONLY } }, { "AI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "AL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "AM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "AN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "AO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "AQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "AR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "AS", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "AT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "AU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "AW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "AX", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "AZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BB", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PARISH } }, + IDS_AUTOFILL_FIELD_LABEL_PARISH, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "BF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "BM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "BS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_ISLAND } }, + IDS_AUTOFILL_FIELD_LABEL_ISLAND, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "BZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "CC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "CI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "CO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, + { "CS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_ISLAND } }, + IDS_AUTOFILL_FIELD_LABEL_ISLAND, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CX", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "CZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "DE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "DJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "DK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "DM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "DO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "DZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "EC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "EE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "EG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "EH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "ER", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "ES", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "ET", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "FI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "FJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "FK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "FM", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "FO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "FR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "GA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "GB", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_COUNTY } }, + IDS_AUTOFILL_FIELD_LABEL_COUNTY, + ADDRESS_REQUIRES_CITY_ZIP } }, { "GD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "GE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "GF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "GG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "GH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "GI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_ADDRESS_LINE_1_ONLY } }, { "GL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "GM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "GN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "GP", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "GQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "GR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "GS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "GT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "GU", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "GW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "GY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "HK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_AREA } }, + IDS_AUTOFILL_FIELD_LABEL_AREA, + ADDRESS_REQUIRES_STATE } }, { "HM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "HN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_STATE } }, { "HR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "HT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "HU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "ID", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "IE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_COUNTY } }, + IDS_AUTOFILL_FIELD_LABEL_COUNTY, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "IL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "IM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "IN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "IO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "IQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_STATE } }, { "IS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "IT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "JE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "JM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PARISH } }, + IDS_AUTOFILL_FIELD_LABEL_PARISH, + ADDRESS_REQUIRES_CITY_STATE } }, { "JO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "JP", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PREFECTURE } }, + IDS_AUTOFILL_FIELD_LABEL_PREFECTURE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "KE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "KG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "KH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "KI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_ISLAND } }, + IDS_AUTOFILL_FIELD_LABEL_ISLAND, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "KM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "KN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_ISLAND } }, + IDS_AUTOFILL_FIELD_LABEL_ISLAND, + ADDRESS_REQUIRES_CITY_STATE } }, { "KP", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "KR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "KW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "KY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_ISLAND } }, + IDS_AUTOFILL_FIELD_LABEL_ISLAND, + ADDRESS_REQUIRES_STATE } }, { "KZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "LA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "LB", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "LC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "LI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "LK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "LR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "LS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "LT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "LU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "LV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "LY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "MA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "MC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "MD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "ME", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "MF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "MG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "MH", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "MK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "ML", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "MN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "MO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_ADDRESS_LINE_1_ONLY } }, { "MP", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "MQ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "MR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "MS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "MT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "MU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "MV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "MW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "MX", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "MY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "MZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "NA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "NC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "NE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "NF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "NG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "NI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_DEPARTMENT } }, + IDS_AUTOFILL_FIELD_LABEL_DEPARTMENT, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "NL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "NO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "NP", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "NR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_DISTRICT } }, + IDS_AUTOFILL_FIELD_LABEL_DISTRICT, + ADDRESS_REQUIRES_STATE } }, { "NU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "NZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "OM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "PA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "PE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "PF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_ISLAND } }, + IDS_AUTOFILL_FIELD_LABEL_ISLAND, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "PG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_STATE } }, { "PH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY } }, { "PK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "PL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "PM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "PN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "PR", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "PS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "PT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "PW", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "PY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "QA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "RE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "RO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "RS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "RU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "RW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "SA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "SB", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "SC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_ISLAND } }, + IDS_AUTOFILL_FIELD_LABEL_ISLAND, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "SE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "SG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_ZIP } }, { "SH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "SI", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "SJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "SK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "SL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "SM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_ZIP } }, { "SN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "SO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_STATE } }, { "SR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "ST", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "SV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_STATE } }, { "SZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "TC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "TD", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "TF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "TG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "TH", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "TJ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "TK", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "TL", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "TM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "TN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "TO", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "TR", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "TT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "TV", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_ISLAND } }, + IDS_AUTOFILL_FIELD_LABEL_ISLAND, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "TW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_COUNTY } }, + IDS_AUTOFILL_FIELD_LABEL_COUNTY, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "TZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "UA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "UG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "UM", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_STATE } }, { "US", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "UY", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "UZ", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "VA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "VC", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "VE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_STATE } }, { "VG", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_ADDRESS_LINE_1_ONLY } }, { "VI", { IDS_AUTOFILL_FIELD_LABEL_ZIP_CODE, - IDS_AUTOFILL_FIELD_LABEL_STATE } }, + IDS_AUTOFILL_FIELD_LABEL_STATE, + ADDRESS_REQUIRES_CITY_STATE_ZIP } }, { "VN", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY } }, { "VU", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "WF", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "WS", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, { "YE", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY } }, { "YT", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "ZA", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY_ZIP } }, { "ZM", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIRES_CITY } }, { "ZW", { IDS_AUTOFILL_FIELD_LABEL_POSTAL_CODE, - IDS_AUTOFILL_FIELD_LABEL_PROVINCE } }, + IDS_AUTOFILL_FIELD_LABEL_PROVINCE, + ADDRESS_REQUIREMENTS_UNKNOWN } }, }; // A singleton class that encapsulates a map from country codes to country data. @@ -835,6 +1080,7 @@ AutofillCountry::AutofillCountry(const std::string& country_code, name_ = l10n_util::GetDisplayNameForCountry(country_code, locale); postal_code_label_ = l10n_util::GetStringUTF16(data.postal_code_label_id); state_label_ = l10n_util::GetStringUTF16(data.state_label_id); + address_required_fields_ = data.address_required_fields; } AutofillCountry::~AutofillCountry() { diff --git a/components/autofill/browser/autofill_country.h b/components/autofill/browser/autofill_country.h index 2dcaef6..72f0a8c 100644 --- a/components/autofill/browser/autofill_country.h +++ b/components/autofill/browser/autofill_country.h @@ -11,6 +11,31 @@ #include "base/basictypes.h" #include "base/string16.h" +// The minimal required fields for an address to be complete for a given +// country. +enum AddressRequiredFields { + ADDRESS_REQUIRES_CITY = 1 << 0, + ADDRESS_REQUIRES_STATE = 1 << 1, + ADDRESS_REQUIRES_ZIP = 1 << 2, + + // Composite versions (for data). + ADDRESS_REQUIRES_CITY_STATE = + ADDRESS_REQUIRES_CITY | ADDRESS_REQUIRES_STATE, + ADDRESS_REQUIRES_STATE_ZIP = + ADDRESS_REQUIRES_STATE | ADDRESS_REQUIRES_ZIP, + ADDRESS_REQUIRES_CITY_ZIP = + ADDRESS_REQUIRES_CITY |ADDRESS_REQUIRES_ZIP, + ADDRESS_REQUIRES_CITY_STATE_ZIP = + ADDRESS_REQUIRES_CITY | ADDRESS_REQUIRES_STATE | ADDRESS_REQUIRES_ZIP, + + // Policy for countries that don't have city, state or zip requirements. + ADDRESS_REQUIRES_ADDRESS_LINE_1_ONLY = 0, + + // Policy for countries for which we do not have information about valid + // address format. + ADDRESS_REQUIREMENTS_UNKNOWN = ADDRESS_REQUIRES_CITY_STATE_ZIP, +}; + // Stores data associated with a country. Strings are localized to the app // locale. class AutofillCountry { @@ -45,6 +70,21 @@ class AutofillCountry { const string16 postal_code_label() const { return postal_code_label_; } const string16 state_label() const { return state_label_; } + // City is expected in a complete address for this country. + bool requires_city() const { + return (address_required_fields_ & ADDRESS_REQUIRES_CITY) != 0; + } + + // State is expected in a complete address for this country. + bool requires_state() const { + return (address_required_fields_ & ADDRESS_REQUIRES_STATE) != 0; + } + + // Zip is expected in a complete address for this country. + bool requires_zip() const { + return (address_required_fields_ & ADDRESS_REQUIRES_ZIP) != 0; + } + private: AutofillCountry(const std::string& country_code, const string16& name, @@ -63,6 +103,9 @@ class AutofillCountry { // The localized label for the state (or province, district, etc.) field. string16 state_label_; + // Address requirement field codes for the country. + AddressRequiredFields address_required_fields_; + DISALLOW_COPY_AND_ASSIGN(AutofillCountry); }; diff --git a/components/autofill/browser/personal_data_manager.cc b/components/autofill/browser/personal_data_manager.cc index 5647dae..4c3ff50 100644 --- a/components/autofill/browser/personal_data_manager.cc +++ b/components/autofill/browser/personal_data_manager.cc @@ -78,14 +78,33 @@ T* address_of(T& v) { } // Returns true if minimum requirements for import of a given |profile| have -// been met. An address submitted via a form must have at least these fields -// filled. No verification of validity of the contents is preformed. This is -// and existence check only. +// been met. An address submitted via a form must have at least the fields +// required as determined by its country code. +// No verification of validity of the contents is preformed. This is an +// existence check only. bool IsMinimumAddress(const AutofillProfile& profile) { - return !profile.GetRawInfo(ADDRESS_HOME_LINE1).empty() && - !profile.GetRawInfo(ADDRESS_HOME_CITY).empty() && - !profile.GetRawInfo(ADDRESS_HOME_STATE).empty() && - !profile.GetRawInfo(ADDRESS_HOME_ZIP).empty(); + // All countries require at least one address line. + if (profile.GetRawInfo(ADDRESS_HOME_LINE1).empty()) + return false; + std::string app_locale = AutofillCountry::ApplicationLocale(); + std::string country_code = profile.CountryCode(); + + if (country_code.empty()) + country_code = AutofillCountry::CountryCodeForLocale(app_locale); + + AutofillCountry country(country_code, app_locale); + + if (country.requires_city() && profile.GetRawInfo(ADDRESS_HOME_CITY).empty()) + return false; + + if (country.requires_state() && + profile.GetRawInfo(ADDRESS_HOME_STATE).empty()) + return false; + + if (country.requires_zip() && profile.GetRawInfo(ADDRESS_HOME_ZIP).empty()) + return false; + + return true; } // Return true if the |field_type| and |value| are valid within the context diff --git a/components/autofill/browser/personal_data_manager_unittest.cc b/components/autofill/browser/personal_data_manager_unittest.cc index 740c9f8..ac3a40f 100644 --- a/components/autofill/browser/personal_data_manager_unittest.cc +++ b/components/autofill/browser/personal_data_manager_unittest.cc @@ -605,6 +605,90 @@ TEST_F(PersonalDataManagerTest, ImportFormDataNotEnoughFilledFields) { ASSERT_EQ(0U, credit_cards.size()); } +TEST_F(PersonalDataManagerTest, ImportFormMinimumAddressUSA) { + // United States addresses must specifiy one address line, a city, state and + // zip code. + FormData form; + FormFieldData field; + autofill_test::CreateTestFormField( + "Name:", "name", "Barack Obama", "text", &field); + form.fields.push_back(field); + autofill_test::CreateTestFormField( + "Address:", "address", "1600 Pennsylvania Avenue", "text", &field); + form.fields.push_back(field); + autofill_test::CreateTestFormField( + "City:", "city", "Washington", "text", &field); + form.fields.push_back(field); + autofill_test::CreateTestFormField( + "State:", "state", "DC", "text", &field); + form.fields.push_back(field); + autofill_test::CreateTestFormField( + "Zip:", "zip", "20500", "text", &field); + form.fields.push_back(field); + autofill_test::CreateTestFormField( + "Country:", "country", "USA", "text", &field); + form.fields.push_back(field); + FormStructure form_structure(form, std::string()); + form_structure.DetermineHeuristicTypes(TestAutofillMetrics()); + const CreditCard* imported_credit_card; + EXPECT_TRUE(personal_data_->ImportFormData(form_structure, + &imported_credit_card)); + const std::vector<AutofillProfile*>& profiles = personal_data_->GetProfiles(); + ASSERT_EQ(1U, profiles.size()); +} + +TEST_F(PersonalDataManagerTest, ImportFormMinimumAddressGB) { + // British addresses do not require a state/province as the county is usually + // not requested on forms. + FormData form; + FormFieldData field; + autofill_test::CreateTestFormField( + "Name:", "name", "David Cameron", "text", &field); + form.fields.push_back(field); + autofill_test::CreateTestFormField( + "Address:", "address", "10 Downing Street", "text", &field); + form.fields.push_back(field); + autofill_test::CreateTestFormField( + "City:", "city", "London", "text", &field); + form.fields.push_back(field); + autofill_test::CreateTestFormField( + "Postcode:", "postcode", "SW1A 2AA", "text", &field); + form.fields.push_back(field); + autofill_test::CreateTestFormField( + "Country:", "country", "United Kingdom", "text", &field); + form.fields.push_back(field); + FormStructure form_structure(form, std::string()); + form_structure.DetermineHeuristicTypes(TestAutofillMetrics()); + const CreditCard* imported_credit_card; + EXPECT_TRUE(personal_data_->ImportFormData(form_structure, + &imported_credit_card)); + const std::vector<AutofillProfile*>& profiles = personal_data_->GetProfiles(); + ASSERT_EQ(1U, profiles.size()); +} + +TEST_F(PersonalDataManagerTest, ImportFormMinimumAddressGI) { + // Gibraltar has the most minimal set of requirements for a valid address. + // There are no cities or provinces and no postal/zip code system. + FormData form; + FormFieldData field; + autofill_test::CreateTestFormField( + "Name:", "name", "Sir Adrian Johns", "text", &field); + form.fields.push_back(field); + autofill_test::CreateTestFormField( + "Address:", "address", "The Convent, Main Street", "text", &field); + form.fields.push_back(field); + autofill_test::CreateTestFormField( + "Country:", "country", "Gibraltar", "text", &field); + form.fields.push_back(field); + FormStructure form_structure(form, std::string()); + form_structure.DetermineHeuristicTypes(TestAutofillMetrics()); + const CreditCard* imported_credit_card; + EXPECT_TRUE(personal_data_->ImportFormData(form_structure, + &imported_credit_card)); + const std::vector<AutofillProfile*>& profiles = personal_data_->GetProfiles(); + ASSERT_EQ(1U, profiles.size()); +} + TEST_F(PersonalDataManagerTest, ImportPhoneNumberSplitAcrossMultipleFields) { FormData form; FormFieldData field; |