summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-22 15:50:30 +0000
committerdhollowa@chromium.org <dhollowa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-22 15:50:30 +0000
commitd4905bc202830644fb80f7491343b30afc0487e0 (patch)
treed307d823ed53dc9c011479a1406f95d7c4fcd39f
parent1317f7aafd5b402c5931bdf7435d611976b5a853 (diff)
downloadchromium_src-d4905bc202830644fb80f7491343b30afc0487e0.zip
chromium_src-d4905bc202830644fb80f7491343b30afc0487e0.tar.gz
chromium_src-d4905bc202830644fb80f7491343b30afc0487e0.tar.bz2
Autofill heuristics checkout files for 06_checkout_urbanoutfitters.com.html
Extends heuristics engine to look at field values. Tweaks regexes to match idioms in this form. BUG=86606 TEST=FormStructureBrowserTest.* with 06_checkout_urbanoutfitters.com.html Review URL: http://codereview.chromium.org/7206069 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90034 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/autofill/autofill_resources.grd6
-rw-r--r--chrome/browser/autofill/form_field.cc5
-rw-r--r--chrome/browser/autofill/form_field.h11
-rw-r--r--chrome/test/data/autofill/heuristics/output/06_checkout_urbanoutfitters.com.out18
4 files changed, 23 insertions, 17 deletions
diff --git a/chrome/browser/autofill/autofill_resources.grd b/chrome/browser/autofill/autofill_resources.grd
index 309a363..66eca35 100644
--- a/chrome/browser/autofill/autofill_resources.grd
+++ b/chrome/browser/autofill/autofill_resources.grd
@@ -34,7 +34,7 @@
province|region|other<!-- es -->|provincia<!-- pt-BR, pt-PT -->|bairro|suburb
</message>
<message name="IDS_AUTOFILL_COUNTRY_RE">
- country|location<!-- ja-JP -->|国<!-- zh-CN -->|国家<!-- ko-KR -->|국가|나라
+ country|countries|location<!-- ja-JP -->|国<!-- zh-CN -->|国家<!-- ko-KR -->|국가|나라
</message>
<message name="IDS_AUTOFILL_ZIP_CODE_RE">
zip|postal|post.*code|pcode|^1z$<!-- de-DE -->|postleitzahl<!-- es -->|\bcp\b<!-- fr-FR -->|cdp<!-- it-IT -->|\bcap\b<!-- ja-JP -->|郵便番号<!-- pt-BR, pt-PT -->|codigo|codpos|cep<!-- ru -->|Почтовый.?Индекс<!--zh-CN -->|邮政编码|邮编<!-- zh-TW -->|郵遞區號<!-- ko-KR -->|우편.?번호
@@ -46,7 +46,7 @@
city|town<!-- de-DE -->|\bort\b|stadt<!-- en-AU -->|suburb<!-- es -->|ciudad|provincia|localidad|poblacion<!-- fr-FR -->|ville|commune<!-- it-IT -->|localita<!-- ja-JP -->|市区町村<!-- pt-BR, pt-PT -->|cidade<!-- ru -->|Город<!-- zh-CN -->|市<!-- zh-TW -->|分區<!-- ko-KR -->|^시[^도·・]|시[·・]?군[·・]?구
</message>
<message name="IDS_AUTOFILL_STATE_RE">
- state|county|region|province<!-- de-DE -->|land<!-- en-UK -->|county|principality<!-- ja-JP -->|都道府県<!-- pt-BR, pt-PT -->|estado|provincia<!-- ru -->|область<!-- zh-CN -->|省<!-- zh-TW -->|地區<!-- ko-KR -->|^시[·・]?도
+ (?&lt;!united )state|county|region|province<!-- de-DE -->|land<!-- en-UK -->|county|principality<!-- ja-JP -->|都道府県<!-- pt-BR, pt-PT -->|estado|provincia<!-- ru -->|область<!-- zh-CN -->|省<!-- zh-TW -->|地區<!-- ko-KR -->|^시[·・]?도
</message>
<message name="IDS_AUTOFILL_ADDRESS_TYPE_SAME_AS_RE">
same as
@@ -70,7 +70,7 @@
name
</message>
<message name="IDS_AUTOFILL_CARD_NUMBER_RE">
- number|card.?#|card.?no|ccnum<!-- de-DE -->|nummer<!-- es -->|credito|numero|número<!-- fr-FR -->|numéro<!-- ja-JP -->|カード番号<!-- ru -->|Номер.*карты<!-- zh-CN -->|信用卡号|信用卡号码<!-- zh-TW -->|信用卡卡號<!-- ko-KR -->|카드
+ number|card.?#|card.?no|ccnum|acctnum<!-- de-DE -->|nummer<!-- es -->|credito|numero|número<!-- fr-FR -->|numéro<!-- ja-JP -->|カード番号<!-- ru -->|Номер.*карты<!-- zh-CN -->|信用卡号|信用卡号码<!-- zh-TW -->|信用卡卡號<!-- ko-KR -->|카드
</message>
<message name="IDS_AUTOFILL_CARD_CVC_RE">
verification|card identification|security code|cvn|cvv|cvc
diff --git a/chrome/browser/autofill/form_field.cc b/chrome/browser/autofill/form_field.cc
index eaffc16..edcd292 100644
--- a/chrome/browser/autofill/form_field.cc
+++ b/chrome/browser/autofill/form_field.cc
@@ -161,6 +161,11 @@ bool FormField::Match(const AutofillField* field,
return true;
}
+ if ((match_type & FormField::MATCH_VALUE) &&
+ autofill::MatchesPattern(field->value, pattern)) {
+ return true;
+ }
+
return false;
}
diff --git a/chrome/browser/autofill/form_field.h b/chrome/browser/autofill/form_field.h
index 6086a27..f4691a8 100644
--- a/chrome/browser/autofill/form_field.h
+++ b/chrome/browser/autofill/form_field.h
@@ -37,17 +37,18 @@ class FormField {
// Attributes.
MATCH_LABEL = 1 << 0,
MATCH_NAME = 1 << 1,
+ MATCH_VALUE = 1 << 2,
// Input types.
- MATCH_TEXT = 1 << 2,
- MATCH_EMAIL = 1 << 3,
- MATCH_TELEPHONE = 1 << 4,
- MATCH_SELECT = 1 << 5,
+ MATCH_TEXT = 1 << 3,
+ MATCH_EMAIL = 1 << 4,
+ MATCH_TELEPHONE = 1 << 5,
+ MATCH_SELECT = 1 << 6,
MATCH_ALL_INPUTS =
MATCH_TEXT | MATCH_EMAIL | MATCH_TELEPHONE | MATCH_SELECT,
// By default match label and name for input/text types.
- MATCH_DEFAULT = MATCH_LABEL | MATCH_NAME | MATCH_TEXT,
+ MATCH_DEFAULT = MATCH_LABEL | MATCH_NAME | MATCH_VALUE | MATCH_TEXT,
};
// Only derived classes may instantiate.
diff --git a/chrome/test/data/autofill/heuristics/output/06_checkout_urbanoutfitters.com.out b/chrome/test/data/autofill/heuristics/output/06_checkout_urbanoutfitters.com.out
index 87068f9..eb1ee4b 100644
--- a/chrome/test/data/autofill/heuristics/output/06_checkout_urbanoutfitters.com.out
+++ b/chrome/test/data/autofill/heuristics/output/06_checkout_urbanoutfitters.com.out
@@ -1,27 +1,27 @@
UNKNOWN_TYPE
NAME_FIRST
NAME_LAST
-UNKNOWN_TYPE
-UNKNOWN_TYPE
+ADDRESS_HOME_LINE1
+ADDRESS_HOME_LINE2
ADDRESS_HOME_CITY
ADDRESS_HOME_STATE
ADDRESS_HOME_ZIP
-UNKNOWN_TYPE
+ADDRESS_HOME_COUNTRY
PHONE_HOME_WHOLE_NUMBER
PHONE_HOME_WHOLE_NUMBER
NAME_FIRST
NAME_LAST
-UNKNOWN_TYPE
-UNKNOWN_TYPE
+ADDRESS_BILLING_LINE1
+ADDRESS_BILLING_LINE2
ADDRESS_BILLING_CITY
ADDRESS_BILLING_STATE
ADDRESS_BILLING_ZIP
-UNKNOWN_TYPE
+ADDRESS_BILLING_COUNTRY
PHONE_HOME_WHOLE_NUMBER
PHONE_HOME_WHOLE_NUMBER
UNKNOWN_TYPE
UNKNOWN_TYPE
-UNKNOWN_TYPE
-UNKNOWN_TYPE
-UNKNOWN_TYPE
+CREDIT_CARD_NUMBER
+CREDIT_CARD_EXP_MONTH
+CREDIT_CARD_EXP_4_DIGIT_YEAR
UNKNOWN_TYPE