| 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 #include "chrome/browser/autofill/autofill_type.h" | 5 #include "chrome/browser/autofill/autofill_type.h" |
| 6 | 6 |
| 7 #include <ostream> | 7 #include <ostream> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 | 10 |
| 11 namespace { | |
| 12 | |
| 13 AutofillType::AutofillTypeDefinition kAutofillTypeDefinitions[] = { | |
| 14 // NO_SERVER_DATA | |
| 15 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 16 // UNKNOWN_TYPE | |
| 17 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 18 // EMPTY_TYPE | |
| 19 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 20 | |
| 21 // NAME_FIRST | |
| 22 { AutofillType::NAME, AutofillType::NO_SUBGROUP }, | |
| 23 // NAME_MIDDLE | |
| 24 { AutofillType::NAME, AutofillType::NO_SUBGROUP }, | |
| 25 // NAME_LAST | |
| 26 { AutofillType::NAME, AutofillType::NO_SUBGROUP }, | |
| 27 // NAME_MIDDLE_INITIAL | |
| 28 { AutofillType::NAME, AutofillType::NO_SUBGROUP }, | |
| 29 // NAME_FULL | |
| 30 { AutofillType::NAME, AutofillType::NO_SUBGROUP }, | |
| 31 // NAME_SUFFIX | |
| 32 { AutofillType::NAME, AutofillType::NO_SUBGROUP }, | |
| 33 | |
| 34 // EMAIL_ADDRESS | |
| 35 { AutofillType::EMAIL, AutofillType::NO_SUBGROUP }, | |
| 36 | |
| 37 // PHONE_HOME_NUMBER | |
| 38 { AutofillType::PHONE_HOME, AutofillType::PHONE_NUMBER }, | |
| 39 // PHONE_HOME_CITY_CODE | |
| 40 { AutofillType::PHONE_HOME, AutofillType::PHONE_CITY_CODE }, | |
| 41 // PHONE_HOME_COUNTRY_CODE | |
| 42 { AutofillType::PHONE_HOME, AutofillType::PHONE_COUNTRY_CODE }, | |
| 43 // PHONE_HOME_CITY_AND_NUMBER | |
| 44 { AutofillType::PHONE_HOME, AutofillType::PHONE_CITY_AND_NUMBER }, | |
| 45 // PHONE_HOME_WHOLE_NUMBER | |
| 46 { AutofillType::PHONE_HOME, AutofillType::PHONE_WHOLE_NUMBER }, | |
| 47 | |
| 48 // Work phone numbers (values [15,19]) are deprecated. | |
| 49 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 50 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 51 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 52 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 53 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 54 | |
| 55 // Fax numbers (values [20,24]) are deprecated. | |
| 56 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 57 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 58 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 59 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 60 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 61 | |
| 62 // Cell phone numbers (values [25, 29]) are deprecated. | |
| 63 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 64 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 65 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 66 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 67 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 68 | |
| 69 // ADDRESS_HOME_LINE1 | |
| 70 { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_LINE1 }, | |
| 71 // ADDRESS_HOME_LINE2 | |
| 72 { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_LINE2 }, | |
| 73 // ADDRESS_HOME_APT_NUM | |
| 74 { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_APT_NUM }, | |
| 75 // ADDRESS_HOME_CITY | |
| 76 { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_CITY }, | |
| 77 // ADDRESS_HOME_STATE | |
| 78 { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_STATE }, | |
| 79 // ADDRESS_HOME_ZIP | |
| 80 { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_ZIP }, | |
| 81 // ADDRESS_HOME_COUNTRY | |
| 82 { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_COUNTRY }, | |
| 83 | |
| 84 // ADDRESS_BILLING_LINE1 | |
| 85 { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_LINE1 }, | |
| 86 // ADDRESS_BILLING_LINE2 | |
| 87 { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_LINE2 }, | |
| 88 // ADDRESS_BILLING_APT_NUM | |
| 89 { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_APT_NUM }, | |
| 90 // ADDRESS_BILLING_CITY | |
| 91 { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_CITY }, | |
| 92 // ADDRESS_BILLING_STATE | |
| 93 { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_STATE }, | |
| 94 // ADDRESS_BILLING_ZIP | |
| 95 { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_ZIP }, | |
| 96 // ADDRESS_BILLING_COUNTRY | |
| 97 { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_COUNTRY }, | |
| 98 | |
| 99 // ADDRESS_SHIPPING values [44,50] are deprecated. | |
| 100 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 101 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 102 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 103 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 104 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 105 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 106 { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP }, | |
| 107 | |
| 108 // CREDIT_CARD_NAME | |
| 109 { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP }, | |
| 110 // CREDIT_CARD_NUMBER | |
| 111 { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP }, | |
| 112 // CREDIT_CARD_EXP_MONTH | |
| 113 { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP }, | |
| 114 // CREDIT_CARD_EXP_2_DIGIT_YEAR | |
| 115 { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP }, | |
| 116 // CREDIT_CARD_EXP_4_DIGIT_YEAR | |
| 117 { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP }, | |
| 118 // CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR | |
| 119 { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP }, | |
| 120 // CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR | |
| 121 { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP }, | |
| 122 // CREDIT_CARD_TYPE | |
| 123 { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP }, | |
| 124 // CREDIT_CARD_VERIFICATION_CODE | |
| 125 { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP }, | |
| 126 | |
| 127 // COMPANY_NAME | |
| 128 { AutofillType::COMPANY, AutofillType::NO_SUBGROUP }, | |
| 129 }; | |
| 130 | |
| 131 } // namespace | |
| 132 | |
| 133 AutofillType::AutofillType(AutofillFieldType field_type) { | 11 AutofillType::AutofillType(AutofillFieldType field_type) { |
| 134 if ((field_type < NO_SERVER_DATA || field_type >= MAX_VALID_FIELD_TYPE) || | 12 if ((field_type < NO_SERVER_DATA || field_type >= MAX_VALID_FIELD_TYPE) || |
| 135 (field_type >= 15 && field_type <= 19) || | 13 (field_type >= 15 && field_type <= 19) || |
| 136 (field_type >= 25 && field_type <= 29) || | 14 (field_type >= 25 && field_type <= 29) || |
| 137 (field_type >= 44 && field_type <= 50)) | 15 (field_type >= 44 && field_type <= 50)) |
| 138 field_type_ = UNKNOWN_TYPE; | 16 field_type_ = UNKNOWN_TYPE; |
| 139 else | 17 else |
| 140 field_type_ = field_type; | 18 field_type_ = field_type; |
| 141 } | 19 } |
| 142 | 20 |
| 143 AutofillType::AutofillType(const AutofillType& autofill_type) { | 21 AutofillType::AutofillType(const AutofillType& autofill_type) { |
| 144 *this = autofill_type; | 22 *this = autofill_type; |
| 145 } | 23 } |
| 146 | 24 |
| 147 AutofillType& AutofillType::operator=(const AutofillType& autofill_type) { | 25 AutofillType& AutofillType::operator=(const AutofillType& autofill_type) { |
| 148 if (this != &autofill_type) | 26 if (this != &autofill_type) |
| 149 this->field_type_ = autofill_type.field_type_; | 27 this->field_type_ = autofill_type.field_type_; |
| 150 return *this; | 28 return *this; |
| 151 } | 29 } |
| 152 | 30 |
| 153 AutofillFieldType AutofillType::field_type() const { | 31 AutofillFieldType AutofillType::field_type() const { |
| 154 return field_type_; | 32 return field_type_; |
| 155 } | 33 } |
| 156 | 34 |
| 157 FieldTypeGroup AutofillType::group() const { | 35 FieldTypeGroup AutofillType::group() const { |
| 158 return kAutofillTypeDefinitions[field_type_].group; | 36 switch (field_type_) { |
| 159 } | 37 case NAME_FIRST: |
| 38 case NAME_MIDDLE: |
| 39 case NAME_LAST: |
| 40 case NAME_MIDDLE_INITIAL: |
| 41 case NAME_FULL: |
| 42 case NAME_SUFFIX: |
| 43 return NAME; |
| 160 | 44 |
| 161 FieldTypeSubGroup AutofillType::subgroup() const { | 45 case EMAIL_ADDRESS: |
| 162 return kAutofillTypeDefinitions[field_type_].subgroup; | 46 return EMAIL; |
| 47 |
| 48 case PHONE_HOME_NUMBER: |
| 49 case PHONE_HOME_CITY_CODE: |
| 50 case PHONE_HOME_COUNTRY_CODE: |
| 51 case PHONE_HOME_CITY_AND_NUMBER: |
| 52 case PHONE_HOME_WHOLE_NUMBER: |
| 53 return PHONE; |
| 54 |
| 55 case ADDRESS_HOME_LINE1: |
| 56 case ADDRESS_HOME_LINE2: |
| 57 case ADDRESS_HOME_APT_NUM: |
| 58 case ADDRESS_HOME_CITY: |
| 59 case ADDRESS_HOME_STATE: |
| 60 case ADDRESS_HOME_ZIP: |
| 61 case ADDRESS_HOME_COUNTRY: |
| 62 return ADDRESS_HOME; |
| 63 |
| 64 case ADDRESS_BILLING_LINE1: |
| 65 case ADDRESS_BILLING_LINE2: |
| 66 case ADDRESS_BILLING_APT_NUM: |
| 67 case ADDRESS_BILLING_CITY: |
| 68 case ADDRESS_BILLING_STATE: |
| 69 case ADDRESS_BILLING_ZIP: |
| 70 case ADDRESS_BILLING_COUNTRY: |
| 71 return ADDRESS_BILLING; |
| 72 |
| 73 case CREDIT_CARD_NAME: |
| 74 case CREDIT_CARD_NUMBER: |
| 75 case CREDIT_CARD_EXP_MONTH: |
| 76 case CREDIT_CARD_EXP_2_DIGIT_YEAR: |
| 77 case CREDIT_CARD_EXP_4_DIGIT_YEAR: |
| 78 case CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR: |
| 79 case CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR: |
| 80 case CREDIT_CARD_TYPE: |
| 81 case CREDIT_CARD_VERIFICATION_CODE: |
| 82 return CREDIT_CARD; |
| 83 |
| 84 case COMPANY_NAME: |
| 85 return COMPANY; |
| 86 |
| 87 default: |
| 88 return NO_GROUP; |
| 89 } |
| 163 } | 90 } |
| 164 | 91 |
| 165 // static | 92 // static |
| 166 AutofillFieldType AutofillType::GetEquivalentFieldType( | 93 AutofillFieldType AutofillType::GetEquivalentFieldType( |
| 167 AutofillFieldType field_type) { | 94 AutofillFieldType field_type) { |
| 168 // When billing information is requested from the profile we map to the | 95 // When billing information is requested from the profile we map to the |
| 169 // home address equivalents. | 96 // home address equivalents. |
| 170 switch (field_type) { | 97 switch (field_type) { |
| 171 case ADDRESS_BILLING_LINE1: | 98 case ADDRESS_BILLING_LINE1: |
| 172 return ADDRESS_HOME_LINE1; | 99 return ADDRESS_HOME_LINE1; |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 if (str == "CREDIT_CARD_TYPE") | 285 if (str == "CREDIT_CARD_TYPE") |
| 359 return CREDIT_CARD_TYPE; | 286 return CREDIT_CARD_TYPE; |
| 360 if (str == "CREDIT_CARD_VERIFICATION_CODE") | 287 if (str == "CREDIT_CARD_VERIFICATION_CODE") |
| 361 return CREDIT_CARD_VERIFICATION_CODE; | 288 return CREDIT_CARD_VERIFICATION_CODE; |
| 362 if (str == "COMPANY_NAME") | 289 if (str == "COMPANY_NAME") |
| 363 return COMPANY_NAME; | 290 return COMPANY_NAME; |
| 364 | 291 |
| 365 NOTREACHED() << "Unknown AutofillFieldType " << str; | 292 NOTREACHED() << "Unknown AutofillFieldType " << str; |
| 366 return UNKNOWN_TYPE; | 293 return UNKNOWN_TYPE; |
| 367 } | 294 } |
| OLD | NEW |