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 82a63baea800a9ce793c03e0dc7eb35d6e16942f..aa7282ea34dc624591d5fd91862d96edf2840f8a 100644 |
--- a/chrome/browser/password_manager/password_manager_browsertest.cc |
+++ b/chrome/browser/password_manager/password_manager_browsertest.cc |
@@ -2739,39 +2739,63 @@ IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, |
EXPECT_EQ("mypassword", actual_password); |
} |
-// Check that the internals page contains logs both from the renderer and the |
-// browser. |
-IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, InternalsPage) { |
+// Check that the internals page contains logs from the renderer. |
+IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, InternalsPage_Renderer) { |
+ // Open the internals page. |
ui_test_utils::NavigateToURLWithDisposition( |
browser(), GURL("chrome://password-manager-internals"), |
WindowOpenDisposition::CURRENT_TAB, |
ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
content::WebContents* internals_web_contents = WebContents(); |
+ // Open some page with a HTML form. |
ui_test_utils::NavigateToURLWithDisposition( |
browser(), embedded_test_server()->GetURL("/password/password_form.html"), |
WindowOpenDisposition::NEW_FOREGROUND_TAB, |
ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
+ content::WebContents* forms_web_contents = WebContents(); |
- std::string find_renderer_logs = |
+ // The renderer queries the availability of logging on start-up. However, it |
+ // can take too long to propagate that message from the browser back to the |
+ // renderer. The renderer might have attempted logging in the meantime. |
+ // Therefore the page with the form is reloaded to increase the likelihood |
+ // that the availability query was answered before the logging during page |
+ // load. |
+ NavigationObserver observer(forms_web_contents); |
+ forms_web_contents->ReloadFocusedFrame(false); |
vabr (Chromium)
2016/09/05 12:36:43
This does not recreate the PasswordAutofillAgent (
|
+ observer.Wait(); |
+ |
+ std::string find_logs = |
"var text = document.getElementById('log-entries').innerText;" |
"var logs_found = /PasswordAutofillAgent::/.test(text);" |
"window.domAutomationController.send(logs_found);"; |
- bool renderer_logs_found; |
+ bool logs_found = false; |
ASSERT_TRUE(content::ExecuteScriptAndExtractBool( |
- internals_web_contents->GetRenderViewHost(), find_renderer_logs, |
- &renderer_logs_found)); |
- EXPECT_TRUE(renderer_logs_found); |
+ internals_web_contents->GetRenderViewHost(), find_logs, &logs_found)); |
+ EXPECT_TRUE(logs_found); |
+} |
+ |
+// Check that the internals page contains logs from the browser. |
+IN_PROC_BROWSER_TEST_F(PasswordManagerBrowserTestBase, InternalsPage_Browser) { |
+ ui_test_utils::NavigateToURLWithDisposition( |
+ browser(), GURL("chrome://password-manager-internals"), |
+ WindowOpenDisposition::CURRENT_TAB, |
+ ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
+ content::WebContents* internals_web_contents = WebContents(); |
+ |
+ ui_test_utils::NavigateToURLWithDisposition( |
+ browser(), embedded_test_server()->GetURL("/password/password_form.html"), |
+ WindowOpenDisposition::NEW_FOREGROUND_TAB, |
+ ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
- std::string find_browser_logs = |
+ std::string find_logs = |
"var text = document.getElementById('log-entries').innerText;" |
"var logs_found = /PasswordManager::/.test(text);" |
"window.domAutomationController.send(logs_found);"; |
- bool browser_logs_found; |
+ bool logs_found = false; |
ASSERT_TRUE(content::ExecuteScriptAndExtractBool( |
- internals_web_contents->GetRenderViewHost(), find_browser_logs, |
- &browser_logs_found)); |
- EXPECT_TRUE(browser_logs_found); |
+ internals_web_contents->GetRenderViewHost(), find_logs, &logs_found)); |
+ EXPECT_TRUE(logs_found); |
} |
// Tests that submitted credentials are saved on a password form without |