| Index: chrome/renderer/autofill/form_autofill_browsertest.cc | 
| diff --git a/chrome/renderer/autofill/form_autofill_browsertest.cc b/chrome/renderer/autofill/form_autofill_browsertest.cc | 
| index bc7a762c34ccec4df5d5c9ae475212bc877cb02c..6e876015ae762e23e75bde58ef7a894a822a982c 100644 | 
| --- a/chrome/renderer/autofill/form_autofill_browsertest.cc | 
| +++ b/chrome/renderer/autofill/form_autofill_browsertest.cc | 
| @@ -2068,6 +2068,67 @@ TEST_F(FormAutofillTest, WebFormElementToFormDataTooManyFields) { | 
| &field)); | 
| } | 
|  | 
| +// Tests that the |should_autocomplete| is set to false for all the fields when | 
| +// an autocomplete='off' attribute is set for the form in HTML. | 
| +TEST_F(FormAutofillTest, WebFormElementToFormData_AutocompleteOff_OnForm) { | 
| +  LoadHTML( | 
| +      "<FORM name='TestForm' id='form' action='http://cnn.com' method='post' " | 
| +      "autocomplete='off'>" | 
| +      "  <LABEL for='firstname'>First name:</LABEL>" | 
| +      "    <INPUT type='text' id='firstname' value='John'/>" | 
| +      "  <LABEL for='lastname'>Last name:</LABEL>" | 
| +      "    <INPUT type='text' id='lastname' value='Smith'/>" | 
| +      "  <LABEL for='street-address'>Address:</LABEL>" | 
| +      "    <INPUT type='text' id='addressline1' value='123 Test st.'/>" | 
| +      "</FORM>"); | 
| + | 
| +  WebFrame* frame = GetMainFrame(); | 
| +  ASSERT_NE(nullptr, frame); | 
| + | 
| +  WebFormElement web_form = | 
| +      frame->document().getElementById("form").to<WebFormElement>(); | 
| +  ASSERT_FALSE(web_form.isNull()); | 
| + | 
| +  FormData form; | 
| +  EXPECT_TRUE(WebFormElementToFormData(web_form, WebFormControlElement(), | 
| +                                       EXTRACT_NONE, &form, nullptr)); | 
| + | 
| +  for (const FormFieldData& field : form.fields) { | 
| +    EXPECT_FALSE(field.should_autocomplete); | 
| +  } | 
| +} | 
| + | 
| +// Tests that the |should_autocomplete| is set to false only for the field | 
| +// which has an autocomplete='off' attribute set for it in HTML. | 
| +TEST_F(FormAutofillTest, WebFormElementToFormData_AutocompleteOff_OnField) { | 
| +  LoadHTML( | 
| +      "<FORM name='TestForm' id='form' action='http://cnn.com' method='post'>" | 
| +      "  <LABEL for='firstname'>First name:</LABEL>" | 
| +      "    <INPUT type='text' id='firstname' value='John' autocomplete='off'/>" | 
| +      "  <LABEL for='lastname'>Last name:</LABEL>" | 
| +      "    <INPUT type='text' id='lastname' value='Smith'/>" | 
| +      "  <LABEL for='street-address'>Address:</LABEL>" | 
| +      "    <INPUT type='text' id='addressline1' value='123 Test st.'/>" | 
| +      "</FORM>"); | 
| + | 
| +  WebFrame* frame = GetMainFrame(); | 
| +  ASSERT_NE(nullptr, frame); | 
| + | 
| +  WebFormElement web_form = | 
| +      frame->document().getElementById("form").to<WebFormElement>(); | 
| +  ASSERT_FALSE(web_form.isNull()); | 
| + | 
| +  FormData form; | 
| +  EXPECT_TRUE(WebFormElementToFormData(web_form, WebFormControlElement(), | 
| +                                       EXTRACT_NONE, &form, nullptr)); | 
| + | 
| +  ASSERT_EQ(3U, form.fields.size()); | 
| + | 
| +  EXPECT_FALSE(form.fields[0].should_autocomplete); | 
| +  EXPECT_TRUE(form.fields[1].should_autocomplete); | 
| +  EXPECT_TRUE(form.fields[2].should_autocomplete); | 
| +} | 
| + | 
| TEST_F(FormAutofillTest, ExtractForms) { | 
| ExpectJohnSmithLabels( | 
| "<FORM name='TestForm' action='http://cnn.com' method='post'>" | 
|  |