1dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/autofill/autofill_type.h"
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include <ostream>
8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "base/logging.h"
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace {
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
13dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenconst AutofillType::AutofillTypeDefinition kUnknownAutofillTypeDefinition = {
14dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  /* UNKNOWN_TYPE */ AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
17dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenAutofillType::AutofillTypeDefinition kAutofillTypeDefinitions[] = {
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // NO_SERVER_DATA
19dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP },
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // UNKNOWN_TYPE
21dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // EMPTY_TYPE
23dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::NO_GROUP, AutofillType::NO_SUBGROUP },
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // NAME_FIRST
26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  { AutofillType::NAME, AutofillType::NO_SUBGROUP },
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // NAME_MIDDLE
28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  { AutofillType::NAME, AutofillType::NO_SUBGROUP },
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // NAME_LAST
30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  { AutofillType::NAME, AutofillType::NO_SUBGROUP },
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // NAME_MIDDLE_INITIAL
32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  { AutofillType::NAME, AutofillType::NO_SUBGROUP },
33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // NAME_FULL
34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  { AutofillType::NAME, AutofillType::NO_SUBGROUP },
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // NAME_SUFFIX
36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  { AutofillType::NAME, AutofillType::NO_SUBGROUP },
37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // EMAIL_ADDRESS
39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  { AutofillType::EMAIL, AutofillType::NO_SUBGROUP },
40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // PHONE_HOME_NUMBER
42dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::PHONE_HOME, AutofillType::PHONE_NUMBER },
43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // PHONE_HOME_CITY_CODE
44dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::PHONE_HOME, AutofillType::PHONE_CITY_CODE },
45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // PHONE_HOME_COUNTRY_CODE
46dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::PHONE_HOME, AutofillType::PHONE_COUNTRY_CODE },
47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // PHONE_HOME_CITY_AND_NUMBER
48dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::PHONE_HOME, AutofillType::PHONE_CITY_AND_NUMBER },
49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // PHONE_HOME_WHOLE_NUMBER
50dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::PHONE_HOME, AutofillType::PHONE_WHOLE_NUMBER },
51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Work phone numbers (values [15,19]) are deprecated.
53dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
54dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
55dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
56dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
57dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // PHONE_FAX_NUMBER
60dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::PHONE_FAX, AutofillType::PHONE_NUMBER },
61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // PHONE_FAX_CITY_CODE
62dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::PHONE_FAX, AutofillType::PHONE_CITY_CODE },
63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // PHONE_FAX_COUNTRY_CODE
64dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::PHONE_FAX, AutofillType::PHONE_COUNTRY_CODE },
65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // PHONE_FAX_CITY_AND_NUMBER
66dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::PHONE_FAX, AutofillType::PHONE_CITY_AND_NUMBER },
67c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // PHONE_FAX_WHOLE_NUMBER
68dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::PHONE_FAX, AutofillType::PHONE_WHOLE_NUMBER },
69c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
70c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Cell phone numbers (values [25, 29]) are deprecated.
71dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
72dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
73dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
74dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
75dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
76c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
77c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_HOME_LINE1
78dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_LINE1 },
79c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_HOME_LINE2
80dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_LINE2 },
81c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_HOME_APT_NUM
82dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_APT_NUM },
83c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_HOME_CITY
84dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_CITY },
85c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_HOME_STATE
86dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_STATE },
87c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_HOME_ZIP
88dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_ZIP },
89c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_HOME_COUNTRY
90dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_HOME, AutofillType::ADDRESS_COUNTRY },
91c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
92c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_BILLING_LINE1
93dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_LINE1 },
94c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_BILLING_LINE2
95dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_LINE2 },
96c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_BILLING_APT_NUM
97dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_APT_NUM },
98c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_BILLING_CITY
99dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_CITY },
100c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_BILLING_STATE
101dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_STATE },
102c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_BILLING_ZIP
103dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_ZIP },
104c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_BILLING_COUNTRY
105dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::ADDRESS_BILLING, AutofillType::ADDRESS_COUNTRY },
106c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
107c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // ADDRESS_SHIPPING values [44,50] are deprecated.
108dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
109dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
110dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
111dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
112dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
113dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
114dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  kUnknownAutofillTypeDefinition,
115c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
116c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // CREDIT_CARD_NAME
117dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP },
118c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // CREDIT_CARD_NUMBER
119dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP },
120c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // CREDIT_CARD_EXP_MONTH
121dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP },
122c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // CREDIT_CARD_EXP_2_DIGIT_YEAR
123dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP },
124c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // CREDIT_CARD_EXP_4_DIGIT_YEAR
125dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP },
126c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR
127dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP },
128c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR
129dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP },
130c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // CREDIT_CARD_TYPE
131dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP },
132c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // CREDIT_CARD_VERIFICATION_CODE
133dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  { AutofillType::CREDIT_CARD, AutofillType::NO_SUBGROUP },
134c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
135c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // COMPANY_NAME
136ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  { AutofillType::COMPANY, AutofillType::NO_SUBGROUP },
137c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
138c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
139c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}  // namespace
140c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
141dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenAutofillType::AutofillType(AutofillFieldType field_type) {
142c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  if ((field_type < NO_SERVER_DATA || field_type >= MAX_VALID_FIELD_TYPE) ||
143c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      (field_type >= 15 && field_type <= 19) ||
144c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      (field_type >= 25 && field_type <= 29) ||
145c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      (field_type >= 44 && field_type <= 50))
146c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    field_type_ = UNKNOWN_TYPE;
147c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  else
148c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    field_type_ = field_type;
149c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
150c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
151dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenAutofillType::AutofillType(const AutofillType& autofill_type) {
152c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  *this = autofill_type;
153c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
154c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
155dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenAutofillType& AutofillType::operator=(const AutofillType& autofill_type) {
156c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  if (this != &autofill_type)
157c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    this->field_type_ = autofill_type.field_type_;
158c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  return *this;
159c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
160c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
161dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenAutofillFieldType AutofillType::field_type() const {
162c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  return field_type_;
163c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
164c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
165dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenFieldTypeGroup AutofillType::group() const {
166dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  return kAutofillTypeDefinitions[field_type_].group;
167c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
168c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
169dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenFieldTypeSubGroup AutofillType::subgroup() const {
170dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  return kAutofillTypeDefinitions[field_type_].subgroup;
171c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
17272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
17372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// static
174dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenAutofillFieldType AutofillType::GetEquivalentFieldType(
175dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen    AutofillFieldType field_type) {
17672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // When billing information is requested from the profile we map to the
17772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // home address equivalents.
17872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  switch (field_type) {
17972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_LINE1:
18072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return ADDRESS_HOME_LINE1;
18172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
18272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_LINE2:
18372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return ADDRESS_HOME_LINE2;
18472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
18572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_APT_NUM:
18672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return ADDRESS_HOME_APT_NUM;
18772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
18872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_CITY:
18972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return ADDRESS_HOME_CITY;
19072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
19172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_STATE:
19272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return ADDRESS_HOME_STATE;
19372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
19472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_ZIP:
19572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return ADDRESS_HOME_ZIP;
19672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
19772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_COUNTRY:
19872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return ADDRESS_HOME_COUNTRY;
19972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
20072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    default:
20172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return field_type;
20272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  }
20372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
20472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
20572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// static
206dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenstd::string AutofillType::FieldTypeToString(AutofillFieldType type) {
20772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  switch (type) {
20872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case NO_SERVER_DATA:
20972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "NO_SERVER_DATA";
21072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case UNKNOWN_TYPE:
21172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "UNKNOWN_TYPE";
21272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case EMPTY_TYPE:
21372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "EMPTY_TYPE";
21472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case NAME_FIRST:
21572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "NAME_FIRST";
21672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case NAME_MIDDLE:
21772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "NAME_MIDDLE";
21872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case NAME_LAST:
21972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "NAME_LAST";
22072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case NAME_MIDDLE_INITIAL:
22172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "NAME_MIDDLE_INITIAL";
22272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case NAME_FULL:
22372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "NAME_FULL";
22472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case NAME_SUFFIX:
22572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "NAME_SUFFIX";
22672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case EMAIL_ADDRESS:
22772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "EMAIL_ADDRESS";
22872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case PHONE_HOME_NUMBER:
22972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "PHONE_HOME_NUMBER";
23072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case PHONE_HOME_CITY_CODE:
23172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "PHONE_HOME_CITY_CODE";
23272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case PHONE_HOME_COUNTRY_CODE:
23372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "PHONE_HOME_COUNTRY_CODE";
23472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case PHONE_HOME_CITY_AND_NUMBER:
23572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "PHONE_HOME_CITY_AND_NUMBER";
23672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case PHONE_HOME_WHOLE_NUMBER:
23772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "PHONE_HOME_WHOLE_NUMBER";
23872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case PHONE_FAX_NUMBER:
23972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "PHONE_FAX_NUMBER";
24072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case PHONE_FAX_CITY_CODE:
24172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "PHONE_FAX_CITY_CODE";
24272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case PHONE_FAX_COUNTRY_CODE:
24372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "PHONE_FAX_COUNTRY_CODE";
24472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case PHONE_FAX_CITY_AND_NUMBER:
24572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "PHONE_FAX_CITY_AND_NUMBER";
24672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case PHONE_FAX_WHOLE_NUMBER:
24772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "PHONE_FAX_WHOLE_NUMBER";
24872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_HOME_LINE1:
24972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_HOME_LINE1";
25072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_HOME_LINE2:
25172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_HOME_LINE2";
25272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_HOME_APT_NUM:
25372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_HOME_APT_NUM";
25472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_HOME_CITY:
25572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_HOME_CITY";
25672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_HOME_STATE:
25772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_HOME_STATE";
25872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_HOME_ZIP:
25972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_HOME_ZIP";
26072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_HOME_COUNTRY:
26172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_HOME_COUNTRY";
26272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_LINE1:
26372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_BILLING_LINE1";
26472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_LINE2:
26572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_BILLING_LINE2";
26672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_APT_NUM:
26772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_BILLING_APT_NUM";
26872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_CITY:
26972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_BILLING_CITY";
27072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_STATE:
27172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_BILLING_STATE";
27272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_ZIP:
27372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_BILLING_ZIP";
27472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case ADDRESS_BILLING_COUNTRY:
27572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "ADDRESS_BILLING_COUNTRY";
27672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case CREDIT_CARD_NAME:
27772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "CREDIT_CARD_NAME";
27872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case CREDIT_CARD_NUMBER:
27972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "CREDIT_CARD_NUMBER";
28072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case CREDIT_CARD_EXP_MONTH:
28172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "CREDIT_CARD_EXP_MONTH";
28272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case CREDIT_CARD_EXP_2_DIGIT_YEAR:
28372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "CREDIT_CARD_EXP_2_DIGIT_YEAR";
28472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case CREDIT_CARD_EXP_4_DIGIT_YEAR:
28572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "CREDIT_CARD_EXP_4_DIGIT_YEAR";
28672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR:
28772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR";
28872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR:
28972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR";
29072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case CREDIT_CARD_TYPE:
29172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "CREDIT_CARD_TYPE";
29272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case CREDIT_CARD_VERIFICATION_CODE:
29372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "CREDIT_CARD_VERIFICATION_CODE";
29472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    case COMPANY_NAME:
29572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      return "COMPANY_NAME";
29672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    default:
297dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen      NOTREACHED() << "Invalid AutofillFieldType value.";
29872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  }
29972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  return std::string();
30072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
30172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
30272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// static
303dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenAutofillFieldType AutofillType::StringToFieldType(const std::string& str) {
30472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "NO_SERVER_DATA")
30572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return NO_SERVER_DATA;
30672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "UNKNOWN_TYPE")
30772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return UNKNOWN_TYPE;
30872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "EMPTY_TYPE")
30972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return EMPTY_TYPE;
31072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "NAME_FIRST")
31172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return NAME_FIRST;
31272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "NAME_MIDDLE")
31372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return NAME_MIDDLE;
31472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "NAME_LAST")
31572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return NAME_LAST;
31672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "NAME_MIDDLE_INITIAL")
31772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return NAME_MIDDLE_INITIAL;
31872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "NAME_FULL")
31972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return NAME_FULL;
32072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "NAME_SUFFIX")
32172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return NAME_SUFFIX;
32272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "EMAIL_ADDRESS")
32372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return EMAIL_ADDRESS;
32472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "PHONE_HOME_NUMBER")
32572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return PHONE_HOME_NUMBER;
32672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "PHONE_HOME_CITY_CODE")
32772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return PHONE_HOME_CITY_CODE;
32872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "PHONE_HOME_COUNTRY_CODE")
32972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return PHONE_HOME_COUNTRY_CODE;
33072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "PHONE_HOME_CITY_AND_NUMBER")
33172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return PHONE_HOME_CITY_AND_NUMBER;
33272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "PHONE_HOME_WHOLE_NUMBER")
33372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return PHONE_HOME_WHOLE_NUMBER;
33472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "PHONE_FAX_NUMBER")
33572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return PHONE_FAX_NUMBER;
33672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "PHONE_FAX_CITY_CODE")
33772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return PHONE_FAX_CITY_CODE;
33872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "PHONE_FAX_COUNTRY_CODE")
33972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return PHONE_FAX_COUNTRY_CODE;
34072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "PHONE_FAX_CITY_AND_NUMBER")
34172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return PHONE_FAX_CITY_AND_NUMBER;
34272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "PHONE_FAX_WHOLE_NUMBER")
34372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return PHONE_FAX_WHOLE_NUMBER;
34472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_HOME_LINE1")
34572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_HOME_LINE1;
34672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_HOME_LINE2")
34772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_HOME_LINE2;
34872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_HOME_APT_NUM")
34972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_HOME_APT_NUM;
35072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_HOME_CITY")
35172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_HOME_CITY;
35272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_HOME_STATE")
35372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_HOME_STATE;
35472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_HOME_ZIP")
35572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_HOME_ZIP;
35672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_HOME_COUNTRY")
35772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_HOME_COUNTRY;
35872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_BILLING_LINE1")
35972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_BILLING_LINE1;
36072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_BILLING_LINE2")
36172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_BILLING_LINE2;
36272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_BILLING_APT_NUM")
36372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_BILLING_APT_NUM;
36472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_BILLING_CITY")
36572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_BILLING_CITY;
36672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_BILLING_STATE")
36772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_BILLING_STATE;
36872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_BILLING_ZIP")
36972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_BILLING_ZIP;
37072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "ADDRESS_BILLING_COUNTRY")
37172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return ADDRESS_BILLING_COUNTRY;
37272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "CREDIT_CARD_NAME")
37372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return CREDIT_CARD_NAME;
37472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "CREDIT_CARD_NUMBER")
37572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return CREDIT_CARD_NUMBER;
37672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "CREDIT_CARD_EXP_MONTH")
37772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return CREDIT_CARD_EXP_MONTH;
37872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "CREDIT_CARD_EXP_2_DIGIT_YEAR")
37972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return CREDIT_CARD_EXP_2_DIGIT_YEAR;
38072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "CREDIT_CARD_EXP_4_DIGIT_YEAR")
38172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return CREDIT_CARD_EXP_4_DIGIT_YEAR;
38272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR")
38372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return CREDIT_CARD_EXP_DATE_2_DIGIT_YEAR;
38472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR")
38572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR;
38672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "CREDIT_CARD_TYPE")
38772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return CREDIT_CARD_TYPE;
38872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "CREDIT_CARD_VERIFICATION_CODE")
38972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return CREDIT_CARD_VERIFICATION_CODE;
39072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  if (str == "COMPANY_NAME")
39172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return COMPANY_NAME;
39272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
393dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  NOTREACHED() << "Unknown AutofillFieldType " << str;
39472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  return UNKNOWN_TYPE;
39572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
396