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

Unified Diff: chrome/browser/autofill/phone_field.cc

Issue 7043027: Autofill refactor form_field.h/cc. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: OVERRIDE glitch. Created 9 years, 7 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/phone_field.h ('k') | chrome/browser/autofill/phone_field_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/autofill/phone_field.cc
diff --git a/chrome/browser/autofill/phone_field.cc b/chrome/browser/autofill/phone_field.cc
index 7306764f67df9cda053c073fe9543b48e1bc6653..c5045aa141da30cd73c071ad13f4495c22c474e2 100644
--- a/chrome/browser/autofill/phone_field.cc
+++ b/chrome/browser/autofill/phone_field.cc
@@ -9,6 +9,7 @@
#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 "chrome/browser/autofill/fax_number.h"
@@ -16,6 +17,8 @@
#include "grit/autofill_resources.h"
#include "ui/base/l10n/l10n_util.h"
+using autofill::GetEcmlPattern;
+
// Phone field grammars - first matched grammar will be parsed. Grammars are
// separated by { REGEX_SEPARATOR, FIELD_NONE, 0 }. Suffix and extension are
// parsed separately unless they are necessary parts of the match.
@@ -124,7 +127,7 @@ PhoneField* PhoneField::ParseECML(AutofillScanner* scanner) {
string16 pattern(GetEcmlPattern(kEcmlShipToPhone, kEcmlBillToPhone, '|'));
const AutofillField* field;
- if (ParseText(scanner, pattern, &field)) {
+ if (ParseField(scanner, pattern, &field)) {
PhoneField* phone_field = new PhoneField();
phone_field->parsed_phone_fields_[FIELD_PHONE] = field;
return phone_field;
@@ -133,7 +136,12 @@ PhoneField* PhoneField::ParseECML(AutofillScanner* scanner) {
return NULL;
}
-bool PhoneField::GetFieldInfo(FieldTypeMap* field_type_map) const {
+PhoneField::PhoneField() {
+ memset(parsed_phone_fields_, 0, sizeof(parsed_phone_fields_));
+ SetPhoneType(HOME_PHONE);
+}
+
+bool PhoneField::ClassifyField(FieldTypeMap* map) const {
bool ok = true;
DCHECK(parsed_phone_fields_[FIELD_PHONE]); // Phone was correctly parsed.
@@ -142,41 +150,36 @@ bool PhoneField::GetFieldInfo(FieldTypeMap* field_type_map) const {
(parsed_phone_fields_[FIELD_AREA_CODE] != NULL) ||
(parsed_phone_fields_[FIELD_SUFFIX] != NULL)) {
if (parsed_phone_fields_[FIELD_COUNTRY_CODE] != NULL) {
- ok = ok && Add(field_type_map,
- parsed_phone_fields_[FIELD_COUNTRY_CODE],
- number_->GetCountryCodeType());
+ ok = ok && AddClassification(parsed_phone_fields_[FIELD_COUNTRY_CODE],
+ number_->GetCountryCodeType(),
+ map);
}
if (parsed_phone_fields_[FIELD_AREA_CODE] != NULL) {
- ok = ok && Add(field_type_map,
- parsed_phone_fields_[FIELD_AREA_CODE],
- number_->GetCityCodeType());
+ ok = ok && AddClassification(parsed_phone_fields_[FIELD_AREA_CODE],
+ number_->GetCityCodeType(),
+ map);
}
// We tag the prefix as PHONE_HOME_NUMBER, then when filling the form
// we fill only the prefix depending on the size of the input field.
- ok = ok && Add(field_type_map,
- parsed_phone_fields_[FIELD_PHONE],
- number_->GetNumberType());
+ ok = ok && AddClassification(parsed_phone_fields_[FIELD_PHONE],
+ number_->GetNumberType(),
+ map);
// We tag the suffix as PHONE_HOME_NUMBER, then when filling the form
// we fill only the suffix depending on the size of the input field.
if (parsed_phone_fields_[FIELD_SUFFIX] != NULL) {
- ok = ok && Add(field_type_map,
- parsed_phone_fields_[FIELD_SUFFIX],
- number_->GetNumberType());
+ ok = ok && AddClassification(parsed_phone_fields_[FIELD_SUFFIX],
+ number_->GetNumberType(),
+ map);
}
} else {
- ok = Add(field_type_map,
- parsed_phone_fields_[FIELD_PHONE],
- number_->GetWholeNumberType());
+ ok = AddClassification(parsed_phone_fields_[FIELD_PHONE],
+ number_->GetWholeNumberType(),
+ map);
}
return ok;
}
-PhoneField::PhoneField() {
- memset(parsed_phone_fields_, 0, sizeof(parsed_phone_fields_));
- SetPhoneType(HOME_PHONE);
-}
-
string16 PhoneField::GetCountryRegex() const {
// This one is the same for Home and Fax numbers.
return l10n_util::GetStringUTF16(IDS_AUTOFILL_COUNTRY_CODE_RE);
@@ -266,9 +269,9 @@ bool PhoneField::ParseInternal(PhoneField *phone_field,
// Attempt to parse according to the next grammar.
for (; i < arraysize(phone_field_grammars_) &&
phone_field_grammars_[i].regex != REGEX_SEPARATOR; ++i) {
- if (!ParseText(scanner,
- phone_field->GetRegExp(phone_field_grammars_[i].regex),
- &parsed_fields[phone_field_grammars_[i].phone_part]))
+ if (!ParseField(scanner,
+ phone_field->GetRegExp(phone_field_grammars_[i].regex),
+ &parsed_fields[phone_field_grammars_[i].phone_part]))
break;
if (phone_field_grammars_[i].max_size &&
(!parsed_fields[phone_field_grammars_[i].phone_part]->max_length ||
@@ -309,16 +312,16 @@ bool PhoneField::ParseInternal(PhoneField *phone_field,
// Look for a third text box.
if (!phone_field->parsed_phone_fields_[FIELD_SUFFIX]) {
- if (!ParseText(scanner, phone_field->GetSuffixRegex(),
- &phone_field->parsed_phone_fields_[FIELD_SUFFIX])) {
- ParseText(scanner, phone_field->GetSuffixSeparatorRegex(),
- &phone_field->parsed_phone_fields_[FIELD_SUFFIX]);
+ if (!ParseField(scanner, phone_field->GetSuffixRegex(),
+ &phone_field->parsed_phone_fields_[FIELD_SUFFIX])) {
+ ParseField(scanner, phone_field->GetSuffixSeparatorRegex(),
+ &phone_field->parsed_phone_fields_[FIELD_SUFFIX]);
}
}
// Now look for an extension.
- ParseText(scanner, phone_field->GetExtensionRegex(),
- &phone_field->parsed_phone_fields_[FIELD_EXTENSION]);
+ ParseField(scanner, phone_field->GetExtensionRegex(),
+ &phone_field->parsed_phone_fields_[FIELD_EXTENSION]);
return true;
}
« no previous file with comments | « chrome/browser/autofill/phone_field.h ('k') | chrome/browser/autofill/phone_field_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698