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 <stddef.h> | 5 #include <stddef.h> |
6 #include <deque> | 6 #include <deque> |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 2888 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2899 // Checks that a top-level page which would normally request an SSL client | 2899 // Checks that a top-level page which would normally request an SSL client |
2900 // certificate will never be seen since it's an https top-level resource. | 2900 // certificate will never be seen since it's an https top-level resource. |
2901 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 2901 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
2902 PrerenderSSLClientCertTopLevel) { | 2902 PrerenderSSLClientCertTopLevel) { |
2903 ProfileIOData::FromResourceContext( | 2903 ProfileIOData::FromResourceContext( |
2904 current_browser()->profile()->GetResourceContext())-> | 2904 current_browser()->profile()->GetResourceContext())-> |
2905 set_client_cert_store_factory_for_testing( | 2905 set_client_cert_store_factory_for_testing( |
2906 base::Bind(&CreateCertStore)); | 2906 base::Bind(&CreateCertStore)); |
2907 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); | 2907 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); |
2908 net::SSLServerConfig ssl_config; | 2908 net::SSLServerConfig ssl_config; |
2909 ssl_config.require_client_cert = true; | 2909 ssl_config.client_cert_type = |
| 2910 net::SSLServerConfig::ClientCertType::REQUIRE_CLIENT_CERT; |
2910 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_OK, ssl_config); | 2911 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_OK, ssl_config); |
2911 https_server.ServeFilesFromSourceDirectory("chrome/test/data"); | 2912 https_server.ServeFilesFromSourceDirectory("chrome/test/data"); |
2912 ASSERT_TRUE(https_server.Start()); | 2913 ASSERT_TRUE(https_server.Start()); |
2913 GURL https_url = https_server.GetURL("/prerender/prerender_page.html"); | 2914 GURL https_url = https_server.GetURL("/prerender/prerender_page.html"); |
2914 PrerenderTestURL(https_url, FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, 0); | 2915 PrerenderTestURL(https_url, FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, 0); |
2915 } | 2916 } |
2916 | 2917 |
2917 // Checks that an SSL Client Certificate request that originates from a | 2918 // Checks that an SSL Client Certificate request that originates from a |
2918 // subresource will cancel the prerendered page. | 2919 // subresource will cancel the prerendered page. |
2919 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 2920 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
2920 PrerenderSSLClientCertSubresource) { | 2921 PrerenderSSLClientCertSubresource) { |
2921 ProfileIOData::FromResourceContext( | 2922 ProfileIOData::FromResourceContext( |
2922 current_browser()->profile()->GetResourceContext())-> | 2923 current_browser()->profile()->GetResourceContext())-> |
2923 set_client_cert_store_factory_for_testing( | 2924 set_client_cert_store_factory_for_testing( |
2924 base::Bind(&CreateCertStore)); | 2925 base::Bind(&CreateCertStore)); |
2925 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); | 2926 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); |
2926 net::SSLServerConfig ssl_config; | 2927 net::SSLServerConfig ssl_config; |
2927 ssl_config.require_client_cert = true; | 2928 ssl_config.client_cert_type = |
| 2929 net::SSLServerConfig::ClientCertType::REQUIRE_CLIENT_CERT; |
2928 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_OK, ssl_config); | 2930 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_OK, ssl_config); |
2929 https_server.ServeFilesFromSourceDirectory("chrome/test/data"); | 2931 https_server.ServeFilesFromSourceDirectory("chrome/test/data"); |
2930 ASSERT_TRUE(https_server.Start()); | 2932 ASSERT_TRUE(https_server.Start()); |
2931 GURL https_url = https_server.GetURL("/prerender/image.jpeg"); | 2933 GURL https_url = https_server.GetURL("/prerender/image.jpeg"); |
2932 base::StringPairs replacement_text; | 2934 base::StringPairs replacement_text; |
2933 replacement_text.push_back( | 2935 replacement_text.push_back( |
2934 std::make_pair("REPLACE_WITH_IMAGE_URL", https_url.spec())); | 2936 std::make_pair("REPLACE_WITH_IMAGE_URL", https_url.spec())); |
2935 std::string replacement_path; | 2937 std::string replacement_path; |
2936 net::test_server::GetFilePathWithReplacements( | 2938 net::test_server::GetFilePathWithReplacements( |
2937 "/prerender/prerender_with_image.html", replacement_text, | 2939 "/prerender/prerender_with_image.html", replacement_text, |
2938 &replacement_path); | 2940 &replacement_path); |
2939 PrerenderTestURL(replacement_path, | 2941 PrerenderTestURL(replacement_path, |
2940 FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, | 2942 FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, |
2941 0); | 2943 0); |
2942 } | 2944 } |
2943 | 2945 |
2944 // Checks that an SSL Client Certificate request that originates from an | 2946 // Checks that an SSL Client Certificate request that originates from an |
2945 // iframe will cancel the prerendered page. | 2947 // iframe will cancel the prerendered page. |
2946 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertIframe) { | 2948 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLClientCertIframe) { |
2947 ProfileIOData::FromResourceContext( | 2949 ProfileIOData::FromResourceContext( |
2948 current_browser()->profile()->GetResourceContext())-> | 2950 current_browser()->profile()->GetResourceContext())-> |
2949 set_client_cert_store_factory_for_testing( | 2951 set_client_cert_store_factory_for_testing( |
2950 base::Bind(&CreateCertStore)); | 2952 base::Bind(&CreateCertStore)); |
2951 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); | 2953 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); |
2952 net::SSLServerConfig ssl_config; | 2954 net::SSLServerConfig ssl_config; |
2953 ssl_config.require_client_cert = true; | 2955 ssl_config.client_cert_type = |
| 2956 net::SSLServerConfig::ClientCertType::REQUIRE_CLIENT_CERT; |
2954 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_OK, ssl_config); | 2957 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_OK, ssl_config); |
2955 https_server.ServeFilesFromSourceDirectory("chrome/test/data"); | 2958 https_server.ServeFilesFromSourceDirectory("chrome/test/data"); |
2956 ASSERT_TRUE(https_server.Start()); | 2959 ASSERT_TRUE(https_server.Start()); |
2957 GURL https_url = | 2960 GURL https_url = |
2958 https_server.GetURL("/prerender/prerender_embedded_content.html"); | 2961 https_server.GetURL("/prerender/prerender_embedded_content.html"); |
2959 base::StringPairs replacement_text; | 2962 base::StringPairs replacement_text; |
2960 replacement_text.push_back( | 2963 replacement_text.push_back( |
2961 std::make_pair("REPLACE_WITH_URL", https_url.spec())); | 2964 std::make_pair("REPLACE_WITH_URL", https_url.spec())); |
2962 std::string replacement_path; | 2965 std::string replacement_path; |
2963 net::test_server::GetFilePathWithReplacements( | 2966 net::test_server::GetFilePathWithReplacements( |
(...skipping 1083 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4047 | 4050 |
4048 NavigateToDestURL(); | 4051 NavigateToDestURL(); |
4049 EXPECT_EQ(1U, task_manager.tasks().size()); | 4052 EXPECT_EQ(1U, task_manager.tasks().size()); |
4050 } | 4053 } |
4051 | 4054 |
4052 } // namespace | 4055 } // namespace |
4053 | 4056 |
4054 #endif // defined(ENABLE_TASK_MANAGER) | 4057 #endif // defined(ENABLE_TASK_MANAGER) |
4055 | 4058 |
4056 } // namespace prerender | 4059 } // namespace prerender |
OLD | NEW |