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

Side by Side Diff: chrome/browser/autofill/autofill_type.cc

Issue 8169009: Remove FieldTypeSubGroups from the AutofillType class. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix tests compile Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/autofill/autofill_type.h ('k') | chrome/browser/autofill/autofill_type_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698