| 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 d638833c3d0037e5a50ed3b83967747d93ef8ade..56df5ad7d902fd05cb7c0de4fc8c220375c27f73 100644
|
| --- a/chrome/browser/password_manager/password_manager_browsertest.cc
|
| +++ b/chrome/browser/password_manager/password_manager_browsertest.cc
|
| @@ -925,3 +925,25 @@ IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTest, NoPromptWhenReloading) {
|
| EXPECT_FALSE(observer.infobar_shown());
|
| }
|
| }
|
| +
|
| +// Test that if a form gets dynamically added between the form parsing and
|
| +// rendering, and while the main frame still loads, it still is registered, and
|
| +// thus saving passwords from it works.
|
| +IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTest,
|
| + FormsAddedBetweenParsingAndRendering) {
|
| + NavigateToFile("/password/between_parsing_and_rendering.html");
|
| +
|
| + NavigationObserver observer(WebContents());
|
| + std::string submit =
|
| + "document.getElementById('username').value = 'temp';"
|
| + "document.getElementById('password').value = 'random';"
|
| + "document.getElementById('submit-button').click();";
|
| + ASSERT_TRUE(content::ExecuteScript(RenderViewHost(), submit));
|
| + observer.Wait();
|
| +
|
| + if (ChromePasswordManagerClient::IsTheHotNewBubbleUIEnabled()) {
|
| + EXPECT_TRUE(controller()->PasswordPendingUserDecision());
|
| + } else {
|
| + EXPECT_TRUE(observer.infobar_shown());
|
| + }
|
| +}
|
|
|