summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorramankk@chromium.org <ramankk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-19 15:49:21 +0000
committerramankk@chromium.org <ramankk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-19 15:49:21 +0000
commit4b76c7799e2b103d8e6eb15fead86fe97a87553b (patch)
tree541b88eb4a52167c2a6b69ed03b2f6d81ee02bbf
parent3c5ba1d96fd7a5684dec3485ca150d1f89920d13 (diff)
downloadchromium_src-4b76c7799e2b103d8e6eb15fead86fe97a87553b.zip
chromium_src-4b76c7799e2b103d8e6eb15fead86fe97a87553b.tar.gz
chromium_src-4b76c7799e2b103d8e6eb15fead86fe97a87553b.tar.bz2
Autofill:Autocomplete: Enable autocheckout of input elements of type password. This will support fields like CVV which are created as password fields by some sites.
BUG=187267 Review URL: https://chromiumcodereview.appspot.com/12721004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189025 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/renderer/autofill/form_autofill_browsertest.cc45
-rw-r--r--chrome/test/data/autofill/heuristics/output/02_checkout_advanceautoparts.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/02_checkout_ae.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/03_checkout_cduniverse.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/03_checkout_hsn.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/04_checkout_jcrew.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/05_checkout_nordstrom.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/06_checkout_qvc.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/08_register_adobe.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/08_register_amazon.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/08_register_aol.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/08_register_bestbuy.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/08_register_continental.com.out4
-rw-r--r--chrome/test/data/autofill/heuristics/output/09_register_deviantart.com.out3
-rw-r--r--chrome/test/data/autofill/heuristics/output/09_register_ebay.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/09_register_ecomm.dell.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/09_register_epson.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/09_register_google.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/10_register_gymboree.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/10_register_hotels.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/10_register_imdb.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/10_register_jbox.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/10_register_live.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/11_register_livejournal.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/11_register_macys.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/11_register_mcphee.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/11_register_myspace.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/11_register_newegg.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/12_register_officedepot.com.out4
-rw-r--r--chrome/test/data/autofill/heuristics/output/12_register_officemax.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/12_register_pyramidcollection.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/12_register_rediff.com.out3
-rw-r--r--chrome/test/data/autofill/heuristics/output/12_register_rei.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/13_register_rocketlawyer.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/13_register_signup.clicksor.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/13_register_signup.live.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/13_register_sourceforge.net.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/13_register_supershuttle.com.out3
-rw-r--r--chrome/test/data/autofill/heuristics/output/14_register_target.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/14_register_threadless.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/14_register_trueblue.jetblue.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/14_register_uhaul.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/14_register_yahoo.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/15_crbug_53075.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/17_crbug_98338.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/20_register_alaskaair.com.out2
-rw-r--r--chrome/test/data/autofill/heuristics/output/20_register_epson.com.mx.out3
-rw-r--r--components/autofill/browser/form_structure.cc32
-rw-r--r--components/autofill/browser/form_structure.h7
-rw-r--r--components/autofill/browser/form_structure_unittest.cc6
-rw-r--r--components/autofill/renderer/form_autofill_util.cc8
51 files changed, 159 insertions, 39 deletions
diff --git a/chrome/renderer/autofill/form_autofill_browsertest.cc b/chrome/renderer/autofill/form_autofill_browsertest.cc
index b59850a..1a2e9d2 100644
--- a/chrome/renderer/autofill/form_autofill_browsertest.cc
+++ b/chrome/renderer/autofill/form_autofill_browsertest.cc
@@ -302,7 +302,6 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormFieldSelect) {
TEST_F(FormAutofillTest, WebFormControlElementToFormFieldInvalidType) {
LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
" <INPUT type=\"hidden\" id=\"hidden\" value=\"apple\"/>"
- " <INPUT type=\"password\" id=\"password\" value=\"secret\"/>"
" <INPUT type=\"submit\" id=\"submit\" value=\"Send\"/>"
"</FORM>");
@@ -321,13 +320,6 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormFieldInvalidType) {
expected.form_control_type = "hidden";
EXPECT_FORM_FIELD_DATA_EQUALS(expected, result);
- web_element = frame->document().getElementById("password");
- element = web_element.to<WebFormControlElement>();
- WebFormControlElementToFormField(element, autofill::EXTRACT_VALUE, &result);
- expected.name = ASCIIToUTF16("password");
- expected.form_control_type = "password";
- EXPECT_FORM_FIELD_DATA_EQUALS(expected, result);
-
web_element = frame->document().getElementById("submit");
element = web_element.to<WebFormControlElement>();
WebFormControlElementToFormField(element, autofill::EXTRACT_VALUE, &result);
@@ -336,6 +328,28 @@ TEST_F(FormAutofillTest, WebFormControlElementToFormFieldInvalidType) {
EXPECT_FORM_FIELD_DATA_EQUALS(expected, result);
}
+// We should be able to extract password fields.
+TEST_F(FormAutofillTest, WebFormControlElementToPasswordFormField) {
+ LoadHTML("<FORM name=\"TestForm\" action=\"http://cnn.com\" method=\"post\">"
+ " <INPUT type=\"password\" id=\"password\" value=\"secret\"/>"
+ "</FORM>");
+
+ WebFrame* frame = GetMainFrame();
+ ASSERT_NE(static_cast<WebFrame*>(NULL), frame);
+
+ WebElement web_element = frame->document().getElementById("password");
+ WebFormControlElement element = web_element.to<WebFormControlElement>();
+ FormFieldData result;
+ WebFormControlElementToFormField(element, autofill::EXTRACT_VALUE, &result);
+
+ FormFieldData expected;
+ expected.max_length = WebInputElement::defaultMaxLength();
+ expected.name = ASCIIToUTF16("password");
+ expected.form_control_type = "password";
+ expected.value = ASCIIToUTF16("secret");
+ EXPECT_FORM_FIELD_DATA_EQUALS(expected, result);
+}
+
// We should be able to extract the autocompletetype attribute.
TEST_F(FormAutofillTest, WebFormControlElementToFormFieldAutocompletetype) {
std::string html =
@@ -419,12 +433,12 @@ TEST_F(FormAutofillTest, WebFormElementToFormData) {
" <OPTION value=\"CA\">California</OPTION>"
" <OPTION value=\"TX\">Texas</OPTION>"
" </SELECT>"
- // The below inputs should be ignored
- " <LABEL for=\"notvisible\">Hidden:</LABEL>"
- " <INPUT type=\"hidden\" id=\"notvisible\" value=\"apple\"/>"
" <LABEL for=\"password\">Password:</LABEL>"
" <INPUT type=\"password\" id=\"password\" value=\"secret\"/>"
" <INPUT type=\"submit\" name=\"reply-send\" value=\"Send\"/>"
+ // The below inputs should be ignored
+ " <LABEL for=\"notvisible\">Hidden:</LABEL>"
+ " <INPUT type=\"hidden\" id=\"notvisible\" value=\"apple\"/>"
"</FORM>");
WebFrame* frame = GetMainFrame();
@@ -450,7 +464,7 @@ TEST_F(FormAutofillTest, WebFormElementToFormData) {
EXPECT_EQ(GURL("http://cnn.com"), form.action);
const std::vector<FormFieldData>& fields = form.fields;
- ASSERT_EQ(3U, fields.size());
+ ASSERT_EQ(4U, fields.size());
FormFieldData expected;
expected.name = ASCIIToUTF16("firstname");
@@ -473,6 +487,13 @@ TEST_F(FormAutofillTest, WebFormElementToFormData) {
expected.form_control_type = "select-one";
expected.max_length = 0;
EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[2]);
+
+ expected.name = ASCIIToUTF16("password");
+ expected.value = ASCIIToUTF16("secret");
+ expected.label = ASCIIToUTF16("Password:");
+ expected.form_control_type = "password";
+ expected.max_length = WebInputElement::defaultMaxLength();
+ EXPECT_FORM_FIELD_DATA_EQUALS(expected, fields[3]);
}
// We should not be able to serialize a form with too many fillable fields.
diff --git a/chrome/test/data/autofill/heuristics/output/02_checkout_advanceautoparts.com.out b/chrome/test/data/autofill/heuristics/output/02_checkout_advanceautoparts.com.out
index 80b1077..63b2f8c 100644
--- a/chrome/test/data/autofill/heuristics/output/02_checkout_advanceautoparts.com.out
+++ b/chrome/test/data/autofill/heuristics/output/02_checkout_advanceautoparts.com.out
@@ -11,6 +11,8 @@ PHONE_HOME_NUMBER | billDayPhonePart2 | ) |
PHONE_HOME_NUMBER | billDayPhonePart3 | *Day Phone: |
EMAIL_ADDRESS | billEmail | *Email Address: |
UNKNOWN_TYPE | sendMeEmail | *Email Address: | checked
+UNKNOWN_TYPE | billPassword | Password: |
+UNKNOWN_TYPE | billPasswordVerify | Confirm Password: |
NAME_FIRST | shipFirstName | *First Name: |
NAME_LAST | shipLastName | *Last Name: |
ADDRESS_HOME_LINE1 | shipAddress1 | *Street Address 1: |
diff --git a/chrome/test/data/autofill/heuristics/output/02_checkout_ae.com.out b/chrome/test/data/autofill/heuristics/output/02_checkout_ae.com.out
index 7b23197..ac9f156 100644
--- a/chrome/test/data/autofill/heuristics/output/02_checkout_ae.com.out
+++ b/chrome/test/data/autofill/heuristics/output/02_checkout_ae.com.out
@@ -40,6 +40,8 @@ PHONE_HOME_WHOLE_NUMBER | billingPhone | Billing Phone Number CLOSEThis must mat
UNKNOWN_TYPE | accessPassNumber | My AEREWARD$ # CLOSEAEREWARD$ NumberEnter the number found on the back of your AEREWARD$ card to earn rewards for your purchase.Learn More about AEREWARD$ |
UNKNOWN_TYPE | aeRewardsSignUp | Sign up now and receive 25 points  just for signing up! Learn More | true
UNKNOWN_TYPE | aeAccount | Create my AE Account.CLOSECreate an AE Account to:Save Your Personal Info For Next TimeCheckout FasterTrack An Order Quicker Sign up now and receive 25 points just for signing up! Learn More | true
+UNKNOWN_TYPE | aeAccountPass | Password (6-15 Letters & Numbers) |
+UNKNOWN_TYPE | aeAccountPassConfirm | Confirm Password |
UNKNOWN_TYPE | birthMonthBillAddField | Birthday: CLOSEWe'd love to wish you a happy birthday when it's time! However, you need to be 13 or older to create an account. |
UNKNOWN_TYPE | birthDayBillAddField | Birthday: CLOSEWe'd love to wish you a happy birthday when it's time! However, you need to be 13 or older to create an account. |
UNKNOWN_TYPE | birthYearBillAddField | Birthday: CLOSEWe'd love to wish you a happy birthday when it's time! However, you need to be 13 or older to create an account. |
diff --git a/chrome/test/data/autofill/heuristics/output/03_checkout_cduniverse.com.out b/chrome/test/data/autofill/heuristics/output/03_checkout_cduniverse.com.out
index b5e2157..251fbf5 100644
--- a/chrome/test/data/autofill/heuristics/output/03_checkout_cduniverse.com.out
+++ b/chrome/test/data/autofill/heuristics/output/03_checkout_cduniverse.com.out
@@ -1,5 +1,7 @@
NAME_FIRST | HT_First_Name | First Name |
NAME_LAST | HT_Last_Name | Last Name |
+UNKNOWN_TYPE | HT_Password | Password |
+UNKNOWN_TYPE | HT_Conf_Password | Re-enter Password |
EMAIL_ADDRESS | HT_email | Email |
ADDRESS_BILLING_LINE1 | HT_Bill_Address1 | Address 1 |
ADDRESS_BILLING_LINE2 | HT_Bill_Address2 | Address 2 |
diff --git a/chrome/test/data/autofill/heuristics/output/03_checkout_hsn.com.out b/chrome/test/data/autofill/heuristics/output/03_checkout_hsn.com.out
index a7c12cd..8bda8e2 100644
--- a/chrome/test/data/autofill/heuristics/output/03_checkout_hsn.com.out
+++ b/chrome/test/data/autofill/heuristics/output/03_checkout_hsn.com.out
@@ -35,4 +35,6 @@ UNKNOWN_TYPE | IsDebitCard | Is this a Debit Card? | 1
UNKNOWN_TYPE | IsDebitCard | Yes | 0
UNKNOWN_TYPE | Body$SaveCC4Later | Is this a Debit Card? | on
UNKNOWN_TYPE | PaymentTypeSelection | OR | 1
+UNKNOWN_TYPE | Body$NewPassword | Create Password (optional) |
+UNKNOWN_TYPE | Body$RepeatNewPassword | Repeat Password (optional) |
UNKNOWN_TYPE | Body$NewPasswordHint | Password Hint (optional) |
diff --git a/chrome/test/data/autofill/heuristics/output/04_checkout_jcrew.com.out b/chrome/test/data/autofill/heuristics/output/04_checkout_jcrew.com.out
index c36cad0..8dd9238 100644
--- a/chrome/test/data/autofill/heuristics/output/04_checkout_jcrew.com.out
+++ b/chrome/test/data/autofill/heuristics/output/04_checkout_jcrew.com.out
@@ -8,4 +8,6 @@ ADDRESS_HOME_CITY | ADDRESS<>city | city * |
ADDRESS_HOME_STATE | ADDRESS<>state_cd | state/province * |
ADDRESS_HOME_ZIP | ADDRESS<>postal | zip code * |
PHONE_HOME_WHOLE_NUMBER | ADDRESS<>phone | phone number (numbers only) * |
+UNKNOWN_TYPE | anonPassword | create password |
+UNKNOWN_TYPE | anonPasswordConfirm | confirm password |
UNKNOWN_TYPE | anonPasswordHint | create password hint |
diff --git a/chrome/test/data/autofill/heuristics/output/05_checkout_nordstrom.com.out b/chrome/test/data/autofill/heuristics/output/05_checkout_nordstrom.com.out
index 682d075..176e1f7 100644
--- a/chrome/test/data/autofill/heuristics/output/05_checkout_nordstrom.com.out
+++ b/chrome/test/data/autofill/heuristics/output/05_checkout_nordstrom.com.out
@@ -19,3 +19,5 @@ ADDRESS_HOME_LINE2 | ctl00$mainContentPlaceHolder$shippingAddressForm$address2 |
ADDRESS_HOME_CITY | ctl00$mainContentPlaceHolder$shippingAddressForm$city | City |
ADDRESS_HOME_STATE | ctl00$mainContentPlaceHolder$shippingAddressForm$stateProvince | State/Province | -1
ADDRESS_HOME_ZIP | ctl00$mainContentPlaceHolder$shippingAddressForm$zipCode | Zip/Postal Code |
+UNKNOWN_TYPE | ctl00$mainContentPlaceHolder$registrationPassword | Password |
+UNKNOWN_TYPE | ctl00$mainContentPlaceHolder$registrationPasswordConfirm | Confirm Password |
diff --git a/chrome/test/data/autofill/heuristics/output/06_checkout_qvc.com.out b/chrome/test/data/autofill/heuristics/output/06_checkout_qvc.com.out
index f0f8e58..a161831 100644
--- a/chrome/test/data/autofill/heuristics/output/06_checkout_qvc.com.out
+++ b/chrome/test/data/autofill/heuristics/output/06_checkout_qvc.com.out
@@ -1,5 +1,7 @@
EMAIL_ADDRESS | EmailAddress | * E-mail Address: |
EMAIL_ADDRESS | EmailAddressVerify | * Confirm E-mail Address: |
+UNKNOWN_TYPE | Pin | * PIN: |
+UNKNOWN_TYPE | PinVerify | * Verify Your PIN: |
UNKNOWN_TYPE | Prefix | * Title: | 06
NAME_FIRST | BilltoFirstName | * First Name: |
NAME_LAST | BilltoLastName | * Last Name: |
diff --git a/chrome/test/data/autofill/heuristics/output/08_register_adobe.com.out b/chrome/test/data/autofill/heuristics/output/08_register_adobe.com.out
index e1bb4b6..89885f0 100644
--- a/chrome/test/data/autofill/heuristics/output/08_register_adobe.com.out
+++ b/chrome/test/data/autofill/heuristics/output/08_register_adobe.com.out
@@ -2,5 +2,7 @@ EMAIL_ADDRESS | adobeId | E-Mail AddressThis will be your Adobe ID |
NAME_FIRST | firstName | First Name |
NAME_LAST | lastName | Last Name |
ADDRESS_HOME_COUNTRY | countryCode | Country |
+UNKNOWN_TYPE | subscribePass1 | PasswordMust be between 6-12 characters |
+UNKNOWN_TYPE | subscribePass2 | Confirm Password |
UNKNOWN_TYPE | agreeToTou | I have read and agree to the and the | on
UNKNOWN_TYPE | hostedOptIn | Yes! I would like to receive communications relating to Adobe, its products and services including product releases, product upgrades, seminars, events, surveys, training and special offers, and Adobe, and its agents may use data I have provided in accordance with the | on
diff --git a/chrome/test/data/autofill/heuristics/output/08_register_amazon.com.out b/chrome/test/data/autofill/heuristics/output/08_register_amazon.com.out
index f49c7e9..a0593d5 100644
--- a/chrome/test/data/autofill/heuristics/output/08_register_amazon.com.out
+++ b/chrome/test/data/autofill/heuristics/output/08_register_amazon.com.out
@@ -3,3 +3,5 @@ UNKNOWN_TYPE | action | Create a new account (Recommended for Business accounts)
UNKNOWN_TYPE | userName | First and Last Name: |
EMAIL_ADDRESS | email | E-mail Address: |
EMAIL_ADDRESS | emailCheck | Re-type E-mail Address: |
+UNKNOWN_TYPE | password | Password: |
+UNKNOWN_TYPE | passwordCheck | Re-type Password: |
diff --git a/chrome/test/data/autofill/heuristics/output/08_register_aol.com.out b/chrome/test/data/autofill/heuristics/output/08_register_aol.com.out
index 8afd4fe..4b6a6fc 100644
--- a/chrome/test/data/autofill/heuristics/output/08_register_aol.com.out
+++ b/chrome/test/data/autofill/heuristics/output/08_register_aol.com.out
@@ -1,7 +1,9 @@
NAME_FIRST | {actionForm.firstName} | First Name |
NAME_LAST | {actionForm.lastName} | Last Name |
UNKNOWN_TYPE | {actionForm.desiredSN} | NEW! Pick a username: What's new? |
+UNKNOWN_TYPE | {actionForm.password} | Password |
UNKNOWN_TYPE | verifyPasswordHint | Password | Retype password
+UNKNOWN_TYPE | {actionForm.verifyPassword} | Password |
UNKNOWN_TYPE | wlw-select_key:{actionForm.dobMonth} | Select Month |
UNKNOWN_TYPE | {actionForm.dobDay} | Select Month | Day (dd)
UNKNOWN_TYPE | {actionForm.dobYear} | Select Month | Year (yyyy)
diff --git a/chrome/test/data/autofill/heuristics/output/08_register_bestbuy.com.out b/chrome/test/data/autofill/heuristics/output/08_register_bestbuy.com.out
index 83673d3..8e53e04 100644
--- a/chrome/test/data/autofill/heuristics/output/08_register_bestbuy.com.out
+++ b/chrome/test/data/autofill/heuristics/output/08_register_bestbuy.com.out
@@ -3,5 +3,7 @@ NAME_MIDDLE_INITIAL | TxtMI | MI |
NAME_LAST | TxtLastName | *Last Name |
EMAIL_ADDRESS | TxtEmail | *E-Mail Address |
EMAIL_ADDRESS | TxtEmailConfirm | *Retype E-Mail Address |
+UNKNOWN_TYPE | PwdPassword | *Password (6 to 30 characters. At least one number.) |
+UNKNOWN_TYPE | PwdPasswordConfirm | *Retype Password (must match exactly) |
ADDRESS_HOME_ZIP | TxtPostalCode | *ZIP Code |
UNKNOWN_TYPE | TxtRzMembershipId | Enter 10-Digit Member ID (optional) |
diff --git a/chrome/test/data/autofill/heuristics/output/08_register_continental.com.out b/chrome/test/data/autofill/heuristics/output/08_register_continental.com.out
index 053e6ec8..8238867 100644
--- a/chrome/test/data/autofill/heuristics/output/08_register_continental.com.out
+++ b/chrome/test/data/autofill/heuristics/output/08_register_continental.com.out
@@ -32,7 +32,11 @@ UNKNOWN_TYPE | ctl00$ContentInfo$chkSubOpStatement | | on
UNKNOWN_TYPE | ctl00$ContentInfo$chkSubopnewsoffers | | on
UNKNOWN_TYPE | ctl00$ContentInfo$chkSubcocomspecials | | on
UNKNOWN_TYPE | ctl00$ContentInfo$chkSubtripnotes | | on
+UNKNOWN_TYPE | ctl00$ContentInfo$NewPin$txtNewPin$txtNewPin | New PIN: |
+UNKNOWN_TYPE | ctl00$ContentInfo$NewPin$txtConfPin$txtConfPin | Re-type New PIN: |
UNKNOWN_TYPE | ctl00$ContentInfo$UsernamePassword$username$txtUsername | Username: |
+UNKNOWN_TYPE | ctl00$ContentInfo$UsernamePassword$password$txtPassword | Password: |
+UNKNOWN_TYPE | ctl00$ContentInfo$UsernamePassword$passwordRetype$txtPassword | Re-type Password: |
UNKNOWN_TYPE | ctl00$ContentInfo$PINPasswordReminder$PINReminder1$txtPINReminder | PIN Reminder: (cannot include any numbers) |
UNKNOWN_TYPE | ctl00$ContentInfo$SecurityQuestionAnswer$Question$txtSecurity | Security Question: |
UNKNOWN_TYPE | ctl00$ContentInfo$SecurityQuestionAnswer$Answer$txtSecurity | Answer: |
diff --git a/chrome/test/data/autofill/heuristics/output/09_register_deviantart.com.out b/chrome/test/data/autofill/heuristics/output/09_register_deviantart.com.out
index daa7e97..e5f47d7 100644
--- a/chrome/test/data/autofill/heuristics/output/09_register_deviantart.com.out
+++ b/chrome/test/data/autofill/heuristics/output/09_register_deviantart.com.out
@@ -1,6 +1,9 @@
UNKNOWN_TYPE | existingAccount | Are you a new customer? | 0
UNKNOWN_TYPE | existingAccount | Are you a new customer? Create a new Buyer Account I have an existing deviantART account (email or username) | 1
EMAIL_ADDRESS | emailAddress | Email Address |
+UNKNOWN_TYPE | password | Password |
UNKNOWN_TYPE | remember_me | Stay logged in | 1
+UNKNOWN_TYPE | passwordNew | Password |
+UNKNOWN_TYPE | passwordConfirm | Password (confirm) |
NAME_FULL | name | Full Name |
ADDRESS_HOME_COUNTRY | country | Country | 0
diff --git a/chrome/test/data/autofill/heuristics/output/09_register_ebay.com.out b/chrome/test/data/autofill/heuristics/output/09_register_ebay.com.out
index 4cfba51..2a53dbb 100644
--- a/chrome/test/data/autofill/heuristics/output/09_register_ebay.com.out
+++ b/chrome/test/data/autofill/heuristics/output/09_register_ebay.com.out
@@ -13,6 +13,8 @@ UNKNOWN_TYPE | dayphone4 | ext.: |
EMAIL_ADDRESS | email | Email address |
EMAIL_ADDRESS | retype_email | Re-enter email address |
UNKNOWN_TYPE | userid | Create your eBay user ID |
+UNKNOWN_TYPE | pass | Create your password |
+UNKNOWN_TYPE | rpass | Re-enter your password |
UNKNOWN_TYPE | canned | Pick a secret question | 0
UNKNOWN_TYPE | myanswer | Your secret answer |
UNKNOWN_TYPE | birthdate2 | Date of birth, Month | 0
diff --git a/chrome/test/data/autofill/heuristics/output/09_register_ecomm.dell.com.out b/chrome/test/data/autofill/heuristics/output/09_register_ecomm.dell.com.out
index d1707fe..f04da5a 100644
--- a/chrome/test/data/autofill/heuristics/output/09_register_ecomm.dell.com.out
+++ b/chrome/test/data/autofill/heuristics/output/09_register_ecomm.dell.com.out
@@ -9,4 +9,6 @@ ADDRESS_HOME_ZIP | address$ctl00$address$addressValidator$_EditView$postal_code
UNKNOWN_TYPE | address$ctl00$address$addressValidator$_EditView$postal_code2 | Zip Code4-digit Ext. |
UNKNOWN_TYPE | address$ctl00$address$addressValidator$OverrideAddress | Problems? | on
EMAIL_ADDRESS | email$ctl07 | Email Address (used to sign into your account) |
+UNKNOWN_TYPE | CreateNewPassword$ctl07 | Create New Password |
+UNKNOWN_TYPE | ConfirmPassword$ctl07 | Confirm New Password |
UNKNOWN_TYPE | Subscription | | on
diff --git a/chrome/test/data/autofill/heuristics/output/09_register_epson.com.out b/chrome/test/data/autofill/heuristics/output/09_register_epson.com.out
index 6650d56..d196e6b 100644
--- a/chrome/test/data/autofill/heuristics/output/09_register_epson.com.out
+++ b/chrome/test/data/autofill/heuristics/output/09_register_epson.com.out
@@ -1,4 +1,6 @@
NAME_FIRST | fname | * First Name |
NAME_LAST | lname | * Last Name |
EMAIL_ADDRESS | emLogin | * E-mail address |
+UNKNOWN_TYPE | pw | * Password |
+UNKNOWN_TYPE | verifypw | * Re-Confirm Password |
UNKNOWN_TYPE | wantMsg | | on
diff --git a/chrome/test/data/autofill/heuristics/output/09_register_google.com.out b/chrome/test/data/autofill/heuristics/output/09_register_google.com.out
index 18ac19c..be77c5e 100644
--- a/chrome/test/data/autofill/heuristics/output/09_register_google.com.out
+++ b/chrome/test/data/autofill/heuristics/output/09_register_google.com.out
@@ -2,6 +2,8 @@ NAME_FIRST | FirstName | First name: |
NAME_LAST | LastName | Last name: |
UNKNOWN_TYPE | UsernameSelector | | header
EMAIL_ADDRESS | Email | |
+UNKNOWN_TYPE | Passwd | |
+UNKNOWN_TYPE | PasswdAgain | Re-enter password: |
UNKNOWN_TYPE | PersistentCookie | Re-enter password: | yes
UNKNOWN_TYPE | smhck | Re-enter password: | 1
UNKNOWN_TYPE | selection | Security question: | choosequestion
diff --git a/chrome/test/data/autofill/heuristics/output/10_register_gymboree.com.out b/chrome/test/data/autofill/heuristics/output/10_register_gymboree.com.out
index f42e13b..7baa4d8 100644
--- a/chrome/test/data/autofill/heuristics/output/10_register_gymboree.com.out
+++ b/chrome/test/data/autofill/heuristics/output/10_register_gymboree.com.out
@@ -9,6 +9,8 @@ ADDRESS_HOME_CITY | LOYALTY_ADDRESS<>city | City* |
ADDRESS_HOME_STATE | LOYALTY_ADDRESS<>state_cd | State/Province* |
ADDRESS_HOME_ZIP | LOYALTY_ADDRESS<>postal | Zip/Postal Code*! |
PHONE_HOME_WHOLE_NUMBER | LOYALTY_ADDRESS<>phone | Daytime Phone* |
+UNKNOWN_TYPE | LOYALTY_ACCOUNT<>password | Password*! |
+UNKNOWN_TYPE | LOYALTY_ACCOUNT<>confirmPassword | Confirm Password* |
UNKNOWN_TYPE | LOYALTY_ACCOUNT<>ATR_USER_Password_Hint | Password Hint* |
UNKNOWN_TYPE | LOYALTY_ADDRESS<>ATR_indBillAsRewards | Password Hint*! | true
UNKNOWN_TYPE | LOYALTY_ACCOUNT<>sendEmail | Save the address above as my default billing address. I would like to receive promotions and special offers from Gymboree. | true
diff --git a/chrome/test/data/autofill/heuristics/output/10_register_hotels.com.out b/chrome/test/data/autofill/heuristics/output/10_register_hotels.com.out
index a651faa..8db70c3 100644
--- a/chrome/test/data/autofill/heuristics/output/10_register_hotels.com.out
+++ b/chrome/test/data/autofill/heuristics/output/10_register_hotels.com.out
@@ -1,5 +1,7 @@
EMAIL_ADDRESS | profileInformation.email | Email address* |
EMAIL_ADDRESS | confirmEmail | Confirm email address* |
+UNKNOWN_TYPE | profileInformation.password | Password* |
+UNKNOWN_TYPE | confirmPassword | Confirm password* |
UNKNOWN_TYPE | profileInformation.customerContact.title | Title | NONE
NAME_FIRST | profileInformation.customerContact.firstName | First name* |
NAME_LAST | profileInformation.customerContact.lastName | Last name* |
diff --git a/chrome/test/data/autofill/heuristics/output/10_register_imdb.com.out b/chrome/test/data/autofill/heuristics/output/10_register_imdb.com.out
index 886a00a..abf0765 100644
--- a/chrome/test/data/autofill/heuristics/output/10_register_imdb.com.out
+++ b/chrome/test/data/autofill/heuristics/output/10_register_imdb.com.out
@@ -5,3 +5,5 @@ UNKNOWN_TYPE | gender | Male | F
UNKNOWN_TYPE | year | Year of Birth: |
ADDRESS_HOME_ZIP | postal | ZIP/Postal Code: |
ADDRESS_HOME_COUNTRY | country | Country: | US
+UNKNOWN_TYPE | pass1 | Select a password: |
+UNKNOWN_TYPE | pass2 | Confirm password: |
diff --git a/chrome/test/data/autofill/heuristics/output/10_register_jbox.com.out b/chrome/test/data/autofill/heuristics/output/10_register_jbox.com.out
index 14e4bae..3bf405c 100644
--- a/chrome/test/data/autofill/heuristics/output/10_register_jbox.com.out
+++ b/chrome/test/data/autofill/heuristics/output/10_register_jbox.com.out
@@ -7,5 +7,7 @@ ADDRESS_HOME_ZIP | zip | Postal / Zip Code |
ADDRESS_HOME_COUNTRY | country | Country | United States
PHONE_HOME_WHOLE_NUMBER | phone | |
EMAIL_ADDRESS | email | |
+UNKNOWN_TYPE | password | Enter a password |
+UNKNOWN_TYPE | password_again | Retype your password |
UNKNOWN_TYPE | referred_by | Where did you hear about J-List/JBOX? | Don't Know!
UNKNOWN_TYPE | referred_by_other | If other, please specify |
diff --git a/chrome/test/data/autofill/heuristics/output/10_register_live.com.out b/chrome/test/data/autofill/heuristics/output/10_register_live.com.out
index 8e45ebab..90ef072 100644
--- a/chrome/test/data/autofill/heuristics/output/10_register_live.com.out
+++ b/chrome/test/data/autofill/heuristics/output/10_register_live.com.out
@@ -4,6 +4,8 @@ UNKNOWN_TYPE | isug1 | Enter a word | Enter a word
UNKNOWN_TYPE | isug2 | Enter another word | Enter another word
UNKNOWN_TYPE | isug3 | Enter another word | Enter another word
EMAIL_ADDRESS | imembernameeasi | Use your email address: | Example: someone@example.com
+UNKNOWN_TYPE | iPwd | Create a password: |
+UNKNOWN_TYPE | iRetypePwd | Retype password: |
EMAIL_ADDRESS | iAltEmail | Alternate email address: |
UNKNOWN_TYPE | iSQ | Question: | 0
UNKNOWN_TYPE | iSA | Secret answer: |
diff --git a/chrome/test/data/autofill/heuristics/output/11_register_livejournal.com.out b/chrome/test/data/autofill/heuristics/output/11_register_livejournal.com.out
index 6f1e66c..ff81321 100644
--- a/chrome/test/data/autofill/heuristics/output/11_register_livejournal.com.out
+++ b/chrome/test/data/autofill/heuristics/output/11_register_livejournal.com.out
@@ -1,5 +1,7 @@
UNKNOWN_TYPE | Widget[CreateAccount]_user | Username: |
EMAIL_ADDRESS | Widget[CreateAccount]_email | Email Address: |
+UNKNOWN_TYPE | Widget[CreateAccount]_password1 | Password: |
+UNKNOWN_TYPE | Widget[CreateAccount]_password2 | Confirm Password: |
UNKNOWN_TYPE | Widget[CreateAccount]_gender | Gender: |
UNKNOWN_TYPE | Widget[CreateAccount]_bday_mm | Birthdate: | 1
UNKNOWN_TYPE | Widget[CreateAccount]_bday_dd | Birthdate: |
diff --git a/chrome/test/data/autofill/heuristics/output/11_register_macys.com.out b/chrome/test/data/autofill/heuristics/output/11_register_macys.com.out
index fbdf796..7980741 100644
--- a/chrome/test/data/autofill/heuristics/output/11_register_macys.com.out
+++ b/chrome/test/data/autofill/heuristics/output/11_register_macys.com.out
@@ -5,6 +5,8 @@ ADDRESS_HOME_LINE2 | Address2 | P.O. Box/Apt # |
ADDRESS_HOME_ZIP | PostalCode | Zip Code |
EMAIL_ADDRESS | EmailAddress | Email |
EMAIL_ADDRESS | ConfirmEmailAddress | Verify Email |
+UNKNOWN_TYPE | Password | Password |
+UNKNOWN_TYPE | PasswordConfirm | Verify Password |
UNKNOWN_TYPE | BirthMonth | Birth date | NOSELECTION
UNKNOWN_TYPE | BirthDay | | NOSELECTION
UNKNOWN_TYPE | BirthYear | | NOSELECTION
diff --git a/chrome/test/data/autofill/heuristics/output/11_register_mcphee.com.out b/chrome/test/data/autofill/heuristics/output/11_register_mcphee.com.out
index 14afb1b..a34565c 100644
--- a/chrome/test/data/autofill/heuristics/output/11_register_mcphee.com.out
+++ b/chrome/test/data/autofill/heuristics/output/11_register_mcphee.com.out
@@ -1,4 +1,6 @@
EMAIL_ADDRESS | FormField[1][1] | * Email Address: |
+UNKNOWN_TYPE | FormField[1][2] | * Password: |
+UNKNOWN_TYPE | FormField[1][3] | * Confirm Password: |
NAME_FIRST | FormField[2][4] | * First Name: |
NAME_LAST | FormField[2][5] | * Last Name: |
COMPANY_NAME | FormField[2][6] | * Company Name: |
diff --git a/chrome/test/data/autofill/heuristics/output/11_register_myspace.com.out b/chrome/test/data/autofill/heuristics/output/11_register_myspace.com.out
index 279c12c..d14992a 100644
--- a/chrome/test/data/autofill/heuristics/output/11_register_myspace.com.out
+++ b/chrome/test/data/autofill/heuristics/output/11_register_myspace.com.out
@@ -8,6 +8,8 @@ UNKNOWN_TYPE | tbxMusicianName | Artist Name |
UNKNOWN_TYPE | ddlGenre | Genre |
UNKNOWN_TYPE | ddlLabel | Label Type |
EMAIL_ADDRESS | tbxEmail | Email |
+UNKNOWN_TYPE | tbxPassword | Password |
+UNKNOWN_TYPE | tbxPassword1 | Confirm Password |
UNKNOWN_TYPE | ddlMonth | Birthday |
UNKNOWN_TYPE | ddlDay | |
UNKNOWN_TYPE | ddlYear | |
diff --git a/chrome/test/data/autofill/heuristics/output/11_register_newegg.com.out b/chrome/test/data/autofill/heuristics/output/11_register_newegg.com.out
index 924fbd3..196998c 100644
--- a/chrome/test/data/autofill/heuristics/output/11_register_newegg.com.out
+++ b/chrome/test/data/autofill/heuristics/output/11_register_newegg.com.out
@@ -1,5 +1,7 @@
EMAIL_ADDRESS | LoginName | Email Address* |
EMAIL_ADDRESS | LoginName1 | Confirm Email Address* |
+UNKNOWN_TYPE | Password | Password* |
+UNKNOWN_TYPE | Password1 | Confirm Password* |
NAME_FIRST | FirstName | First Name* |
NAME_MIDDLE_INITIAL | BMI | MI |
NAME_LAST | LastName | Last Name* |
diff --git a/chrome/test/data/autofill/heuristics/output/12_register_officedepot.com.out b/chrome/test/data/autofill/heuristics/output/12_register_officedepot.com.out
index fea11d1..00a5286 100644
--- a/chrome/test/data/autofill/heuristics/output/12_register_officedepot.com.out
+++ b/chrome/test/data/autofill/heuristics/output/12_register_officedepot.com.out
@@ -36,4 +36,6 @@ PHONE_HOME_NUMBER | addrsForm[2].phoneNumber3 | - |
UNKNOWN_TYPE | addrsForm[2].phoneNumber4 | ext. |
EMAIL_ADDRESS | addrsForm[2].email | *Email Address: |
UNKNOWN_TYPE | loginForm.loginName | *Login Name: |
-UNKNOWN_TYPE | loginForm.autoLogin | *Password Confirm: retype your password | on
+UNKNOWN_TYPE | loginForm.password | *Password: |
+UNKNOWN_TYPE | loginForm.passwordConfirm | *Password Confirm: |
+UNKNOWN_TYPE | loginForm.autoLogin | *Password Confirm: | on
diff --git a/chrome/test/data/autofill/heuristics/output/12_register_officemax.com.out b/chrome/test/data/autofill/heuristics/output/12_register_officemax.com.out
index 4e027e1..d62bb27 100644
--- a/chrome/test/data/autofill/heuristics/output/12_register_officemax.com.out
+++ b/chrome/test/data/autofill/heuristics/output/12_register_officemax.com.out
@@ -4,3 +4,5 @@ NAME_LAST | /atg/userprofiling/ProfileFormHandler.value.lastName | * Last Name:
EMAIL_ADDRESS | /atg/userprofiling/ProfileFormHandler.value.login | * Email Address: |
EMAIL_ADDRESS | /atg/userprofiling/ProfileFormHandler.confirmEmailAddress | * Confirm Email: |
ADDRESS_HOME_ZIP | /atg/userprofiling/ProfileFormHandler.value.zip | * Zip: |
+UNKNOWN_TYPE | /atg/userprofiling/ProfileFormHandler.value.password | * Password: |
+UNKNOWN_TYPE | /atg/userprofiling/ProfileFormHandler.value.confirmPassword | * Confirm Password: |
diff --git a/chrome/test/data/autofill/heuristics/output/12_register_pyramidcollection.com.out b/chrome/test/data/autofill/heuristics/output/12_register_pyramidcollection.com.out
index b17bcfb..0539223 100644
--- a/chrome/test/data/autofill/heuristics/output/12_register_pyramidcollection.com.out
+++ b/chrome/test/data/autofill/heuristics/output/12_register_pyramidcollection.com.out
@@ -9,6 +9,8 @@ ADDRESS_HOME_COUNTRY | C3 | Country * | 0000
ADDRESS_HOME_ZIP | Z1 | Zip Code * |
PHONE_HOME_WHOLE_NUMBER | P2 | Day Phone * |
PHONE_HOME_WHOLE_NUMBER | P3 | Evening Phone |
+UNKNOWN_TYPE | P1 | Create Password * |
+UNKNOWN_TYPE | PasswordConfirm | Confirm Password * |
NAME_FIRST | SF1 | First Name * |
NAME_LAST | SL1 | Last Name * |
ADDRESS_HOME_LINE1 | SS1 | Address Line 1 * |
diff --git a/chrome/test/data/autofill/heuristics/output/12_register_rediff.com.out b/chrome/test/data/autofill/heuristics/output/12_register_rediff.com.out
index 3d9bed8..a3e1bc9 100644
--- a/chrome/test/data/autofill/heuristics/output/12_register_rediff.com.out
+++ b/chrome/test/data/autofill/heuristics/output/12_register_rediff.com.out
@@ -1,8 +1,11 @@
NAME_FULL | name | : |
UNKNOWN_TYPE | login | : |
+UNKNOWN_TYPE | passwd | : |
+UNKNOWN_TYPE | confirm_passwd | : |
EMAIL_ADDRESS | altemail | : |
UNKNOWN_TYPE | chk_altemail | | on
UNKNOWN_TYPE | hintq | : |
+UNKNOWN_TYPE | hinta | : |
UNKNOWN_TYPE | mothername | : |
UNKNOWN_TYPE | DOB_Day | : |
UNKNOWN_TYPE | DOB_Month | : |
diff --git a/chrome/test/data/autofill/heuristics/output/12_register_rei.com.out b/chrome/test/data/autofill/heuristics/output/12_register_rei.com.out
index c35912ae..141020e 100644
--- a/chrome/test/data/autofill/heuristics/output/12_register_rei.com.out
+++ b/chrome/test/data/autofill/heuristics/output/12_register_rei.com.out
@@ -1,6 +1,8 @@
NAME_FIRST | firstName | First Name:* |
NAME_MIDDLE_INITIAL | middleName | Middle Initial: |
NAME_LAST | lastName | Last Name:* |
+UNKNOWN_TYPE | logonPassword | Password:* |
+UNKNOWN_TYPE | logonPasswordVerify | Re-type Password:* |
ADDRESS_HOME_ZIP | zipCode | ZIP (Postal) Code:* |
EMAIL_ADDRESS | email1 | E-mail Address:* |
UNKNOWN_TYPE | gearmail | | y
diff --git a/chrome/test/data/autofill/heuristics/output/13_register_rocketlawyer.com.out b/chrome/test/data/autofill/heuristics/output/13_register_rocketlawyer.com.out
index 5219e25..fcc8ed4 100644
--- a/chrome/test/data/autofill/heuristics/output/13_register_rocketlawyer.com.out
+++ b/chrome/test/data/autofill/heuristics/output/13_register_rocketlawyer.com.out
@@ -3,4 +3,6 @@ NAME_FIRST | ctl00$ctl00$ctl00$SiteMasterBody$ContentPlaceHolder1$ContentPlaceHo
NAME_LAST | ctl00$ctl00$ctl00$SiteMasterBody$ContentPlaceHolder1$ContentPlaceHolder1$txtLastName | Last Name * |
EMAIL_ADDRESS | ctl00$ctl00$ctl00$SiteMasterBody$ContentPlaceHolder1$ContentPlaceHolder1$txtUserName | Email Address * |
EMAIL_ADDRESS | ctl00$ctl00$ctl00$SiteMasterBody$ContentPlaceHolder1$ContentPlaceHolder1$txtConfirmUserName | Confirm Email Address * |
+UNKNOWN_TYPE | ctl00$ctl00$ctl00$SiteMasterBody$ContentPlaceHolder1$ContentPlaceHolder1$txtPassword | Password * |
+UNKNOWN_TYPE | ctl00$ctl00$ctl00$SiteMasterBody$ContentPlaceHolder1$ContentPlaceHolder1$txtConfirmPassword | Confirm Password * |
UNKNOWN_TYPE | ctl00$ctl00$ctl00$SiteMasterBody$ContentPlaceHolder1$ContentPlaceHolder1$chkNewsletter | Yes, send me Rocket Lawyer partner offers, which are sent no more than twice per month and are from Rocket Lawyer's trusted business partners. | on
diff --git a/chrome/test/data/autofill/heuristics/output/13_register_signup.clicksor.com.out b/chrome/test/data/autofill/heuristics/output/13_register_signup.clicksor.com.out
index cd72aa2..bb639e4 100644
--- a/chrome/test/data/autofill/heuristics/output/13_register_signup.clicksor.com.out
+++ b/chrome/test/data/autofill/heuristics/output/13_register_signup.clicksor.com.out
@@ -3,6 +3,8 @@ EMAIL_ADDRESS | email2 | Confirm email: |
UNKNOWN_TYPE | website | Website: |
PHONE_HOME_WHOLE_NUMBER | phone | Phone: |
UNKNOWN_TYPE | timezone | Time Zone: | 1
+UNKNOWN_TYPE | password | Password: |
+UNKNOWN_TYPE | RePassword | Confirm password: |
NAME_FULL | name | Name: |
COMPANY_NAME | company | Company: |
ADDRESS_HOME_LINE1 | address | Address: |
diff --git a/chrome/test/data/autofill/heuristics/output/13_register_signup.live.com.out b/chrome/test/data/autofill/heuristics/output/13_register_signup.live.com.out
index 8e45ebab..90ef072 100644
--- a/chrome/test/data/autofill/heuristics/output/13_register_signup.live.com.out
+++ b/chrome/test/data/autofill/heuristics/output/13_register_signup.live.com.out
@@ -4,6 +4,8 @@ UNKNOWN_TYPE | isug1 | Enter a word | Enter a word
UNKNOWN_TYPE | isug2 | Enter another word | Enter another word
UNKNOWN_TYPE | isug3 | Enter another word | Enter another word
EMAIL_ADDRESS | imembernameeasi | Use your email address: | Example: someone@example.com
+UNKNOWN_TYPE | iPwd | Create a password: |
+UNKNOWN_TYPE | iRetypePwd | Retype password: |
EMAIL_ADDRESS | iAltEmail | Alternate email address: |
UNKNOWN_TYPE | iSQ | Question: | 0
UNKNOWN_TYPE | iSA | Secret answer: |
diff --git a/chrome/test/data/autofill/heuristics/output/13_register_sourceforge.net.out b/chrome/test/data/autofill/heuristics/output/13_register_sourceforge.net.out
index 0f270d8..589e7ad 100644
--- a/chrome/test/data/autofill/heuristics/output/13_register_sourceforge.net.out
+++ b/chrome/test/data/autofill/heuristics/output/13_register_sourceforge.net.out
@@ -1,6 +1,8 @@
NAME_FULL | X1mRVeMqejLnZpd1etxNGHllat2M | Name: |
EMAIL_ADDRESS | X129ZdMbfixhIflk8_zHDFWB72qk | Email: |
UNKNOWN_TYPE | X2n9HcN3dx1-mSbLywp_L-szMydw | Username: |
+UNKNOWN_TYPE | X2npVZtzEyUCnSbLywp_L-szMydw | Password: |
+UNKNOWN_TYPE | XwnpVZtzEyUCnO_sWtjjnr86sK5Q | Confirm Password: |
UNKNOWN_TYPE | X2mZVe8jGx1WmSbLywp_L-szMydw | Language: | 275
ADDRESS_HOME_COUNTRY | X1WlbYMHH1EvuThNjGRupsu5JwuU | Country: | US
UNKNOWN_TYPE | X2n5deMrJyVymSbLywp_L-szMydw | Time Zone: | America/New_York
diff --git a/chrome/test/data/autofill/heuristics/output/13_register_supershuttle.com.out b/chrome/test/data/autofill/heuristics/output/13_register_supershuttle.com.out
index 5f14a5f..60f88ab 100644
--- a/chrome/test/data/autofill/heuristics/output/13_register_supershuttle.com.out
+++ b/chrome/test/data/autofill/heuristics/output/13_register_supershuttle.com.out
@@ -1,8 +1,11 @@
EMAIL_ADDRESS | ctl00$cphLeft$InnerLogin1$txtEmailAddress | Email Address |
+UNKNOWN_TYPE | ctl00$cphLeft$InnerLogin1$txtPassword | Password |
EMAIL_ADDRESS | ctl00$cphRight$Registration1$txtEmailAddress | Email Address |
NAME_FIRST | ctl00$cphRight$Registration1$txtFirstName | First Name |
NAME_LAST | ctl00$cphRight$Registration1$txtLastName | Last Name |
PHONE_HOME_WHOLE_NUMBER | ctl00$cphRight$Registration1$txtCellPhone | Contact or Cell Phone Number |
PHONE_HOME_COUNTRY_CODE | ctl00$cphRight$Registration1$txtCountryCode | If outside the US (Country Code/Phone Number) |
PHONE_HOME_CITY_AND_NUMBER | ctl00$cphRight$Registration1$txtIntPhoneNumber | Contact or Cell Phone Number |
+UNKNOWN_TYPE | ctl00$cphRight$Registration1$txtPassword | Password |
+UNKNOWN_TYPE | ctl00$cphRight$Registration1$txtConfirmPassword | Confirm Password |
UNKNOWN_TYPE | ctl00$cphRight$Registration1$chkAcceptSpecialOffers | Email me regarding SuperShuttle special offers and promotions | on
diff --git a/chrome/test/data/autofill/heuristics/output/14_register_target.com.out b/chrome/test/data/autofill/heuristics/output/14_register_target.com.out
index 92dc099..1067919 100644
--- a/chrome/test/data/autofill/heuristics/output/14_register_target.com.out
+++ b/chrome/test/data/autofill/heuristics/output/14_register_target.com.out
@@ -1,6 +1,8 @@
UNKNOWN_TYPE | userName | Your name:* |
EMAIL_ADDRESS | email | Your email address:* |
EMAIL_ADDRESS | emailCheck | Re-enter email address:* |
+UNKNOWN_TYPE | password | Create a password:* |
+UNKNOWN_TYPE | passwordCheck | Re-enter password:* |
UNKNOWN_TYPE | subscribeEmail | Yes, please send me e-mails about special offers, exclusives and promotions from Target. | 1
UNKNOWN_TYPE | ageCheck | | yes
UNKNOWN_TYPE | ageCheck | Yes No | no
diff --git a/chrome/test/data/autofill/heuristics/output/14_register_threadless.com.out b/chrome/test/data/autofill/heuristics/output/14_register_threadless.com.out
index 970a420..6ba528d 100644
--- a/chrome/test/data/autofill/heuristics/output/14_register_threadless.com.out
+++ b/chrome/test/data/autofill/heuristics/output/14_register_threadless.com.out
@@ -1,4 +1,6 @@
UNKNOWN_TYPE | create_username | Desired username |
+UNKNOWN_TYPE | create_password | Password |
+UNKNOWN_TYPE | retype_password | Re-type password |
EMAIL_ADDRESS | email | Email |
UNKNOWN_TYPE | join_newsletter | Join our newsletter and be first to know about new tees and great deals! | on
UNKNOWN_TYPE | recaptcha_response_field | Type the words above Type the numbers you hear |
diff --git a/chrome/test/data/autofill/heuristics/output/14_register_trueblue.jetblue.com.out b/chrome/test/data/autofill/heuristics/output/14_register_trueblue.jetblue.com.out
index b7a164f..6283d54 100644
--- a/chrome/test/data/autofill/heuristics/output/14_register_trueblue.jetblue.com.out
+++ b/chrome/test/data/autofill/heuristics/output/14_register_trueblue.jetblue.com.out
@@ -16,4 +16,6 @@ UNKNOWN_TYPE | accountData.alternatePhoneType | Alternate phone: |
UNKNOWN_TYPE | accountData.fax | Fax: |
EMAIL_ADDRESS | accountData.email | Email address: |
EMAIL_ADDRESS | accountData.confirmEmail | Confirm email: |
+UNKNOWN_TYPE | registrationPassword1 | Password: |
+UNKNOWN_TYPE | registrationPassword2 | Confirm password: |
UNKNOWN_TYPE | accountData.entrollmentCode | Enrollment code: |
diff --git a/chrome/test/data/autofill/heuristics/output/14_register_uhaul.com.out b/chrome/test/data/autofill/heuristics/output/14_register_uhaul.com.out
index 5f42704..4a0be77 100644
--- a/chrome/test/data/autofill/heuristics/output/14_register_uhaul.com.out
+++ b/chrome/test/data/autofill/heuristics/output/14_register_uhaul.com.out
@@ -4,5 +4,7 @@ UNKNOWN_TYPE | _ctl0:cphMainBody:txtVendNo | Vendor Number |
UNKNOWN_TYPE | _ctl0:cphMainBody:txtEntity | U-Haul Shop Entity Number |
EMAIL_ADDRESS | _ctl0:cphMainBody:txtEmail | Email |
EMAIL_ADDRESS | _ctl0:cphMainBody:txtEmail0 | ReConfirm Email |
+UNKNOWN_TYPE | _ctl0:cphMainBody:txtPassword | Password must be between 4 and 8 characters, contain at least one digit and one alphabetic character, and must not contain special characters. |
+UNKNOWN_TYPE | _ctl0:cphMainBody:txtPassword0 | Password should be same as the above entered password |
PHONE_HOME_WHOLE_NUMBER | _ctl0:cphMainBody:txtPhone | Phone |
UNKNOWN_TYPE | _ctl0:cphMainBody:txtComments | Comments: |
diff --git a/chrome/test/data/autofill/heuristics/output/14_register_yahoo.com.out b/chrome/test/data/autofill/heuristics/output/14_register_yahoo.com.out
index f8dda04..04f0aae 100644
--- a/chrome/test/data/autofill/heuristics/output/14_register_yahoo.com.out
+++ b/chrome/test/data/autofill/heuristics/output/14_register_yahoo.com.out
@@ -8,6 +8,8 @@ ADDRESS_HOME_COUNTRY | country | Country | us
ADDRESS_HOME_ZIP | postalcode | Postal Code |
EMAIL_ADDRESS | yahooid | Yahoo! ID and Email |
UNKNOWN_TYPE | domain | @ | yahoo.com
+UNKNOWN_TYPE | password | Password |
+UNKNOWN_TYPE | passwordconfirm | Re-type Password |
EMAIL_ADDRESS | altemail | Alternate Email (optional) |
UNKNOWN_TYPE | secquestion | Secret Question 1 |
UNKNOWN_TYPE | customsecquestion1 | Specify Your Question |
diff --git a/chrome/test/data/autofill/heuristics/output/15_crbug_53075.out b/chrome/test/data/autofill/heuristics/output/15_crbug_53075.out
index fdb5c1fd..3b6a857 100644
--- a/chrome/test/data/autofill/heuristics/output/15_crbug_53075.out
+++ b/chrome/test/data/autofill/heuristics/output/15_crbug_53075.out
@@ -5,6 +5,8 @@ NAME_LAST | ecomms_last_name | Last Name: |
PHONE_HOME_WHOLE_NUMBER | ecomms_telephone | Telephone: |
PHONE_HOME_WHOLE_NUMBER | ecomms_mobile | Mobile: |
EMAIL_ADDRESS | ecomms_email | Email Address: | x@foo.com
+UNKNOWN_TYPE | ecomms_password | Password: | abcdef
+UNKNOWN_TYPE | ecomms_password_confirm | Confirm password: | abcdef
ADDRESS_HOME_LINE1 | ecomms_address1 | Address1: |
ADDRESS_HOME_LINE2 | ecomms_address2 | Address2: |
ADDRESS_HOME_CITY | ecomms_town | Town / City: |
diff --git a/chrome/test/data/autofill/heuristics/output/17_crbug_98338.out b/chrome/test/data/autofill/heuristics/output/17_crbug_98338.out
index 0f19746..f838e81 100644
--- a/chrome/test/data/autofill/heuristics/output/17_crbug_98338.out
+++ b/chrome/test/data/autofill/heuristics/output/17_crbug_98338.out
@@ -1,9 +1,11 @@
UNKNOWN_TYPE | giftcardnumber_EGC | Gift Card Number Gift Card Number |
+UNKNOWN_TYPE | pin_EGC | PIN PIN |
UNKNOWN_TYPE | giftCardNumber2 | Gift Card Number PIN |
UNKNOWN_TYPE | giftCardPin2 | Gift Card Number PIN |
UNKNOWN_TYPE | giftCardNumber3 | Gift Card Number PIN |
UNKNOWN_TYPE | giftCardPin3 | Gift Card Number PIN |
UNKNOWN_TYPE | giftcardnumber_GC | Gift Card Number PIN |
+UNKNOWN_TYPE | pin_GC | Gift Card Number PIN |
UNKNOWN_TYPE | giftCardNumber2 | Gift Card Number PIN |
UNKNOWN_TYPE | giftCardPin2 | Gift Card Number PIN |
UNKNOWN_TYPE | giftCardNumber3 | Gift Card Number PIN |
diff --git a/chrome/test/data/autofill/heuristics/output/20_register_alaskaair.com.out b/chrome/test/data/autofill/heuristics/output/20_register_alaskaair.com.out
index e2af6c2..c4971e0 100644
--- a/chrome/test/data/autofill/heuristics/output/20_register_alaskaair.com.out
+++ b/chrome/test/data/autofill/heuristics/output/20_register_alaskaair.com.out
@@ -28,6 +28,8 @@ PHONE_HOME_WHOLE_NUMBER | FormUserControl$_contactInformation$_phoneNumber$_phon
UNKNOWN_TYPE | FormUserControl$_contactInformation$_phoneNumber$_extensionTextBox | Ext. |
EMAIL_ADDRESS | FormUserControl$_contactInformation$_emailAddress$_emailAddressTextBox | Email Address* |
UNKNOWN_TYPE | FormUserControl$_userIdPassword$_userId$_userId | Create a User ID* |
+UNKNOWN_TYPE | FormUserControl$_userIdPassword$_password$_password | Create a Password |
+UNKNOWN_TYPE | FormUserControl$_userIdPassword$_reEnterPassword$_password | Re-enter Password |
UNKNOWN_TYPE | FormUserControl$_secretQuestion$_question | Secret Question* |
UNKNOWN_TYPE | FormUserControl$_secretQuestion$_answer | Please choose a secret question and provide the answer. You will need to answer the question again in case you forget your password. Make sure you choose a question and answer that are easy for you to remember, but difficult for other people to know.Secret Question* Answer* |
UNKNOWN_TYPE | FormUserControl$_subscriptionsOffers$_insiderNewsletter$_subscriptionCheckBox | Insider NewsletterA weekly email personalized to provide you with an insider glimpse of the best deals we have to offer - across the board. | on
diff --git a/chrome/test/data/autofill/heuristics/output/20_register_epson.com.mx.out b/chrome/test/data/autofill/heuristics/output/20_register_epson.com.mx.out
index 0e7f964..311cb46 100644
--- a/chrome/test/data/autofill/heuristics/output/20_register_epson.com.mx.out
+++ b/chrome/test/data/autofill/heuristics/output/20_register_epson.com.mx.out
@@ -4,6 +4,9 @@ UNKNOWN_TYPE | fechaCompra | *dd/mm/yyyy |
UNKNOWN_TYPE | serialNumber | Serial * |
UNKNOWN_TYPE | idProducto | Serial * |
EMAIL_ADDRESS | emailLogin | Email * |
+UNKNOWN_TYPE | passLogin | a * |
NAME_FIRST | nombre | Nombre * |
NAME_LAST | apellido | Apellido * |
EMAIL_ADDRESS | emailRegistro | Email * |
+UNKNOWN_TYPE | passRegistro | a * |
+UNKNOWN_TYPE | rePassRegistro | a * |
diff --git a/components/autofill/browser/form_structure.cc b/components/autofill/browser/form_structure.cc
index be0e8a5..1be25c4 100644
--- a/components/autofill/browser/form_structure.cc
+++ b/components/autofill/browser/form_structure.cc
@@ -233,7 +233,7 @@ FormStructure::FormStructure(const FormData& form,
source_url_(form.origin),
target_url_(form.action),
autofill_count_(0),
- checkable_field_count_(0),
+ active_field_count_(0),
upload_required_(USE_UPLOAD_RATES),
server_experiment_id_("no server response"),
has_author_specified_types_(false),
@@ -244,14 +244,17 @@ FormStructure::FormStructure(const FormData& form,
form.fields.begin();
field != form.fields.end(); field++) {
- // Skipping checkable elements when Autocheckout is not enabled, else
- // these fields will interfere with existing field signatures with Autofill
- // servers.
- if (!field->is_checkable || IsAutocheckoutEnabled()) {
+ // Skip checkable and password elements when Autocheckout is not enabled,
+ // else these fields will interfere with existing field signatures with
+ // Autofill servers.
+ if ((!field->is_checkable && field->form_control_type != "password") ||
+ IsAutocheckoutEnabled()) {
// Add all supported form fields (including with empty names) to the
// signature. This is a requirement for Autofill servers.
form_signature_field_names_.append("&");
form_signature_field_names_.append(UTF16ToUTF8(field->name));
+
+ ++active_field_count_;
}
// Generate a unique name for this field by appending a counter to the name.
@@ -264,9 +267,6 @@ FormStructure::FormStructure(const FormData& form,
string16 unique_name = field->name + ASCIIToUTF16("_") +
base::IntToString16(unique_names[field->name]);
fields_.push_back(new AutofillField(*field, unique_name));
-
- if (field->is_checkable)
- ++checkable_field_count_;
}
std::string method = UTF16ToUTF8(form.method);
@@ -609,10 +609,7 @@ void FormStructure::UpdateAutofillCount() {
}
bool FormStructure::ShouldBeParsed(bool require_method_post) const {
- // Ignore counting checkable elements towards minimum number of elements
- // required to parse. This avoids trying to crowdsource forms with few text
- // or select elements.
- if ((field_count() - checkable_field_count()) < RequiredFillableFields())
+ if (active_field_count() < RequiredFillableFields())
return false;
// Rule out http(s)://*/search?...
@@ -879,8 +876,8 @@ size_t FormStructure::field_count() const {
return fields_.size();
}
-size_t FormStructure::checkable_field_count() const {
- return checkable_field_count_;
+size_t FormStructure::active_field_count() const {
+ return active_field_count_;
}
std::string FormStructure::server_experiment_id() const {
@@ -972,9 +969,10 @@ bool FormStructure::EncodeFormRequest(
encompassing_xml_element->AddElement(field_element);
}
} else {
- // Skip putting checkable fields in the request if Autocheckout is not
- // enabled.
- if (field->is_checkable && !IsAutocheckoutEnabled())
+ // Skip putting checkable and password fields in the request if
+ // Autocheckout is not enabled.
+ if ((field->is_checkable || field->form_control_type == "password") &&
+ !IsAutocheckoutEnabled())
continue;
buzz::XmlElement *field_element = new buzz::XmlElement(
diff --git a/components/autofill/browser/form_structure.h b/components/autofill/browser/form_structure.h
index 731fe5c..9095514 100644
--- a/components/autofill/browser/form_structure.h
+++ b/components/autofill/browser/form_structure.h
@@ -136,7 +136,6 @@ class FormStructure {
const AutofillField* field(size_t index) const;
AutofillField* field(size_t index);
size_t field_count() const;
- size_t checkable_field_count() const;
// Returns the number of fields that are able to be autofilled.
size_t autofill_count() const { return autofill_count_; }
@@ -192,6 +191,7 @@ class FormStructure {
// Returns the minimal number of fillable fields required to start autofill.
size_t RequiredFillableFields() const;
+ size_t active_field_count() const;
// The name of the form.
string16 form_name_;
@@ -208,8 +208,9 @@ class FormStructure {
// A vector of all the input fields in the form.
ScopedVector<AutofillField> fields_;
- // The number of fields able to be checked.
- size_t checkable_field_count_;
+ // The number of fields counted towards form signature and request to Autofill
+ // server.
+ size_t active_field_count_;
// The names of the form input elements, that are part of the form signature.
// The string starts with "&" and the names are also separated by the "&"
diff --git a/components/autofill/browser/form_structure_unittest.cc b/components/autofill/browser/form_structure_unittest.cc
index 49d715d..5f7b998 100644
--- a/components/autofill/browser/form_structure_unittest.cc
+++ b/components/autofill/browser/form_structure_unittest.cc
@@ -2159,6 +2159,12 @@ TEST(FormStructureTest, CheckFormSignature) {
field.name = ASCIIToUTF16("first");
form.fields.push_back(field);
+ // Password fields shouldn't affect the signature.
+ field.label = ASCIIToUTF16("Password");
+ field.name = ASCIIToUTF16("password");
+ field.form_control_type = "password";
+ form.fields.push_back(field);
+
form_structure.reset(new FormStructure(form, std::string()));
EXPECT_EQ(FormStructureTest::Hash64Bit(
diff --git a/components/autofill/renderer/form_autofill_util.cc b/components/autofill/renderer/form_autofill_util.cc
index 8b0e6fb..a0bbc43 100644
--- a/components/autofill/renderer/form_autofill_util.cc
+++ b/components/autofill/renderer/form_autofill_util.cc
@@ -590,13 +590,9 @@ namespace autofill {
const size_t kMaxParseableFields = 100;
-// In HTML5, all text fields except password are text input fields to
-// autocomplete.
+// All text fields, including password fields, should be extracted.
bool IsTextInput(const WebInputElement* element) {
- if (!element)
- return false;
-
- return element->isTextField() && !element->isPasswordField();
+ return element && element->isTextField();
}
bool IsSelectElement(const WebFormControlElement& element) {