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/string_util.h" | 9 #include "base/string_util.h" |
10 #include "base/stringprintf.h" | 10 #include "base/stringprintf.h" |
(...skipping 1842 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1853 | 1853 |
1854 // Checks that xhr DELETE cancels prerenders. | 1854 // Checks that xhr DELETE cancels prerenders. |
1855 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderXhrDelete) { | 1855 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderXhrDelete) { |
1856 PrerenderTestURL("files/prerender/prerender_xhr_delete.html", | 1856 PrerenderTestURL("files/prerender/prerender_xhr_delete.html", |
1857 FINAL_STATUS_INVALID_HTTP_METHOD, | 1857 FINAL_STATUS_INVALID_HTTP_METHOD, |
1858 1); | 1858 1); |
1859 } | 1859 } |
1860 | 1860 |
1861 // Checks that a top-level page which would trigger an SSL error is canceled. | 1861 // Checks that a top-level page which would trigger an SSL error is canceled. |
1862 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLErrorTopLevel) { | 1862 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLErrorTopLevel) { |
1863 net::TestServer::HTTPSOptions https_options; | 1863 net::TestServer::SSLOptions ssl_options; |
1864 https_options.server_certificate = | 1864 ssl_options.server_certificate = |
1865 net::TestServer::HTTPSOptions::CERT_MISMATCHED_NAME; | 1865 net::TestServer::SSLOptions::CERT_MISMATCHED_NAME; |
1866 net::TestServer https_server(https_options, | 1866 net::TestServer https_server(net::TestServer::TYPE_HTTPS, |
| 1867 ssl_options, |
1867 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); | 1868 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); |
1868 ASSERT_TRUE(https_server.Start()); | 1869 ASSERT_TRUE(https_server.Start()); |
1869 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); | 1870 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); |
1870 PrerenderTestURL(https_url, | 1871 PrerenderTestURL(https_url, |
1871 FINAL_STATUS_SSL_ERROR, | 1872 FINAL_STATUS_SSL_ERROR, |
1872 1); | 1873 1); |
1873 } | 1874 } |
1874 | 1875 |
1875 // Checks that an SSL error that comes from a subresource does not cancel | 1876 // Checks that an SSL error that comes from a subresource does not cancel |
1876 // the page. Non-main-frame requests are simply cancelled if they run into | 1877 // the page. Non-main-frame requests are simply cancelled if they run into |
1877 // an SSL problem. | 1878 // an SSL problem. |
1878 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLErrorSubresource) { | 1879 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLErrorSubresource) { |
1879 net::TestServer::HTTPSOptions https_options; | 1880 net::TestServer::SSLOptions ssl_options; |
1880 https_options.server_certificate = | 1881 ssl_options.server_certificate = |
1881 net::TestServer::HTTPSOptions::CERT_MISMATCHED_NAME; | 1882 net::TestServer::SSLOptions::CERT_MISMATCHED_NAME; |
1882 net::TestServer https_server(https_options, | 1883 net::TestServer https_server(net::TestServer::TYPE_HTTPS, |
| 1884 ssl_options, |
1883 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); | 1885 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); |
1884 ASSERT_TRUE(https_server.Start()); | 1886 ASSERT_TRUE(https_server.Start()); |
1885 GURL https_url = https_server.GetURL("files/prerender/image.jpeg"); | 1887 GURL https_url = https_server.GetURL("files/prerender/image.jpeg"); |
1886 std::vector<net::TestServer::StringPair> replacement_text; | 1888 std::vector<net::TestServer::StringPair> replacement_text; |
1887 replacement_text.push_back( | 1889 replacement_text.push_back( |
1888 std::make_pair("REPLACE_WITH_IMAGE_URL", https_url.spec())); | 1890 std::make_pair("REPLACE_WITH_IMAGE_URL", https_url.spec())); |
1889 std::string replacement_path; | 1891 std::string replacement_path; |
1890 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( | 1892 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( |
1891 "files/prerender/prerender_with_image.html", | 1893 "files/prerender/prerender_with_image.html", |
1892 replacement_text, | 1894 replacement_text, |
1893 &replacement_path)); | 1895 &replacement_path)); |
1894 PrerenderTestURL(replacement_path, FINAL_STATUS_USED, 1); | 1896 PrerenderTestURL(replacement_path, FINAL_STATUS_USED, 1); |
1895 NavigateToDestURL(); | 1897 NavigateToDestURL(); |
1896 } | 1898 } |
1897 | 1899 |
1898 // Checks that an SSL error that comes from an iframe does not cancel | 1900 // Checks that an SSL error that comes from an iframe does not cancel |
1899 // the page. Non-main-frame requests are simply cancelled if they run into | 1901 // the page. Non-main-frame requests are simply cancelled if they run into |
1900 // an SSL problem. | 1902 // an SSL problem. |
1901 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLErrorIframe) { | 1903 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLErrorIframe) { |
1902 net::TestServer::HTTPSOptions https_options; | 1904 net::TestServer::SSLOptions ssl_options; |
1903 https_options.server_certificate = | 1905 ssl_options.server_certificate = |
1904 net::TestServer::HTTPSOptions::CERT_MISMATCHED_NAME; | 1906 net::TestServer::SSLOptions::CERT_MISMATCHED_NAME; |
1905 net::TestServer https_server(https_options, | 1907 net::TestServer https_server(net::TestServer::TYPE_HTTPS, |
| 1908 ssl_options, |
1906 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); | 1909 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); |
1907 ASSERT_TRUE(https_server.Start()); | 1910 ASSERT_TRUE(https_server.Start()); |
1908 GURL https_url = https_server.GetURL( | 1911 GURL https_url = https_server.GetURL( |
1909 "files/prerender/prerender_embedded_content.html"); | 1912 "files/prerender/prerender_embedded_content.html"); |
1910 std::vector<net::TestServer::StringPair> replacement_text; | 1913 std::vector<net::TestServer::StringPair> replacement_text; |
1911 replacement_text.push_back( | 1914 replacement_text.push_back( |
1912 std::make_pair("REPLACE_WITH_URL", https_url.spec())); | 1915 std::make_pair("REPLACE_WITH_URL", https_url.spec())); |
1913 std::string replacement_path; | 1916 std::string replacement_path; |
1914 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( | 1917 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( |
1915 "files/prerender/prerender_with_iframe.html", | 1918 "files/prerender/prerender_with_iframe.html", |
(...skipping 26 matching lines...) Expand all Loading... |
1942 PrerenderSameDomainWindowOpenerClickTarget) { | 1945 PrerenderSameDomainWindowOpenerClickTarget) { |
1943 PrerenderTestURL("files/prerender/prerender_page.html", | 1946 PrerenderTestURL("files/prerender/prerender_page.html", |
1944 FINAL_STATUS_APP_TERMINATING, | 1947 FINAL_STATUS_APP_TERMINATING, |
1945 1); | 1948 1); |
1946 OpenDestURLViaClickTarget(); | 1949 OpenDestURLViaClickTarget(); |
1947 } | 1950 } |
1948 | 1951 |
1949 // Checks that a top-level page which would normally request an SSL client | 1952 // Checks that a top-level page which would normally request an SSL client |
1950 // certificate will never be seen since it's an https top-level resource. | 1953 // certificate will never be seen since it's an https top-level resource. |
1951 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertTopLevel) { | 1954 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertTopLevel) { |
1952 net::TestServer::HTTPSOptions https_options; | 1955 net::TestServer::SSLOptions ssl_options; |
1953 https_options.request_client_certificate = true; | 1956 ssl_options.request_client_certificate = true; |
1954 net::TestServer https_server(https_options, | 1957 net::TestServer https_server(net::TestServer::TYPE_HTTPS, |
| 1958 ssl_options, |
1955 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); | 1959 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); |
1956 ASSERT_TRUE(https_server.Start()); | 1960 ASSERT_TRUE(https_server.Start()); |
1957 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); | 1961 GURL https_url = https_server.GetURL("files/prerender/prerender_page.html"); |
1958 PrerenderTestURL(https_url, FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, 1); | 1962 PrerenderTestURL(https_url, FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, 1); |
1959 } | 1963 } |
1960 | 1964 |
1961 // Checks that an SSL Client Certificate request that originates from a | 1965 // Checks that an SSL Client Certificate request that originates from a |
1962 // subresource will cancel the prerendered page. | 1966 // subresource will cancel the prerendered page. |
1963 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 1967 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
1964 PrerenderSSLClientCertSubresource) { | 1968 PrerenderSSLClientCertSubresource) { |
1965 net::TestServer::HTTPSOptions https_options; | 1969 net::TestServer::SSLOptions ssl_options; |
1966 https_options.request_client_certificate = true; | 1970 ssl_options.request_client_certificate = true; |
1967 net::TestServer https_server(https_options, | 1971 net::TestServer https_server(net::TestServer::TYPE_HTTPS, |
| 1972 ssl_options, |
1968 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); | 1973 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); |
1969 ASSERT_TRUE(https_server.Start()); | 1974 ASSERT_TRUE(https_server.Start()); |
1970 GURL https_url = https_server.GetURL("files/prerender/image.jpeg"); | 1975 GURL https_url = https_server.GetURL("files/prerender/image.jpeg"); |
1971 std::vector<net::TestServer::StringPair> replacement_text; | 1976 std::vector<net::TestServer::StringPair> replacement_text; |
1972 replacement_text.push_back( | 1977 replacement_text.push_back( |
1973 std::make_pair("REPLACE_WITH_IMAGE_URL", https_url.spec())); | 1978 std::make_pair("REPLACE_WITH_IMAGE_URL", https_url.spec())); |
1974 std::string replacement_path; | 1979 std::string replacement_path; |
1975 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( | 1980 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( |
1976 "files/prerender/prerender_with_image.html", | 1981 "files/prerender/prerender_with_image.html", |
1977 replacement_text, | 1982 replacement_text, |
1978 &replacement_path)); | 1983 &replacement_path)); |
1979 PrerenderTestURL(replacement_path, | 1984 PrerenderTestURL(replacement_path, |
1980 FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, | 1985 FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, |
1981 1); | 1986 1); |
1982 } | 1987 } |
1983 | 1988 |
1984 // Checks that an SSL Client Certificate request that originates from an | 1989 // Checks that an SSL Client Certificate request that originates from an |
1985 // iframe will cancel the prerendered page. | 1990 // iframe will cancel the prerendered page. |
1986 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertIframe) { | 1991 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertIframe) { |
1987 net::TestServer::HTTPSOptions https_options; | 1992 net::TestServer::SSLOptions ssl_options; |
1988 https_options.request_client_certificate = true; | 1993 ssl_options.request_client_certificate = true; |
1989 net::TestServer https_server(https_options, | 1994 net::TestServer https_server(net::TestServer::TYPE_HTTPS, |
| 1995 ssl_options, |
1990 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); | 1996 FilePath(FILE_PATH_LITERAL("chrome/test/data"))); |
1991 ASSERT_TRUE(https_server.Start()); | 1997 ASSERT_TRUE(https_server.Start()); |
1992 GURL https_url = https_server.GetURL( | 1998 GURL https_url = https_server.GetURL( |
1993 "files/prerender/prerender_embedded_content.html"); | 1999 "files/prerender/prerender_embedded_content.html"); |
1994 std::vector<net::TestServer::StringPair> replacement_text; | 2000 std::vector<net::TestServer::StringPair> replacement_text; |
1995 replacement_text.push_back( | 2001 replacement_text.push_back( |
1996 std::make_pair("REPLACE_WITH_URL", https_url.spec())); | 2002 std::make_pair("REPLACE_WITH_URL", https_url.spec())); |
1997 std::string replacement_path; | 2003 std::string replacement_path; |
1998 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( | 2004 ASSERT_TRUE(net::TestServer::GetFilePathWithReplacements( |
1999 "files/prerender/prerender_with_iframe.html", | 2005 "files/prerender/prerender_with_iframe.html", |
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2394 ResultCatcher catcher; | 2400 ResultCatcher catcher; |
2395 | 2401 |
2396 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); | 2402 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); |
2397 NavigateToDestURL(); | 2403 NavigateToDestURL(); |
2398 ASSERT_TRUE(IsEmptyPrerenderLinkManager()); | 2404 ASSERT_TRUE(IsEmptyPrerenderLinkManager()); |
2399 | 2405 |
2400 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 2406 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
2401 } | 2407 } |
2402 | 2408 |
2403 } // namespace prerender | 2409 } // namespace prerender |
OLD | NEW |