| 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 |