| Index: chrome/browser/ssl/security_state_tab_helper_browser_tests.cc
|
| diff --git a/chrome/browser/ssl/security_state_tab_helper_browser_tests.cc b/chrome/browser/ssl/security_state_tab_helper_browser_tests.cc
|
| index 4bec79ea5b253dea4ff7c94ed54c55443f536193..3ab197b70de0eb3b8a0c54a9e1331aeb75bb2f5e 100644
|
| --- a/chrome/browser/ssl/security_state_tab_helper_browser_tests.cc
|
| +++ b/chrome/browser/ssl/security_state_tab_helper_browser_tests.cc
|
| @@ -891,6 +891,18 @@ IN_PROC_BROWSER_TEST_F(SecurityStateLoadingTest, NavigationStateChanges) {
|
| browser()->tab_strip_model()->GetActiveWebContents());
|
| }
|
|
|
| +// Inject a script into the page. Used by tests that check for visible
|
| +// password fields to wait for notifications about these
|
| +// fields. Notifications about visible password fields are queued at the
|
| +// end of the event loop, so waiting for a dummy script to run ensures
|
| +// that these notifcations have been sent.
|
| +void InjectScript(content::WebContents* contents) {
|
| + bool js_result = false;
|
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
|
| + contents, "window.domAutomationController.send(true);", &js_result));
|
| + EXPECT_TRUE(js_result);
|
| +}
|
| +
|
| // Tests that when a visible password field is detected on an HTTP page
|
| // load, and when the command-line flag is set, the security level is
|
| // downgraded to HTTP_SHOW_WARNING.
|
| @@ -907,6 +919,7 @@ IN_PROC_BROWSER_TEST_P(SecurityStateTabHelperTestWithPasswordCcSwitch,
|
| ui_test_utils::NavigateToURL(
|
| browser(), GetURLWithNonLocalHostname(embedded_test_server(),
|
| "/password/simple_password.html"));
|
| + InjectScript(contents);
|
| security_state::SecurityInfo security_info;
|
| helper->GetSecurityInfo(&security_info);
|
| EXPECT_EQ(security_state::HTTP_SHOW_WARNING, security_info.security_level);
|
| @@ -934,6 +947,7 @@ IN_PROC_BROWSER_TEST_P(SecurityStateTabHelperTestWithPasswordCcSwitch,
|
| browser(),
|
| GetURLWithNonLocalHostname(embedded_test_server(),
|
| "/password/invisible_password.html"));
|
| + InjectScript(contents);
|
| security_state::SecurityInfo security_info;
|
| helper->GetSecurityInfo(&security_info);
|
| EXPECT_EQ(security_state::NONE, security_info.security_level);
|
| @@ -961,6 +975,7 @@ IN_PROC_BROWSER_TEST_P(SecurityStateTabHelperTestWithPasswordCcSwitch,
|
| browser(),
|
| GetURLWithNonLocalHostname(embedded_test_server(),
|
| "/password/simple_password_in_iframe.html"));
|
| + InjectScript(contents);
|
| security_state::SecurityInfo security_info;
|
| helper->GetSecurityInfo(&security_info);
|
| EXPECT_EQ(security_state::HTTP_SHOW_WARNING, security_info.security_level);
|
| @@ -1002,6 +1017,7 @@ IN_PROC_BROWSER_TEST_P(SecurityStateTabHelperTestWithPasswordCcSwitch,
|
| ui_test_utils::NavigateToURL(
|
| browser(),
|
| GetURLWithNonLocalHostname(embedded_test_server(), replacement_path));
|
| + InjectScript(contents);
|
| security_state::SecurityInfo security_info;
|
| helper->GetSecurityInfo(&security_info);
|
| EXPECT_EQ(security_state::HTTP_SHOW_WARNING, security_info.security_level);
|
| @@ -1031,6 +1047,7 @@ IN_PROC_BROWSER_TEST_F(SecurityStateTabHelperTest,
|
| ui_test_utils::NavigateToURL(
|
| browser(), GetURLWithNonLocalHostname(embedded_test_server(),
|
| "/password/simple_password.html"));
|
| + InjectScript(contents);
|
| // The security level should not be HTTP_SHOW_WARNING, because the
|
| // command-line switch was not set.
|
| security_state::SecurityInfo security_info;
|
| @@ -1060,6 +1077,7 @@ IN_PROC_BROWSER_TEST_P(SecurityStateTabHelperTestWithPasswordCcSwitch,
|
| GURL url = GetURLWithNonLocalHostname(&https_server_,
|
| "/password/simple_password.html");
|
| ui_test_utils::NavigateToURL(browser(), url);
|
| + InjectScript(contents);
|
| // The security level should not be HTTP_SHOW_WARNING, because the page was
|
| // HTTPS instead of HTTP.
|
| security_state::SecurityInfo security_info;
|
|
|