Index: chrome/browser/password_manager/password_manager_browsertest.cc |
diff --git a/chrome/browser/password_manager/password_manager_browsertest.cc b/chrome/browser/password_manager/password_manager_browsertest.cc |
index 4793dedd4f9ba260c4ba7a6d425eca316c934868..ead9243eae7140a8f527e06cb34c89eafa3c6c22 100644 |
--- a/chrome/browser/password_manager/password_manager_browsertest.cc |
+++ b/chrome/browser/password_manager/password_manager_browsertest.cc |
@@ -377,6 +377,30 @@ IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTest, |
} |
IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTest, |
+ NoPromptForFailedLoginWithSubFrameNavigation) { |
+ NavigateToFile("/password/multi_frames.html"); |
+ |
+ // Make sure that we don't prompt to save the password for a failed login |
+ // with a sub-frame navigation happens first. |
vabr (Chromium)
2014/06/11 08:22:12
nit: with -> when
|
+ NavigationObserver observer(WebContents()); |
+ observer.SetPathToWaitFor("/password/failed.html"); |
+ std::string navigate_frame = |
+ "var second_iframe = document.getElementById('second_frame');" |
+ "second_iframe.contentWindow.location.href = 'other.html';"; |
+ std::string fill_and_submit = |
+ "var first_frame = document.getElementById('first_frame');" |
+ "var frame_doc = first_frame.contentDocument;" |
+ "frame_doc.getElementById('username_failed').value = 'temp';" |
+ "frame_doc.getElementById('password_failed').value = 'random';" |
+ "frame_doc.getElementById('submit_failed').click()"; |
+ |
+ ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), navigate_frame)); |
+ ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), fill_and_submit)); |
vabr (Chromium)
2014/06/11 08:22:12
Sorry, but I still don't see how this test relates
|
+ observer.Wait(); |
+ EXPECT_FALSE(observer.infobar_shown()); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTest, |
PromptForXHRSubmit) { |
#if defined(OS_WIN) && defined(USE_ASH) |
// Disable this test in Metro+Ash for now (http://crbug.com/262796). |