diff options
-rw-r--r-- | chrome/browser/prerender/prerender_browsertest.cc | 23 | ||||
-rw-r--r-- | chrome/test/data/prerender/prerender_with_image.html | 29 |
2 files changed, 52 insertions, 0 deletions
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc index 86ec39a..52e7c21 100644 --- a/chrome/browser/prerender/prerender_browsertest.cc +++ b/chrome/browser/prerender/prerender_browsertest.cc @@ -877,4 +877,27 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderXhrDelete) { 1); } +// Checks that an SSL error that comes from a subresource does not cancel +// the page. Non-main-frame requests are simply cancelled if they run into +// an SSL problem. +IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLErrorSubresource) { + net::TestServer::HTTPSOptions https_options; + https_options.server_certificate = + net::TestServer::HTTPSOptions::CERT_MISMATCHED_NAME; + net::TestServer https_server(https_options, + FilePath(FILE_PATH_LITERAL("chrome/test/data"))); + ASSERT_TRUE(https_server.Start()); + GURL https_url = https_server.GetURL("files/prerender/image.jpeg"); + std::vector<net::TestServer::StringPair> replacement_text; + replacement_text.push_back( + std::make_pair("REPLACE_WITH_IMAGE_URL", https_url.spec())); + std::string replacement_path; + ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( + "files/prerender/prerender_with_image.html", + replacement_text, + &replacement_path)); + PrerenderTestURL(replacement_path, FINAL_STATUS_USED, 1); + NavigateToDestURL(); +} + } // namespace prerender diff --git a/chrome/test/data/prerender/prerender_with_image.html b/chrome/test/data/prerender/prerender_with_image.html new file mode 100644 index 0000000..70c6c5f --- /dev/null +++ b/chrome/test/data/prerender/prerender_with_image.html @@ -0,0 +1,29 @@ +<html> +<!-- +This test checks to make sure that a prerendered page is loaded. +--> +<head> +<title>Prerendered Page</title> + +<script> +var pageWasPrerendered = false; + +// Make sure plugin was not loaded while prerendering. +function DidPrerenderPass() { + pageWasPrerendered = true; + return true; +} + +// Make sure DidPrerenderPass() was called first. Otherwise, the page was +// most likely reloaded instead of using the prerendered page. +function DidDisplayPass() { + return pageWasPrerendered; +} +</script> + +</head> +<body> + +<img src="REPLACE_WITH_IMAGE_URL"/> +</body> +</html> |