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

Unified Diff: chrome/browser/autofill/address_field.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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/autofill/address_field.h ('k') | chrome/browser/autofill/address_field_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/autofill/address_field.cc
diff --git a/chrome/browser/autofill/address_field.cc b/chrome/browser/autofill/address_field.cc
index 025911d371ee60964d1c661c8090b8bf485c308e..a47465b40f55945c8ab54202a896dfae09b68593 100644
--- a/chrome/browser/autofill/address_field.cc
+++ b/chrome/browser/autofill/address_field.cc
@@ -11,15 +11,12 @@
#include "base/string16.h"
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
-#include "chrome/browser/autofill/autofill_ecml.h"
#include "chrome/browser/autofill/autofill_field.h"
#include "chrome/browser/autofill/autofill_scanner.h"
#include "grit/autofill_resources.h"
#include "ui/base/l10n/l10n_util.h"
-using autofill::GetEcmlPattern;
-
-FormField* AddressField::Parse(AutofillScanner* scanner, bool is_ecml) {
+FormField* AddressField::Parse(AutofillScanner* scanner) {
if (scanner->IsEnd())
return NULL;
@@ -37,12 +34,12 @@ FormField* AddressField::Parse(AutofillScanner* scanner, bool is_ecml) {
bool has_trailing_non_labeled_fields = false;
while (!scanner->IsEnd()) {
const size_t cursor = scanner->SaveCursor();
- if (ParseAddressLines(scanner, is_ecml, address_field.get()) ||
- ParseCity(scanner, is_ecml, address_field.get()) ||
- ParseState(scanner, is_ecml, address_field.get()) ||
- ParseZipCode(scanner, is_ecml, address_field.get()) ||
- ParseCountry(scanner, is_ecml, address_field.get()) ||
- ParseCompany(scanner, is_ecml, address_field.get())) {
+ if (ParseAddressLines(scanner, address_field.get()) ||
+ ParseCity(scanner, address_field.get()) ||
+ ParseState(scanner, address_field.get()) ||
+ ParseZipCode(scanner, address_field.get()) ||
+ ParseCountry(scanner, address_field.get()) ||
+ ParseCompany(scanner, address_field.get())) {
has_trailing_non_labeled_fields = false;
continue;
} else if (ParseField(scanner, attention_ignored, NULL) ||
@@ -93,9 +90,7 @@ FormField* AddressField::Parse(AutofillScanner* scanner, bool is_ecml) {
AddressType AddressField::FindType() const {
// First look at the field name, which itself will sometimes contain
- // "bill" or "ship". We could check for the ECML type prefixes
- // here, but there's no need to since ECML's prefixes Ecom_BillTo
- // and Ecom_ShipTo contain "bill" and "ship" anyway.
+ // "bill" or "ship".
if (company_) {
string16 name = StringToLowerASCII(company_->name);
return AddressTypeFromText(name);
@@ -189,25 +184,16 @@ bool AddressField::ClassifyField(FieldTypeMap* map) const {
// static
bool AddressField::ParseCompany(AutofillScanner* scanner,
- bool is_ecml,
AddressField* address_field) {
if (address_field->company_ && !address_field->company_->IsEmpty())
return false;
- string16 pattern;
- if (is_ecml) {
- pattern = GetEcmlPattern(kEcmlShipToCompanyName,
- kEcmlBillToCompanyName, '|');
- } else {
- pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_COMPANY_RE);
- }
-
- return ParseField(scanner, pattern, &address_field->company_);
+ return ParseField(scanner, l10n_util::GetStringUTF16(IDS_AUTOFILL_COMPANY_RE),
+ &address_field->company_);
}
// static
bool AddressField::ParseAddressLines(AutofillScanner* scanner,
- bool is_ecml,
AddressField* address_field) {
// We only match the string "address" in page text, not in element names,
// because sometimes every element in a group of address fields will have
@@ -220,50 +206,32 @@ bool AddressField::ParseAddressLines(AutofillScanner* scanner,
if (address_field->address1_)
return false;
- string16 pattern;
- if (is_ecml) {
- pattern = GetEcmlPattern(kEcmlShipToAddress1, kEcmlBillToAddress1, '|');
- if (!ParseField(scanner, pattern, &address_field->address1_))
- return false;
- } else {
- pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_ADDRESS_LINE_1_RE);
- string16 label_pattern =
- l10n_util::GetStringUTF16(IDS_AUTOFILL_ADDRESS_LINE_1_LABEL_RE);
-
- if (!ParseField(scanner, pattern, &address_field->address1_) &&
- !ParseFieldSpecifics(scanner, label_pattern, MATCH_LABEL | MATCH_TEXT,
- &address_field->address1_)) {
- return false;
- }
+ string16 pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_ADDRESS_LINE_1_RE);
+ string16 label_pattern =
+ l10n_util::GetStringUTF16(IDS_AUTOFILL_ADDRESS_LINE_1_LABEL_RE);
+
+ if (!ParseField(scanner, pattern, &address_field->address1_) &&
+ !ParseFieldSpecifics(scanner, label_pattern, MATCH_LABEL | MATCH_TEXT,
+ &address_field->address1_)) {
+ return false;
}
// Optionally parse more address lines, which may have empty labels.
// Some pages have 3 address lines (eg SharperImageModifyAccount.html)
// Some pages even have 4 address lines (e.g. uk/ShoesDirect2.html)!
- if (is_ecml) {
- pattern = GetEcmlPattern(kEcmlShipToAddress2, kEcmlBillToAddress2, '|');
- if (!ParseEmptyLabel(scanner, &address_field->address2_))
- ParseField(scanner, pattern, &address_field->address2_);
- } else {
- pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_ADDRESS_LINE_2_RE);
- string16 label_pattern =
- l10n_util::GetStringUTF16(IDS_AUTOFILL_ADDRESS_LINE_1_LABEL_RE);
- if (!ParseEmptyLabel(scanner, &address_field->address2_) &&
- !ParseField(scanner, pattern, &address_field->address2_)) {
- ParseFieldSpecifics(scanner, label_pattern, MATCH_LABEL | MATCH_TEXT,
- &address_field->address2_);
- }
+ pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_ADDRESS_LINE_2_RE);
+ label_pattern =
+ l10n_util::GetStringUTF16(IDS_AUTOFILL_ADDRESS_LINE_1_LABEL_RE);
+ if (!ParseEmptyLabel(scanner, &address_field->address2_) &&
+ !ParseField(scanner, pattern, &address_field->address2_)) {
+ ParseFieldSpecifics(scanner, label_pattern, MATCH_LABEL | MATCH_TEXT,
+ &address_field->address2_);
}
// Try for a third line, which we will promptly discard.
if (address_field->address2_ != NULL) {
- if (is_ecml) {
- pattern = GetEcmlPattern(kEcmlShipToAddress3, kEcmlBillToAddress3, '|');
- ParseField(scanner, pattern, NULL);
- } else {
- pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_ADDRESS_LINE_3_RE);
- ParseField(scanner, pattern, NULL);
- }
+ pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_ADDRESS_LINE_3_RE);
+ ParseField(scanner, pattern, NULL);
}
return true;
@@ -271,27 +239,20 @@ bool AddressField::ParseAddressLines(AutofillScanner* scanner,
// static
bool AddressField::ParseCountry(AutofillScanner* scanner,
- bool is_ecml,
AddressField* address_field) {
// Parse a country. The occasional page (e.g.
// Travelocity_New Member Information1.html) calls this a "location".
- // Note: ECML standard uses 2 letter country code (ISO 3166)
if (address_field->country_ && !address_field->country_->IsEmpty())
return false;
- string16 pattern;
- if (is_ecml)
- pattern = GetEcmlPattern(kEcmlShipToCountry, kEcmlBillToCountry, '|');
- else
- pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_COUNTRY_RE);
-
- return ParseFieldSpecifics(scanner, pattern, MATCH_DEFAULT | MATCH_SELECT,
+ return ParseFieldSpecifics(scanner,
+ l10n_util::GetStringUTF16(IDS_AUTOFILL_COUNTRY_RE),
+ MATCH_DEFAULT | MATCH_SELECT,
&address_field->country_);
}
// static
bool AddressField::ParseZipCode(AutofillScanner* scanner,
- bool is_ecml,
AddressField* address_field) {
// Parse a zip code. On some UK pages (e.g. The China Shop2.html) this
// is called a "post code".
@@ -303,76 +264,44 @@ bool AddressField::ParseZipCode(AutofillScanner* scanner,
if (address_field->zip_)
return false;
- string16 pattern;
- if (is_ecml) {
- pattern = GetEcmlPattern(kEcmlShipToPostalCode, kEcmlBillToPostalCode, '|');
- } else {
- pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_ZIP_CODE_RE);
- }
-
- AddressType tempType;
- string16 name = scanner->Cursor()->name;
-
- // Note: comparisons using the ECML compliant name as a prefix must be used in
- // order to accommodate Google Checkout. See |GetEcmlPattern| for more detail.
- string16 bill_to_postal_code_field(ASCIIToUTF16(kEcmlBillToPostalCode));
- if (StartsWith(name, bill_to_postal_code_field, false)) {
- tempType = kBillingAddress;
- } else if (StartsWith(name, bill_to_postal_code_field, false)) {
- tempType = kShippingAddress;
- } else {
- tempType = kGenericAddress;
- }
-
+ string16 pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_ZIP_CODE_RE);
if (!ParseField(scanner, pattern, &address_field->zip_))
return false;
- address_field->type_ = tempType;
- if (!is_ecml) {
- // Look for a zip+4, whose field name will also often contain
- // the substring "zip".
- ParseField(scanner,
- l10n_util::GetStringUTF16(IDS_AUTOFILL_ZIP_4_RE),
- &address_field->zip4_);
- }
+ address_field->type_ = kGenericAddress;
+ // Look for a zip+4, whose field name will also often contain
+ // the substring "zip".
+ ParseField(scanner,
+ l10n_util::GetStringUTF16(IDS_AUTOFILL_ZIP_4_RE),
+ &address_field->zip4_);
return true;
}
// static
bool AddressField::ParseCity(AutofillScanner* scanner,
- bool is_ecml,
AddressField* address_field) {
// Parse a city name. Some UK pages (e.g. The China Shop2.html) use
// the term "town".
if (address_field->city_)
return false;
- string16 pattern;
- if (is_ecml)
- pattern = GetEcmlPattern(kEcmlShipToCity, kEcmlBillToCity, '|');
- else
- pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_CITY_RE);
-
// Select fields are allowed here. This occurs on top-100 site rediff.com.
- return ParseFieldSpecifics(scanner, pattern, MATCH_DEFAULT | MATCH_SELECT,
+ return ParseFieldSpecifics(scanner,
+ l10n_util::GetStringUTF16(IDS_AUTOFILL_CITY_RE),
+ MATCH_DEFAULT | MATCH_SELECT,
&address_field->city_);
}
// static
bool AddressField::ParseState(AutofillScanner* scanner,
- bool is_ecml,
AddressField* address_field) {
if (address_field->state_)
return false;
- string16 pattern;
- if (is_ecml)
- pattern = GetEcmlPattern(kEcmlShipToStateProv, kEcmlBillToStateProv, '|');
- else
- pattern = l10n_util::GetStringUTF16(IDS_AUTOFILL_STATE_RE);
-
- return ParseFieldSpecifics(scanner, pattern, MATCH_DEFAULT | MATCH_SELECT,
+ return ParseFieldSpecifics(scanner,
+ l10n_util::GetStringUTF16(IDS_AUTOFILL_STATE_RE),
+ MATCH_DEFAULT | MATCH_SELECT,
&address_field->state_);
}
« no previous file with comments | « chrome/browser/autofill/address_field.h ('k') | chrome/browser/autofill/address_field_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698