Index: chrome/browser/prerender/prerender_browsertest.cc |
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc |
index 7972ae82428775442d2d33afbb0337c93fcb4841..740aad91c04213f1cd356d55027038972bea84cf 100644 |
--- a/chrome/browser/prerender/prerender_browsertest.cc |
+++ b/chrome/browser/prerender/prerender_browsertest.cc |
@@ -114,14 +114,20 @@ class PrerenderBrowserTest : public InProcessBrowserTest { |
FinalStatus expected_final_status, |
int total_navigations) { |
ASSERT_TRUE(test_server()->Start()); |
- std::string src_path = "files/prerender/prerender_loader.html?"; |
- src_path.append(html_file); |
std::string dest_path = "files/prerender/"; |
dest_path.append(html_file); |
- |
- GURL src_url = test_server()->GetURL(src_path); |
dest_url_ = test_server()->GetURL(dest_path); |
+ std::vector<net::TestServer::StringPair> replacement_text; |
+ replacement_text.push_back( |
+ make_pair("REPLACE_WITH_PREFETCH_URL", dest_url_.spec())); |
+ std::string replacement_path; |
+ ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( |
+ "files/prerender/prerender_loader.html", |
+ replacement_text, |
+ &replacement_path)); |
+ GURL src_url = test_server()->GetURL(replacement_path); |
+ |
Profile* profile = browser()->GetSelectedTabContents()->profile(); |
PrerenderManager* prerender_manager = profile->GetPrerenderManager(); |
ASSERT_TRUE(prerender_manager); |
@@ -291,4 +297,23 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPopup) { |
FINAL_STATUS_CREATE_NEW_WINDOW, 1); |
} |
+// Test that page-based redirects to https will cancel prerenders. |
+IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderRedirectToHttps) { |
+ net::TestServer https_server(net::TestServer::TYPE_HTTPS, |
+ FilePath(FILE_PATH_LITERAL("chrome/test/data"))); |
+ ASSERT_TRUE(https_server.Start()); |
+ GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); |
+ std::vector<net::TestServer::StringPair> replacement_text; |
+ replacement_text.push_back( |
+ make_pair("REPLACE_WITH_HTTPS_URL", https_url.spec())); |
+ std::string redirect_path; |
+ ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( |
+ "prerender_redirect_to_https.html", |
+ replacement_text, |
+ &redirect_path)); |
+ PrerenderTestURL(redirect_path, |
+ FINAL_STATUS_HTTPS, |
+ 2); |
+} |
+ |
} // namespace prerender |