| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <deque> | 5 #include <deque> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "base/stringprintf.h" | 9 #include "base/stringprintf.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| (...skipping 690 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 701 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( | 701 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( |
| 702 loader_path_, | 702 loader_path_, |
| 703 replacement_text, | 703 replacement_text, |
| 704 &replacement_path)); | 704 &replacement_path)); |
| 705 | 705 |
| 706 net::TestServer* src_server = test_server(); | 706 net::TestServer* src_server = test_server(); |
| 707 scoped_ptr<net::TestServer> https_src_server; | 707 scoped_ptr<net::TestServer> https_src_server; |
| 708 if (use_https_src_server_) { | 708 if (use_https_src_server_) { |
| 709 https_src_server.reset( | 709 https_src_server.reset( |
| 710 new net::TestServer(net::TestServer::TYPE_HTTPS, | 710 new net::TestServer(net::TestServer::TYPE_HTTPS, |
| 711 net::TestServer::kLocalhost, |
| 711 FilePath(FILE_PATH_LITERAL("chrome/test/data")))); | 712 FilePath(FILE_PATH_LITERAL("chrome/test/data")))); |
| 712 ASSERT_TRUE(https_src_server->Start()); | 713 ASSERT_TRUE(https_src_server->Start()); |
| 713 src_server = https_src_server.get(); | 714 src_server = https_src_server.get(); |
| 714 } | 715 } |
| 715 GURL src_url = src_server->GetURL(replacement_path); | 716 GURL src_url = src_server->GetURL(replacement_path); |
| 716 | 717 |
| 717 ASSERT_TRUE(prerender_manager()); | 718 ASSERT_TRUE(prerender_manager()); |
| 718 prerender_manager()->mutable_config().rate_limit_enabled = false; | 719 prerender_manager()->mutable_config().rate_limit_enabled = false; |
| 719 prerender_manager()->mutable_config().https_allowed = true; | 720 prerender_manager()->mutable_config().https_allowed = true; |
| 720 ASSERT_TRUE(prerender_contents_factory_ == NULL); | 721 ASSERT_TRUE(prerender_contents_factory_ == NULL); |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 961 PrerenderClientRedirectNavigateToSecond) { | 962 PrerenderClientRedirectNavigateToSecond) { |
| 962 PrerenderTestURL(CreateClientRedirect("files/prerender/prerender_page.html"), | 963 PrerenderTestURL(CreateClientRedirect("files/prerender/prerender_page.html"), |
| 963 FINAL_STATUS_USED, | 964 FINAL_STATUS_USED, |
| 964 2); | 965 2); |
| 965 NavigateToURL("files/prerender/prerender_page.html"); | 966 NavigateToURL("files/prerender/prerender_page.html"); |
| 966 } | 967 } |
| 967 | 968 |
| 968 // Checks that a prerender for an https will prevent a prerender from happening. | 969 // Checks that a prerender for an https will prevent a prerender from happening. |
| 969 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHttps) { | 970 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHttps) { |
| 970 net::TestServer https_server(net::TestServer::TYPE_HTTPS, | 971 net::TestServer https_server(net::TestServer::TYPE_HTTPS, |
| 972 net::TestServer::kLocalhost, |
| 971 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); | 973 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); |
| 972 ASSERT_TRUE(https_server.Start()); | 974 ASSERT_TRUE(https_server.Start()); |
| 973 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); | 975 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); |
| 974 PrerenderTestURL(https_url, | 976 PrerenderTestURL(https_url, |
| 975 FINAL_STATUS_USED, | 977 FINAL_STATUS_USED, |
| 976 1); | 978 1); |
| 977 NavigateToDestURL(); | 979 NavigateToDestURL(); |
| 978 } | 980 } |
| 979 | 981 |
| 980 // Checks that client-issued redirects to an https page will cancel prerenders. | 982 // Checks that client-issued redirects to an https page will cancel prerenders. |
| 981 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClientRedirectToHttps) { | 983 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderClientRedirectToHttps) { |
| 982 net::TestServer https_server(net::TestServer::TYPE_HTTPS, | 984 net::TestServer https_server(net::TestServer::TYPE_HTTPS, |
| 985 net::TestServer::kLocalhost, |
| 983 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); | 986 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); |
| 984 ASSERT_TRUE(https_server.Start()); | 987 ASSERT_TRUE(https_server.Start()); |
| 985 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); | 988 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); |
| 986 PrerenderTestURL(CreateClientRedirect(https_url.spec()), | 989 PrerenderTestURL(CreateClientRedirect(https_url.spec()), |
| 987 FINAL_STATUS_USED, | 990 FINAL_STATUS_USED, |
| 988 2); | 991 2); |
| 989 NavigateToDestURL(); | 992 NavigateToDestURL(); |
| 990 } | 993 } |
| 991 | 994 |
| 992 // Checks that client-issued redirects within an iframe in a prerendered | 995 // Checks that client-issued redirects within an iframe in a prerendered |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1007 "files/prerender/prerender_embedded_content.html")); | 1010 "files/prerender/prerender_embedded_content.html")); |
| 1008 NavigateToDestURL(); | 1011 NavigateToDestURL(); |
| 1009 } | 1012 } |
| 1010 | 1013 |
| 1011 // Checks that client-issued redirects within an iframe in a prerendered | 1014 // Checks that client-issued redirects within an iframe in a prerendered |
| 1012 // page to an https page will not cancel the prerender, nor will it | 1015 // page to an https page will not cancel the prerender, nor will it |
| 1013 // count as an "alias" for the prerendered page. | 1016 // count as an "alias" for the prerendered page. |
| 1014 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1017 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 1015 PrerenderClientRedirectToHttpsInIframe) { | 1018 PrerenderClientRedirectToHttpsInIframe) { |
| 1016 net::TestServer https_server(net::TestServer::TYPE_HTTPS, | 1019 net::TestServer https_server(net::TestServer::TYPE_HTTPS, |
| 1020 net::TestServer::kLocalhost, |
| 1017 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); | 1021 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); |
| 1018 ASSERT_TRUE(https_server.Start()); | 1022 ASSERT_TRUE(https_server.Start()); |
| 1019 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); | 1023 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); |
| 1020 std::string redirect_path = CreateClientRedirect(https_url.spec()); | 1024 std::string redirect_path = CreateClientRedirect(https_url.spec()); |
| 1021 std::vector<net::TestServer::StringPair> replacement_text; | 1025 std::vector<net::TestServer::StringPair> replacement_text; |
| 1022 replacement_text.push_back( | 1026 replacement_text.push_back( |
| 1023 std::make_pair("REPLACE_WITH_URL", "/" + redirect_path)); | 1027 std::make_pair("REPLACE_WITH_URL", "/" + redirect_path)); |
| 1024 std::string replacement_path; | 1028 std::string replacement_path; |
| 1025 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( | 1029 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( |
| 1026 "files/prerender/prerender_with_iframe.html", | 1030 "files/prerender/prerender_with_iframe.html", |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1051 FINAL_STATUS_USED, | 1055 FINAL_STATUS_USED, |
| 1052 1); | 1056 1); |
| 1053 NavigateToURL("files/prerender/prerender_page.html"); | 1057 NavigateToURL("files/prerender/prerender_page.html"); |
| 1054 } | 1058 } |
| 1055 | 1059 |
| 1056 // Checks that server-issued redirects from an http to an https | 1060 // Checks that server-issued redirects from an http to an https |
| 1057 // location will cancel prerendering. | 1061 // location will cancel prerendering. |
| 1058 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1062 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 1059 PrerenderServerRedirectToHttps) { | 1063 PrerenderServerRedirectToHttps) { |
| 1060 net::TestServer https_server(net::TestServer::TYPE_HTTPS, | 1064 net::TestServer https_server(net::TestServer::TYPE_HTTPS, |
| 1065 net::TestServer::kLocalhost, |
| 1061 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); | 1066 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); |
| 1062 ASSERT_TRUE(https_server.Start()); | 1067 ASSERT_TRUE(https_server.Start()); |
| 1063 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); | 1068 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); |
| 1064 PrerenderTestURL(CreateServerRedirect(https_url.spec()), | 1069 PrerenderTestURL(CreateServerRedirect(https_url.spec()), |
| 1065 FINAL_STATUS_USED, | 1070 FINAL_STATUS_USED, |
| 1066 1); | 1071 1); |
| 1067 NavigateToDestURL(); | 1072 NavigateToDestURL(); |
| 1068 } | 1073 } |
| 1069 | 1074 |
| 1070 // Checks that server-issued redirects within an iframe in a prerendered | 1075 // Checks that server-issued redirects within an iframe in a prerendered |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1085 "files/prerender/prerender_embedded_content.html")); | 1090 "files/prerender/prerender_embedded_content.html")); |
| 1086 NavigateToDestURL(); | 1091 NavigateToDestURL(); |
| 1087 } | 1092 } |
| 1088 | 1093 |
| 1089 // Checks that server-issued redirects within an iframe in a prerendered | 1094 // Checks that server-issued redirects within an iframe in a prerendered |
| 1090 // page to an https page will not cancel the prerender, nor will it | 1095 // page to an https page will not cancel the prerender, nor will it |
| 1091 // count as an "alias" for the prerendered page. | 1096 // count as an "alias" for the prerendered page. |
| 1092 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1097 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| 1093 PrerenderServerRedirectToHttpsInIframe) { | 1098 PrerenderServerRedirectToHttpsInIframe) { |
| 1094 net::TestServer https_server(net::TestServer::TYPE_HTTPS, | 1099 net::TestServer https_server(net::TestServer::TYPE_HTTPS, |
| 1100 net::TestServer::kLocalhost, |
| 1095 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); | 1101 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); |
| 1096 ASSERT_TRUE(https_server.Start()); | 1102 ASSERT_TRUE(https_server.Start()); |
| 1097 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); | 1103 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); |
| 1098 std::string redirect_path = CreateServerRedirect(https_url.spec()); | 1104 std::string redirect_path = CreateServerRedirect(https_url.spec()); |
| 1099 std::vector<net::TestServer::StringPair> replacement_text; | 1105 std::vector<net::TestServer::StringPair> replacement_text; |
| 1100 replacement_text.push_back( | 1106 replacement_text.push_back( |
| 1101 std::make_pair("REPLACE_WITH_URL", "/" + redirect_path)); | 1107 std::make_pair("REPLACE_WITH_URL", "/" + redirect_path)); |
| 1102 std::string replacement_path; | 1108 std::string replacement_path; |
| 1103 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( | 1109 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( |
| 1104 "files/prerender/prerender_with_iframe.html", | 1110 "files/prerender/prerender_with_iframe.html", |
| (...skipping 835 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1940 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, MatchCompleteDummy) { | 1946 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, MatchCompleteDummy) { |
| 1941 std::deque<FinalStatus> expected_final_status_queue; | 1947 std::deque<FinalStatus> expected_final_status_queue; |
| 1942 expected_final_status_queue.push_back(FINAL_STATUS_JAVASCRIPT_ALERT); | 1948 expected_final_status_queue.push_back(FINAL_STATUS_JAVASCRIPT_ALERT); |
| 1943 expected_final_status_queue.push_back(FINAL_STATUS_WOULD_HAVE_BEEN_USED); | 1949 expected_final_status_queue.push_back(FINAL_STATUS_WOULD_HAVE_BEEN_USED); |
| 1944 PrerenderTestURL("files/prerender/prerender_alert_before_onload.html", | 1950 PrerenderTestURL("files/prerender/prerender_alert_before_onload.html", |
| 1945 expected_final_status_queue, 1); | 1951 expected_final_status_queue, 1); |
| 1946 NavigateToDestURL(); | 1952 NavigateToDestURL(); |
| 1947 } | 1953 } |
| 1948 | 1954 |
| 1949 } // namespace prerender | 1955 } // namespace prerender |
| OLD | NEW |