Index: chrome/browser/ssl/ssl_browser_tests.cc |
diff --git a/chrome/browser/ssl/ssl_browser_tests.cc b/chrome/browser/ssl/ssl_browser_tests.cc |
index 626301d4b4c437fa2def13ad1b72d7c4c64014e5..1fe689492267e3078b8cbb5ea1b90bee31e80030 100644 |
--- a/chrome/browser/ssl/ssl_browser_tests.cc |
+++ b/chrome/browser/ssl/ssl_browser_tests.cc |
@@ -92,6 +92,8 @@ |
#include "net/test/test_certificate_data.h" |
#include "net/test/test_data_directory.h" |
#include "net/url_request/url_request_context.h" |
+#include "net/url_request/url_request_filter.h" |
+#include "net/url_request/url_request_job.h" |
#if defined(USE_NSS_CERTS) |
#include "chrome/browser/net/nss_context.h" |
@@ -275,6 +277,33 @@ void CheckSSLStatusesEquals(const content::SSLStatus& one, |
EXPECT_TRUE(one_without_cert_id.Equals(two_without_cert_id)); |
} |
+class HungJob : public net::URLRequestJob { |
+ public: |
+ HungJob(net::URLRequest* request, net::NetworkDelegate* network_delegate) |
+ : net::URLRequestJob(request, network_delegate) {} |
+ |
+ void Start() override { |
+ } |
+}; |
+ |
+class FaviconFilter : public net::URLRequestInterceptor { |
+ public: |
+ FaviconFilter() {} |
+ ~FaviconFilter() override {} |
+ |
+ // net::URLRequestInterceptor implementation |
+ net::URLRequestJob* MaybeInterceptRequest( |
+ net::URLRequest* request, |
+ net::NetworkDelegate* network_delegate) const override { |
+ if (request->url().path() == "/favicon.ico") |
+ return new HungJob(request, network_delegate); |
+ return nullptr; |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(FaviconFilter); |
+}; |
+ |
} // namespace |
class SSLUITest |
@@ -295,6 +324,16 @@ class SSLUITest |
https_server_mismatched_.SetSSLConfig( |
net::EmbeddedTestServer::CERT_MISMATCHED_NAME); |
https_server_mismatched_.AddDefaultHandlers(base::FilePath(kDocRoot)); |
+ |
+ // TODO(estark): once http://crbug.com/634171 is fixed and certificate |
+ // errors for subresources don't generate DISPLAYED_INSECURE_CONTENT remove |
+ // these filters. |
+ std::unique_ptr<net::URLRequestInterceptor> interceptor(new FaviconFilter); |
+ net::URLRequestFilter::GetInstance()->AddHostnameInterceptor( |
+ "https", "127.0.0.1", std::move(interceptor)); |
+ interceptor.reset(new FaviconFilter); |
+ net::URLRequestFilter::GetInstance()->AddHostnameInterceptor( |
+ "https", "localhost", std::move(interceptor)); |
} |
void SetUpCommandLine(base::CommandLine* command_line) override { |
@@ -1828,14 +1867,6 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, DISABLED_TestCNInvalidStickiness) { |
tab, net::CERT_STATUS_COMMON_NAME_INVALID, AuthState::NONE); |
} |
-#if defined(OS_CHROMEOS) |
-// This test seems to be flaky and hang on chromiumos. |
-// http://crbug.com/84419 |
-#define MAYBE_TestRefNavigation DISABLED_TestRefNavigation |
-#else |
-#define MAYBE_TestRefNavigation TestRefNavigation |
-#endif |
- |
// Test that navigating to a #ref does not change a bad security state. |
IN_PROC_BROWSER_TEST_F(SSLUITest, TestRefNavigation) { |
ASSERT_TRUE(https_server_expired_.Start()); |
@@ -2330,8 +2361,11 @@ IN_PROC_BROWSER_TEST_F(SSLUITest, TestUnsafeContentsWithUserException) { |
EXPECT_TRUE(content::ExecuteScriptAndExtractBool( |
tab, "window.domAutomationController.send(IsFooSet());", &js_result)); |
EXPECT_TRUE(js_result); |
+ // TODO(estark): once http://crbug.com/634171 is fixed and certificate errors |
+ // for subresources don't generate DISPLAYED_INSECURE_CONTENT switch this back |
+ // to AuthState::NONE. |
CheckAuthenticationBrokenState(tab, net::CERT_STATUS_COMMON_NAME_INVALID, |
- AuthState::NONE); |
+ AuthState::DISPLAYED_INSECURE_CONTENT); |
} |
// Like the test above, but only displaying inactive content (an image). |