| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/autofill/core/browser/autofill_type.h" |
| |
| #include "base/logging.h" |
| |
| namespace autofill { |
| |
| AutofillType::AutofillType(ServerFieldType field_type) |
| : html_type_(HTML_TYPE_UNKNOWN), |
| html_mode_(HTML_MODE_NONE) { |
| if ((field_type < NO_SERVER_DATA || field_type >= MAX_VALID_FIELD_TYPE) || |
| (field_type >= 15 && field_type <= 19) || |
| (field_type >= 25 && field_type <= 29) || |
| (field_type >= 44 && field_type <= 50)) { |
| server_type_ = UNKNOWN_TYPE; |
| } else { |
| server_type_ = field_type; |
| } |
| } |
| |
| AutofillType::AutofillType(HtmlFieldType field_type, HtmlFieldMode mode) |
| : server_type_(UNKNOWN_TYPE), |
| html_type_(field_type), |
| html_mode_(mode) {} |
| |
| |
| AutofillType::AutofillType(const AutofillType& autofill_type) { |
| *this = autofill_type; |
| } |
| |
| AutofillType& AutofillType::operator=(const AutofillType& autofill_type) { |
| if (this != &autofill_type) { |
| this->server_type_ = autofill_type.server_type_; |
| this->html_type_ = autofill_type.html_type_; |
| this->html_mode_ = autofill_type.html_mode_; |
| } |
| |
| return *this; |
| } |
| |
| FieldTypeGroup AutofillType::group() const { |
| switch (server_type_) { |
| case NAME_FIRST: |
| case NAME_MIDDLE: |
| case NAME_LAST: |
| case NAME_MIDDLE_INITIAL: |
| case NAME_FULL: |
| case NAME_SUFFIX: |
| return NAME; |
| |
| case NAME_BILLING_FIRST: |
| case NAME_BILLING_MIDDLE: |
| case NAME_BILLING_LAST: |
| case NAME_BILLING_MIDDLE_INITIAL: |
| case NAME_BILLING_FULL: |
| case NAME_BILLING_SUFFIX: |
| return NAME_BILLING; |
| |
| case EMAIL_ADDRESS: |
| return EMAIL; |
| |
| case PHONE_HOME_NUMBER: |
| case PHONE_HOME_CITY_CODE: |
| case PHONE_HOME_COUNTRY_CODE: |
| case PHONE_HOME_CITY_AND_NUMBER: |
| case PHONE_HOME_WHOLE_NUMBER: |
| return PHONE_HOME; |
| |
| case PHONE_BILLING_NUMBER: |
| case PHONE_BILLING_CITY_CODE: |
| case PHONE_BILLING_COUNTRY_CODE: |
| case PHONE_BILLING_CITY_AND_NUMBER: |
| case PHONE_BILLING_WHOLE_NUMBER: |
| return PHONE_BILLING; |
| |
| case ADDRESS_HOME_LINE1: |
| case ADDRESS_HOME_LINE2: |
| case ADDRESS_HOME_APT_NUM: |
| case ADDRESS_HOME_CITY: |
| case ADDRESS_HOME_STATE: |
| case ADDRESS_HOME_ZIP: |
| case ADDRESS_HOME_COUNTRY: |
| return ADDRESS_HOME; |
| |
| case ADDRESS_BILLING_LINE1: |
| case ADDRESS_BILLING_LINE2: |
| case ADDRESS_BILLING_APT_NUM: |
| case ADDRESS_BILLING_CITY: |
| case ADDRESS_BILLING_STATE: |
| case ADDRESS_BILLING_ZIP: |
| case ADDRESS_BILLING_COUNTRY: |
| return ADDRESS_BILLING; |
| |
| case CREDIT_CARD_NAME: |
| case CREDIT_CARD_NUMBER: |
| case CREDIT_CARD_EXP_MONTH: |
| case CREDIT_CARD_EXP_2_DIGIT_YEAR: |
| case CREDIT_CARD_EXP_4_DIGIT_YEAR: |
| case CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR: |
| case CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR: |
| case CREDIT_CARD_TYPE: |
| case CREDIT_CARD_VERIFICATION_CODE: |
| return CREDIT_CARD; |
| |
| case COMPANY_NAME: |
| return COMPANY; |
| |
| case NO_SERVER_DATA: |
| case EMPTY_TYPE: |
| case PHONE_FAX_NUMBER: |
| case PHONE_FAX_CITY_CODE: |
| case PHONE_FAX_COUNTRY_CODE: |
| case PHONE_FAX_CITY_AND_NUMBER: |
| case PHONE_FAX_WHOLE_NUMBER: |
| case FIELD_WITH_DEFAULT_VALUE: |
| return NO_GROUP; |
| |
| case MAX_VALID_FIELD_TYPE: |
| NOTREACHED(); |
| return NO_GROUP; |
| |
| case UNKNOWN_TYPE: |
| break; |
| } |
| |
| switch (html_type_) { |
| case HTML_TYPE_NAME: |
| case HTML_TYPE_GIVEN_NAME: |
| case HTML_TYPE_ADDITIONAL_NAME: |
| case HTML_TYPE_ADDITIONAL_NAME_INITIAL: |
| case HTML_TYPE_FAMILY_NAME: |
| return html_mode_ == HTML_MODE_BILLING ? NAME_BILLING : NAME; |
| |
| case HTML_TYPE_ORGANIZATION: |
| return COMPANY; |
| |
| case HTML_TYPE_ADDRESS_LINE1: |
| case HTML_TYPE_ADDRESS_LINE2: |
| case HTML_TYPE_LOCALITY: |
| case HTML_TYPE_REGION: |
| case HTML_TYPE_COUNTRY_CODE: |
| case HTML_TYPE_COUNTRY_NAME: |
| case HTML_TYPE_POSTAL_CODE: |
| return html_mode_ == HTML_MODE_BILLING ? ADDRESS_BILLING : ADDRESS_HOME; |
| |
| case HTML_TYPE_CREDIT_CARD_NAME: |
| case HTML_TYPE_CREDIT_CARD_NUMBER: |
| case HTML_TYPE_CREDIT_CARD_EXP: |
| case HTML_TYPE_CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR: |
| case HTML_TYPE_CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR: |
| case HTML_TYPE_CREDIT_CARD_EXP_MONTH: |
| case HTML_TYPE_CREDIT_CARD_EXP_YEAR: |
| case HTML_TYPE_CREDIT_CARD_EXP_2_DIGIT_YEAR: |
| case HTML_TYPE_CREDIT_CARD_EXP_4_DIGIT_YEAR: |
| case HTML_TYPE_CREDIT_CARD_VERIFICATION_CODE: |
| case HTML_TYPE_CREDIT_CARD_TYPE: |
| return CREDIT_CARD; |
| |
| case HTML_TYPE_TEL: |
| case HTML_TYPE_TEL_COUNTRY_CODE: |
| case HTML_TYPE_TEL_NATIONAL: |
| case HTML_TYPE_TEL_AREA_CODE: |
| case HTML_TYPE_TEL_LOCAL: |
| case HTML_TYPE_TEL_LOCAL_PREFIX: |
| case HTML_TYPE_TEL_LOCAL_SUFFIX: |
| return html_mode_ == HTML_MODE_BILLING ? PHONE_BILLING : PHONE_HOME; |
| |
| case HTML_TYPE_EMAIL: |
| return EMAIL; |
| |
| case HTML_TYPE_UNKNOWN: |
| break; |
| } |
| |
| return NO_GROUP; |
| } |
| |
| bool AutofillType::IsUnknown() const { |
| return server_type_ == UNKNOWN_TYPE && html_type_ == HTML_TYPE_UNKNOWN; |
| } |
| |
| ServerFieldType AutofillType::GetStorableType() const { |
| // Map billing types to the equivalent non-billing types. |
| switch (server_type_) { |
| case ADDRESS_BILLING_LINE1: |
| return ADDRESS_HOME_LINE1; |
| |
| case ADDRESS_BILLING_LINE2: |
| return ADDRESS_HOME_LINE2; |
| |
| case ADDRESS_BILLING_APT_NUM: |
| return ADDRESS_HOME_APT_NUM; |
| |
| case ADDRESS_BILLING_CITY: |
| return ADDRESS_HOME_CITY; |
| |
| case ADDRESS_BILLING_STATE: |
| return ADDRESS_HOME_STATE; |
| |
| case ADDRESS_BILLING_ZIP: |
| return ADDRESS_HOME_ZIP; |
| |
| case ADDRESS_BILLING_COUNTRY: |
| return ADDRESS_HOME_COUNTRY; |
| |
| case PHONE_BILLING_WHOLE_NUMBER: |
| return PHONE_HOME_WHOLE_NUMBER; |
| |
| case PHONE_BILLING_NUMBER: |
| return PHONE_HOME_NUMBER; |
| |
| case PHONE_BILLING_CITY_CODE: |
| return PHONE_HOME_CITY_CODE; |
| |
| case PHONE_BILLING_COUNTRY_CODE: |
| return PHONE_HOME_COUNTRY_CODE; |
| |
| case PHONE_BILLING_CITY_AND_NUMBER: |
| return PHONE_HOME_CITY_AND_NUMBER; |
| |
| case NAME_BILLING_FIRST: |
| return NAME_FIRST; |
| |
| case NAME_BILLING_MIDDLE: |
| return NAME_MIDDLE; |
| |
| case NAME_BILLING_LAST: |
| return NAME_LAST; |
| |
| case NAME_BILLING_MIDDLE_INITIAL: |
| return NAME_MIDDLE_INITIAL; |
| |
| case NAME_BILLING_FULL: |
| return NAME_FULL; |
| |
| case NAME_BILLING_SUFFIX: |
| return NAME_SUFFIX; |
| |
| case UNKNOWN_TYPE: |
| break; // Try to parse HTML types instead. |
| |
| default: |
| return server_type_; |
| } |
| |
| switch (html_type_) { |
| case HTML_TYPE_UNKNOWN: |
| return UNKNOWN_TYPE; |
| |
| case HTML_TYPE_NAME: |
| return NAME_FULL; |
| |
| case HTML_TYPE_GIVEN_NAME: |
| return NAME_FIRST; |
| |
| case HTML_TYPE_ADDITIONAL_NAME: |
| return NAME_MIDDLE; |
| |
| case HTML_TYPE_FAMILY_NAME: |
| return NAME_LAST; |
| |
| case HTML_TYPE_ORGANIZATION: |
| return COMPANY_NAME; |
| |
| case HTML_TYPE_ADDRESS_LINE1: |
| return ADDRESS_HOME_LINE1; |
| |
| case HTML_TYPE_ADDRESS_LINE2: |
| return ADDRESS_HOME_LINE2; |
| |
| case HTML_TYPE_LOCALITY: |
| return ADDRESS_HOME_CITY; |
| |
| case HTML_TYPE_REGION: |
| return ADDRESS_HOME_STATE; |
| |
| case HTML_TYPE_COUNTRY_CODE: |
| case HTML_TYPE_COUNTRY_NAME: |
| return ADDRESS_HOME_COUNTRY; |
| |
| case HTML_TYPE_POSTAL_CODE: |
| return ADDRESS_HOME_ZIP; |
| |
| case HTML_TYPE_CREDIT_CARD_NAME: |
| return CREDIT_CARD_NAME; |
| |
| case HTML_TYPE_CREDIT_CARD_NUMBER: |
| return CREDIT_CARD_NUMBER; |
| |
| case HTML_TYPE_CREDIT_CARD_EXP: |
| return CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR; |
| |
| case HTML_TYPE_CREDIT_CARD_EXP_MONTH: |
| return CREDIT_CARD_EXP_MONTH; |
| |
| case HTML_TYPE_CREDIT_CARD_EXP_YEAR: |
| return CREDIT_CARD_EXP_4_DIGIT_YEAR; |
| |
| case HTML_TYPE_CREDIT_CARD_VERIFICATION_CODE: |
| return CREDIT_CARD_VERIFICATION_CODE; |
| |
| case HTML_TYPE_CREDIT_CARD_TYPE: |
| return CREDIT_CARD_TYPE; |
| |
| case HTML_TYPE_TEL: |
| return PHONE_HOME_WHOLE_NUMBER; |
| |
| case HTML_TYPE_TEL_COUNTRY_CODE: |
| return PHONE_HOME_COUNTRY_CODE; |
| |
| case HTML_TYPE_TEL_NATIONAL: |
| return PHONE_HOME_CITY_AND_NUMBER; |
| |
| case HTML_TYPE_TEL_AREA_CODE: |
| return PHONE_HOME_CITY_CODE; |
| |
| case HTML_TYPE_TEL_LOCAL: |
| case HTML_TYPE_TEL_LOCAL_PREFIX: |
| case HTML_TYPE_TEL_LOCAL_SUFFIX: |
| return PHONE_HOME_NUMBER; |
| |
| case HTML_TYPE_EMAIL: |
| return EMAIL_ADDRESS; |
| |
| case HTML_TYPE_ADDITIONAL_NAME_INITIAL: |
| return NAME_MIDDLE_INITIAL; |
| |
| case HTML_TYPE_CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR: |
| return CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR; |
| |
| case HTML_TYPE_CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR: |
| return CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR; |
| |
| case HTML_TYPE_CREDIT_CARD_EXP_2_DIGIT_YEAR: |
| return CREDIT_CARD_EXP_2_DIGIT_YEAR; |
| |
| case HTML_TYPE_CREDIT_CARD_EXP_4_DIGIT_YEAR: |
| return CREDIT_CARD_EXP_4_DIGIT_YEAR; |
| } |
| |
| NOTREACHED(); |
| return UNKNOWN_TYPE; |
| } |
| |
| // static |
| ServerFieldType AutofillType::GetEquivalentBillingFieldType( |
| ServerFieldType field_type) { |
| switch (field_type) { |
| case ADDRESS_HOME_LINE1: |
| return ADDRESS_BILLING_LINE1; |
| |
| case ADDRESS_HOME_LINE2: |
| return ADDRESS_BILLING_LINE2; |
| |
| case ADDRESS_HOME_APT_NUM: |
| return ADDRESS_BILLING_APT_NUM; |
| |
| case ADDRESS_HOME_CITY: |
| return ADDRESS_BILLING_CITY; |
| |
| case ADDRESS_HOME_STATE: |
| return ADDRESS_BILLING_STATE; |
| |
| case ADDRESS_HOME_ZIP: |
| return ADDRESS_BILLING_ZIP; |
| |
| case ADDRESS_HOME_COUNTRY: |
| return ADDRESS_BILLING_COUNTRY; |
| |
| case PHONE_HOME_WHOLE_NUMBER: |
| return PHONE_BILLING_WHOLE_NUMBER; |
| |
| case PHONE_HOME_NUMBER: |
| return PHONE_BILLING_NUMBER; |
| |
| case PHONE_HOME_CITY_CODE: |
| return PHONE_BILLING_CITY_CODE; |
| |
| case PHONE_HOME_COUNTRY_CODE: |
| return PHONE_BILLING_COUNTRY_CODE; |
| |
| case PHONE_HOME_CITY_AND_NUMBER: |
| return PHONE_BILLING_CITY_AND_NUMBER; |
| |
| case NAME_FIRST: |
| return NAME_BILLING_FIRST; |
| |
| case NAME_MIDDLE: |
| return NAME_BILLING_MIDDLE; |
| |
| case NAME_LAST: |
| return NAME_BILLING_LAST; |
| |
| case NAME_MIDDLE_INITIAL: |
| return NAME_BILLING_MIDDLE_INITIAL; |
| |
| case NAME_FULL: |
| return NAME_BILLING_FULL; |
| |
| case NAME_SUFFIX: |
| return NAME_BILLING_SUFFIX; |
| |
| default: |
| return field_type; |
| } |
| } |
| |
| std::string AutofillType::ToString() const { |
| if (IsUnknown()) |
| return "UNKNOWN_TYPE"; |
| |
| switch (server_type_) { |
| case NO_SERVER_DATA: |
| return "NO_SERVER_DATA"; |
| case UNKNOWN_TYPE: |
| break; // Should be handled in the HTML type handling code below. |
| case EMPTY_TYPE: |
| return "EMPTY_TYPE"; |
| case NAME_FIRST: |
| return "NAME_FIRST"; |
| case NAME_MIDDLE: |
| return "NAME_MIDDLE"; |
| case NAME_LAST: |
| return "NAME_LAST"; |
| case NAME_MIDDLE_INITIAL: |
| return "NAME_MIDDLE_INITIAL"; |
| case NAME_FULL: |
| return "NAME_FULL"; |
| case NAME_SUFFIX: |
| return "NAME_SUFFIX"; |
| case NAME_BILLING_FIRST: |
| return "NAME_BILLING_FIRST"; |
| case NAME_BILLING_MIDDLE: |
| return "NAME_BILLING_MIDDLE"; |
| case NAME_BILLING_LAST: |
| return "NAME_BILLING_LAST"; |
| case NAME_BILLING_MIDDLE_INITIAL: |
| return "NAME_BILLING_MIDDLE_INITIAL"; |
| case NAME_BILLING_FULL: |
| return "NAME_BILLING_FULL"; |
| case NAME_BILLING_SUFFIX: |
| return "NAME_BILLING_SUFFIX"; |
| case EMAIL_ADDRESS: |
| return "EMAIL_ADDRESS"; |
| case PHONE_HOME_NUMBER: |
| return "PHONE_HOME_NUMBER"; |
| case PHONE_HOME_CITY_CODE: |
| return "PHONE_HOME_CITY_CODE"; |
| case PHONE_HOME_COUNTRY_CODE: |
| return "PHONE_HOME_COUNTRY_CODE"; |
| case PHONE_HOME_CITY_AND_NUMBER: |
| return "PHONE_HOME_CITY_AND_NUMBER"; |
| case PHONE_HOME_WHOLE_NUMBER: |
| return "PHONE_HOME_WHOLE_NUMBER"; |
| case PHONE_FAX_NUMBER: |
| return "PHONE_FAX_NUMBER"; |
| case PHONE_FAX_CITY_CODE: |
| return "PHONE_FAX_CITY_CODE"; |
| case PHONE_FAX_COUNTRY_CODE: |
| return "PHONE_FAX_COUNTRY_CODE"; |
| case PHONE_FAX_CITY_AND_NUMBER: |
| return "PHONE_FAX_CITY_AND_NUMBER"; |
| case PHONE_FAX_WHOLE_NUMBER: |
| return "PHONE_FAX_WHOLE_NUMBER"; |
| case ADDRESS_HOME_LINE1: |
| return "ADDRESS_HOME_LINE1"; |
| case ADDRESS_HOME_LINE2: |
| return "ADDRESS_HOME_LINE2"; |
| case ADDRESS_HOME_APT_NUM: |
| return "ADDRESS_HOME_APT_NUM"; |
| case ADDRESS_HOME_CITY: |
| return "ADDRESS_HOME_CITY"; |
| case ADDRESS_HOME_STATE: |
| return "ADDRESS_HOME_STATE"; |
| case ADDRESS_HOME_ZIP: |
| return "ADDRESS_HOME_ZIP"; |
| case ADDRESS_HOME_COUNTRY: |
| return "ADDRESS_HOME_COUNTRY"; |
| case ADDRESS_BILLING_LINE1: |
| return "ADDRESS_BILLING_LINE1"; |
| case ADDRESS_BILLING_LINE2: |
| return "ADDRESS_BILLING_LINE2"; |
| case ADDRESS_BILLING_APT_NUM: |
| return "ADDRESS_BILLING_APT_NUM"; |
| case ADDRESS_BILLING_CITY: |
| return "ADDRESS_BILLING_CITY"; |
| case ADDRESS_BILLING_STATE: |
| return "ADDRESS_BILLING_STATE"; |
| case ADDRESS_BILLING_ZIP: |
| return "ADDRESS_BILLING_ZIP"; |
| case ADDRESS_BILLING_COUNTRY: |
| return "ADDRESS_BILLING_COUNTRY"; |
| case CREDIT_CARD_NAME: |
| return "CREDIT_CARD_NAME"; |
| case CREDIT_CARD_NUMBER: |
| return "CREDIT_CARD_NUMBER"; |
| case CREDIT_CARD_EXP_MONTH: |
| return "CREDIT_CARD_EXP_MONTH"; |
| case CREDIT_CARD_EXP_2_DIGIT_YEAR: |
| return "CREDIT_CARD_EXP_2_DIGIT_YEAR"; |
| case CREDIT_CARD_EXP_4_DIGIT_YEAR: |
| return "CREDIT_CARD_EXP_4_DIGIT_YEAR"; |
| case CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR: |
| return "CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR"; |
| case CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR: |
| return "CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR"; |
| case CREDIT_CARD_TYPE: |
| return "CREDIT_CARD_TYPE"; |
| case CREDIT_CARD_VERIFICATION_CODE: |
| return "CREDIT_CARD_VERIFICATION_CODE"; |
| case COMPANY_NAME: |
| return "COMPANY_NAME"; |
| case FIELD_WITH_DEFAULT_VALUE: |
| return "FIELD_WITH_DEFAULT_VALUE"; |
| case PHONE_BILLING_NUMBER: |
| return "PHONE_BILLING_NUMBER"; |
| case PHONE_BILLING_CITY_CODE: |
| return "PHONE_BILLING_CITY_CODE"; |
| case PHONE_BILLING_COUNTRY_CODE: |
| return "PHONE_BILLING_COUNTRY_CODE"; |
| case PHONE_BILLING_CITY_AND_NUMBER: |
| return "PHONE_BILLING_CITY_AND_NUMBER"; |
| case PHONE_BILLING_WHOLE_NUMBER: |
| return "PHONE_BILLING_WHOLE_NUMBER"; |
| case MAX_VALID_FIELD_TYPE: |
| return std::string(); |
| } |
| |
| switch (html_type_) { |
| case HTML_TYPE_UNKNOWN: |
| NOTREACHED(); |
| break; |
| case HTML_TYPE_NAME: |
| return "HTML_TYPE_NAME"; |
| case HTML_TYPE_GIVEN_NAME: |
| return "HTML_TYPE_GIVEN_NAME"; |
| case HTML_TYPE_ADDITIONAL_NAME: |
| return "HTML_TYPE_ADDITIONAL_NAME"; |
| case HTML_TYPE_FAMILY_NAME: |
| return "HTML_TYPE_FAMILY_NAME"; |
| case HTML_TYPE_ORGANIZATION: |
| return "HTML_TYPE_ORGANIZATION"; |
| case HTML_TYPE_ADDRESS_LINE1: |
| return "HTML_TYPE_ADDRESS_LINE1"; |
| case HTML_TYPE_ADDRESS_LINE2: |
| return "HTML_TYPE_ADDRESS_LINE2"; |
| case HTML_TYPE_LOCALITY: |
| return "HTML_TYPE_LOCALITY"; |
| case HTML_TYPE_REGION: |
| return "HTML_TYPE_REGION"; |
| case HTML_TYPE_COUNTRY_CODE: |
| return "HTML_TYPE_COUNTRY_CODE"; |
| case HTML_TYPE_COUNTRY_NAME: |
| return "HTML_TYPE_COUNTRY_NAME"; |
| case HTML_TYPE_POSTAL_CODE: |
| return "HTML_TYPE_POSTAL_CODE"; |
| case HTML_TYPE_CREDIT_CARD_NAME: |
| return "HTML_TYPE_CREDIT_CARD_NAME"; |
| case HTML_TYPE_CREDIT_CARD_NUMBER: |
| return "HTML_TYPE_CREDIT_CARD_NUMBER"; |
| case HTML_TYPE_CREDIT_CARD_EXP: |
| return "HTML_TYPE_CREDIT_CARD_EXP"; |
| case HTML_TYPE_CREDIT_CARD_EXP_MONTH: |
| return "HTML_TYPE_CREDIT_CARD_EXP_MONTH"; |
| case HTML_TYPE_CREDIT_CARD_EXP_YEAR: |
| return "HTML_TYPE_CREDIT_CARD_EXP_YEAR"; |
| case HTML_TYPE_CREDIT_CARD_VERIFICATION_CODE: |
| return "HTML_TYPE_CREDIT_CARD_VERIFICATION_CODE"; |
| case HTML_TYPE_CREDIT_CARD_TYPE: |
| return "HTML_TYPE_CREDIT_CARD_TYPE"; |
| case HTML_TYPE_TEL: |
| return "HTML_TYPE_TEL"; |
| case HTML_TYPE_TEL_COUNTRY_CODE: |
| return "HTML_TYPE_TEL_COUNTRY_CODE"; |
| case HTML_TYPE_TEL_NATIONAL: |
| return "HTML_TYPE_TEL_NATIONAL"; |
| case HTML_TYPE_TEL_AREA_CODE: |
| return "HTML_TYPE_TEL_AREA_CODE"; |
| case HTML_TYPE_TEL_LOCAL: |
| return "HTML_TYPE_TEL_LOCAL"; |
| case HTML_TYPE_TEL_LOCAL_PREFIX: |
| return "HTML_TYPE_TEL_LOCAL_PREFIX"; |
| case HTML_TYPE_TEL_LOCAL_SUFFIX: |
| return "HTML_TYPE_TEL_LOCAL_SUFFIX"; |
| case HTML_TYPE_EMAIL: |
| return "HTML_TYPE_EMAIL"; |
| case HTML_TYPE_ADDITIONAL_NAME_INITIAL: |
| return "HTML_TYPE_ADDITIONAL_NAME_INITIAL"; |
| case HTML_TYPE_CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR: |
| return "HTML_TYPE_CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR"; |
| case HTML_TYPE_CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR: |
| return "HTML_TYPE_CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR"; |
| case HTML_TYPE_CREDIT_CARD_EXP_2_DIGIT_YEAR: |
| return "HTML_TYPE_CREDIT_CARD_EXP_2_DIGIT_YEAR"; |
| case HTML_TYPE_CREDIT_CARD_EXP_4_DIGIT_YEAR: |
| return "HTML_TYPE_CREDIT_CARD_EXP_4_DIGIT_YEAR"; |
| } |
| |
| NOTREACHED(); |
| return std::string(); |
| } |
| |
| // static |
| ServerFieldType AutofillType::StringToFieldType(const std::string& str) { |
| if (str == "NO_SERVER_DATA") |
| return NO_SERVER_DATA; |
| if (str == "UNKNOWN_TYPE") |
| return UNKNOWN_TYPE; |
| if (str == "EMPTY_TYPE") |
| return EMPTY_TYPE; |
| if (str == "NAME_FIRST") |
| return NAME_FIRST; |
| if (str == "NAME_MIDDLE") |
| return NAME_MIDDLE; |
| if (str == "NAME_LAST") |
| return NAME_LAST; |
| if (str == "NAME_MIDDLE_INITIAL") |
| return NAME_MIDDLE_INITIAL; |
| if (str == "NAME_FULL") |
| return NAME_FULL; |
| if (str == "NAME_SUFFIX") |
| return NAME_SUFFIX; |
| if (str == "NAME_BILLING_FIRST") |
| return NAME_BILLING_FIRST; |
| if (str == "NAME_BILLING_MIDDLE") |
| return NAME_BILLING_MIDDLE; |
| if (str == "NAME_BILLING_LAST") |
| return NAME_BILLING_LAST; |
| if (str == "NAME_BILLING_MIDDLE_INITIAL") |
| return NAME_BILLING_MIDDLE_INITIAL; |
| if (str == "NAME_BILLING_FULL") |
| return NAME_BILLING_FULL; |
| if (str == "NAME_BILLING_SUFFIX") |
| return NAME_BILLING_SUFFIX; |
| if (str == "EMAIL_ADDRESS") |
| return EMAIL_ADDRESS; |
| if (str == "PHONE_HOME_NUMBER") |
| return PHONE_HOME_NUMBER; |
| if (str == "PHONE_HOME_CITY_CODE") |
| return PHONE_HOME_CITY_CODE; |
| if (str == "PHONE_HOME_COUNTRY_CODE") |
| return PHONE_HOME_COUNTRY_CODE; |
| if (str == "PHONE_HOME_CITY_AND_NUMBER") |
| return PHONE_HOME_CITY_AND_NUMBER; |
| if (str == "PHONE_HOME_WHOLE_NUMBER") |
| return PHONE_HOME_WHOLE_NUMBER; |
| if (str == "ADDRESS_HOME_LINE1") |
| return ADDRESS_HOME_LINE1; |
| if (str == "ADDRESS_HOME_LINE2") |
| return ADDRESS_HOME_LINE2; |
| if (str == "ADDRESS_HOME_APT_NUM") |
| return ADDRESS_HOME_APT_NUM; |
| if (str == "ADDRESS_HOME_CITY") |
| return ADDRESS_HOME_CITY; |
| if (str == "ADDRESS_HOME_STATE") |
| return ADDRESS_HOME_STATE; |
| if (str == "ADDRESS_HOME_ZIP") |
| return ADDRESS_HOME_ZIP; |
| if (str == "ADDRESS_HOME_COUNTRY") |
| return ADDRESS_HOME_COUNTRY; |
| if (str == "ADDRESS_BILLING_LINE1") |
| return ADDRESS_BILLING_LINE1; |
| if (str == "ADDRESS_BILLING_LINE2") |
| return ADDRESS_BILLING_LINE2; |
| if (str == "ADDRESS_BILLING_APT_NUM") |
| return ADDRESS_BILLING_APT_NUM; |
| if (str == "ADDRESS_BILLING_CITY") |
| return ADDRESS_BILLING_CITY; |
| if (str == "ADDRESS_BILLING_STATE") |
| return ADDRESS_BILLING_STATE; |
| if (str == "ADDRESS_BILLING_ZIP") |
| return ADDRESS_BILLING_ZIP; |
| if (str == "ADDRESS_BILLING_COUNTRY") |
| return ADDRESS_BILLING_COUNTRY; |
| if (str == "CREDIT_CARD_NAME") |
| return CREDIT_CARD_NAME; |
| if (str == "CREDIT_CARD_NUMBER") |
| return CREDIT_CARD_NUMBER; |
| if (str == "CREDIT_CARD_EXP_MONTH") |
| return CREDIT_CARD_EXP_MONTH; |
| if (str == "CREDIT_CARD_EXP_2_DIGIT_YEAR") |
| return CREDIT_CARD_EXP_2_DIGIT_YEAR; |
| if (str == "CREDIT_CARD_EXP_4_DIGIT_YEAR") |
| return CREDIT_CARD_EXP_4_DIGIT_YEAR; |
| if (str == "CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR") |
| return CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR; |
| if (str == "CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR") |
| return CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR; |
| if (str == "CREDIT_CARD_TYPE") |
| return CREDIT_CARD_TYPE; |
| if (str == "CREDIT_CARD_VERIFICATION_CODE") |
| return CREDIT_CARD_VERIFICATION_CODE; |
| if (str == "COMPANY_NAME") |
| return COMPANY_NAME; |
| |
| NOTREACHED() << "Unknown ServerFieldType " << str; |
| return UNKNOWN_TYPE; |
| } |
| |
| } // namespace autofill |