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

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

Issue 7585020: Remove Autofill support for the ECML standard, as it is virtually unused. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove ECML files from the repository Created 9 years, 4 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
« no previous file with comments | « chrome/browser/autofill/autofill_ecml.h ('k') | chrome/browser/autofill/credit_card_field.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/autofill/autofill_ecml.h"
6
7 #include "base/basictypes.h"
8 #include "base/string_util.h"
9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/autofill/autofill_field.h"
11
12 // Field names from the ECML specification; see RFC 3106. We've
13 // made these names lowercase since we convert labels and field names to
14 // lowercase before searching.
15
16 // Shipping fields.
17 const char kEcmlShipToTitle[] = "ecom_shipto_postal_name_prefix";
18 const char kEcmlShipToFirstName[] = "ecom_shipto_postal_name_first";
19 const char kEcmlShipToMiddleName[] = "ecom_shipto_postal_name_middle";
20 const char kEcmlShipToLastName[] = "ecom_shipto_postal_name_last";
21 const char kEcmlShipToNameSuffix[] = "ecom_shipto_postal_name_suffix";
22 const char kEcmlShipToCompanyName[] = "ecom_shipto_postal_company";
23 const char kEcmlShipToAddress1[] = "ecom_shipto_postal_street_line1";
24 const char kEcmlShipToAddress2[] = "ecom_shipto_postal_street_line2";
25 const char kEcmlShipToAddress3[] = "ecom_shipto_postal_street_line3";
26 const char kEcmlShipToCity[] = "ecom_shipto_postal_city";
27 const char kEcmlShipToStateProv[] = "ecom_shipto_postal_stateprov";
28 const char kEcmlShipToPostalCode[] = "ecom_shipto_postal_postalcode";
29 const char kEcmlShipToCountry[] = "ecom_shipto_postal_countrycode";
30 const char kEcmlShipToPhone[] = "ecom_shipto_telecom_phone_number";
31 const char kEcmlShipToEmail[] = "ecom_shipto_online_email";
32
33 // Billing fields.
34 const char kEcmlBillToTitle[] = "ecom_billto_postal_name_prefix";
35 const char kEcmlBillToFirstName[] = "ecom_billto_postal_name_first";
36 const char kEcmlBillToMiddleName[] = "ecom_billto_postal_name_middle";
37 const char kEcmlBillToLastName[] = "ecom_billto_postal_name_last";
38 const char kEcmlBillToNameSuffix[] = "ecom_billto_postal_name_suffix";
39 const char kEcmlBillToCompanyName[] = "ecom_billto_postal_company";
40 const char kEcmlBillToAddress1[] = "ecom_billto_postal_street_line1";
41 const char kEcmlBillToAddress2[] = "ecom_billto_postal_street_line2";
42 const char kEcmlBillToAddress3[] = "ecom_billto_postal_street_line3";
43 const char kEcmlBillToCity[] = "ecom_billto_postal_city";
44 const char kEcmlBillToStateProv[] = "ecom_billto_postal_stateprov";
45 const char kEcmlBillToPostalCode[] = "ecom_billto_postal_postalcode";
46 const char kEcmlBillToCountry[] = "ecom_billto_postal_countrycode";
47 const char kEcmlBillToPhone[] = "ecom_billto_telecom_phone_number";
48 const char kEcmlBillToEmail[] = "ecom_billto_online_email";
49
50 // Credit card fields.
51 const char kEcmlCardHolder[] = "ecom_payment_card_name";
52 const char kEcmlCardType[] = "ecom_payment_card_type";
53 const char kEcmlCardNumber[] = "ecom_payment_card_number";
54 const char kEcmlCardVerification[] = "ecom_payment_card_verification";
55 const char kEcmlCardExpireDay[] = "ecom_payment_card_expdate_day";
56 const char kEcmlCardExpireMonth[] = "ecom_payment_card_expdate_month";
57 const char kEcmlCardExpireYear[] = "ecom_payment_card_expdate_year";
58
59 namespace autofill {
60
61 // Checks if any of the |form|'s labels are named according to the ECML
62 // standard. Returns true if at least one ECML named element is found.
63 bool HasECMLField(const std::vector<AutofillField*>& fields) {
64 struct EcmlField {
65 const char* name_;
66 const int length_;
67 } ecml_fields[] = {
68 #define ECML_STRING_ENTRY(x) { x, arraysize(x) - 1 },
69 ECML_STRING_ENTRY(kEcmlShipToTitle)
70 ECML_STRING_ENTRY(kEcmlShipToFirstName)
71 ECML_STRING_ENTRY(kEcmlShipToMiddleName)
72 ECML_STRING_ENTRY(kEcmlShipToLastName)
73 ECML_STRING_ENTRY(kEcmlShipToNameSuffix)
74 ECML_STRING_ENTRY(kEcmlShipToCompanyName)
75 ECML_STRING_ENTRY(kEcmlShipToAddress1)
76 ECML_STRING_ENTRY(kEcmlShipToAddress2)
77 ECML_STRING_ENTRY(kEcmlShipToAddress3)
78 ECML_STRING_ENTRY(kEcmlShipToCity)
79 ECML_STRING_ENTRY(kEcmlShipToStateProv)
80 ECML_STRING_ENTRY(kEcmlShipToPostalCode)
81 ECML_STRING_ENTRY(kEcmlShipToCountry)
82 ECML_STRING_ENTRY(kEcmlShipToPhone)
83 ECML_STRING_ENTRY(kEcmlShipToEmail)
84 ECML_STRING_ENTRY(kEcmlBillToTitle)
85 ECML_STRING_ENTRY(kEcmlBillToFirstName)
86 ECML_STRING_ENTRY(kEcmlBillToMiddleName)
87 ECML_STRING_ENTRY(kEcmlBillToLastName)
88 ECML_STRING_ENTRY(kEcmlBillToNameSuffix)
89 ECML_STRING_ENTRY(kEcmlBillToCompanyName)
90 ECML_STRING_ENTRY(kEcmlBillToAddress1)
91 ECML_STRING_ENTRY(kEcmlBillToAddress2)
92 ECML_STRING_ENTRY(kEcmlBillToAddress3)
93 ECML_STRING_ENTRY(kEcmlBillToCity)
94 ECML_STRING_ENTRY(kEcmlBillToStateProv)
95 ECML_STRING_ENTRY(kEcmlBillToPostalCode)
96 ECML_STRING_ENTRY(kEcmlBillToCountry)
97 ECML_STRING_ENTRY(kEcmlBillToPhone)
98 ECML_STRING_ENTRY(kEcmlBillToPhone)
99 ECML_STRING_ENTRY(kEcmlBillToEmail)
100 ECML_STRING_ENTRY(kEcmlCardHolder)
101 ECML_STRING_ENTRY(kEcmlCardType)
102 ECML_STRING_ENTRY(kEcmlCardNumber)
103 ECML_STRING_ENTRY(kEcmlCardVerification)
104 ECML_STRING_ENTRY(kEcmlCardExpireMonth)
105 ECML_STRING_ENTRY(kEcmlCardExpireYear)
106 #undef ECML_STRING_ENTRY
107 };
108
109 const string16 ecom(ASCIIToUTF16("ecom"));
110 for (std::vector<AutofillField*>::const_iterator field = fields.begin();
111 field != fields.end();
112 ++field) {
113 const string16& utf16_name = (*field)->name;
114 if (StartsWith(utf16_name, ecom, true)) {
115 std::string name(UTF16ToUTF8(utf16_name));
116 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(ecml_fields); ++i) {
117 if (base::strncasecmp(name.c_str(), ecml_fields[i].name_,
118 ecml_fields[i].length_) == 0) {
119 return true;
120 }
121 }
122 }
123 }
124
125 return false;
126 }
127
128 string16 GetEcmlPattern(const char* ecml_name) {
129 return ASCIIToUTF16(std::string("^") + ecml_name);
130 }
131
132 string16 GetEcmlPattern(const char* ecml_name1,
133 const char* ecml_name2,
134 char pattern_operator) {
135 return ASCIIToUTF16(StringPrintf("^%s%c^%s",
136 ecml_name1, pattern_operator, ecml_name2));
137 }
138
139 } // namespace autofill
OLDNEW
« no previous file with comments | « chrome/browser/autofill/autofill_ecml.h ('k') | chrome/browser/autofill/credit_card_field.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698