| Index: chrome/renderer/autofill/password_autofill_agent_browsertest.cc
 | 
| diff --git a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
 | 
| index 90b781f23f36ed7cf5417f91ca08b3f2cbadbd01..b5491808fe0ed521a073b11546e240425503b597 100644
 | 
| --- a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
 | 
| +++ b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc
 | 
| @@ -2578,4 +2578,29 @@ TEST_F(PasswordAutofillAgentTest, SuggestWhenJavaScriptUpdatesFieldNames) {
 | 
|    CheckSuggestions("", false);
 | 
|  }
 | 
|  
 | 
| +// Checks that an in-page navigation form submission could have an empty
 | 
| +// username.
 | 
| +TEST_F(PasswordAutofillAgentTest, InPageNavigationSubmissionUsernameIsEmpty) {
 | 
| +  username_element_.setValue(WebString());
 | 
| +  SimulatePasswordChange("random");
 | 
| +
 | 
| +  // Simulate that JavaScript removes the submitted form from DOM. That means
 | 
| +  // that a submission was successful.
 | 
| +  std::string remove_form =
 | 
| +      "var form = document.getElementById('LoginTestForm');"
 | 
| +      "form.parentNode.removeChild(form);";
 | 
| +  ExecuteJavaScriptForTests(remove_form.c_str());
 | 
| +
 | 
| +  static_cast<content::RenderFrameObserver*>(password_autofill_agent_)
 | 
| +      ->DidCommitProvisionalLoad(false, true);
 | 
| +  base::RunLoop().RunUntilIdle();
 | 
| +
 | 
| +  // Chect that the form was submitted with in-page navigation.
 | 
| +  EXPECT_TRUE(fake_driver_.called_inpage_navigation());
 | 
| +  EXPECT_EQ(base::string16(),
 | 
| +            fake_driver_.password_form_inpage_navigation()->username_value);
 | 
| +  EXPECT_EQ(ASCIIToUTF16("random"),
 | 
| +            fake_driver_.password_form_inpage_navigation()->password_value);
 | 
| +}
 | 
| +
 | 
|  }  // namespace autofill
 | 
| 
 |