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 "net/http/http_stream_factory_impl.h" | 5 #include "net/http/http_stream_factory_impl.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <string> | 10 #include <string> |
(...skipping 695 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
706 ERR_MSG_TOO_BIG, | 706 ERR_MSG_TOO_BIG, |
707 }; | 707 }; |
708 | 708 |
709 // Tests that a bad QUIC proxy is added to the list of bad proxies. | 709 // Tests that a bad QUIC proxy is added to the list of bad proxies. |
710 TEST_F(HttpStreamFactoryTest, QuicProxyMarkedAsBad) { | 710 TEST_F(HttpStreamFactoryTest, QuicProxyMarkedAsBad) { |
711 for (size_t i = 0; i < arraysize(quic_proxy_test_mock_errors); ++i) { | 711 for (size_t i = 0; i < arraysize(quic_proxy_test_mock_errors); ++i) { |
712 std::unique_ptr<ProxyService> proxy_service; | 712 std::unique_ptr<ProxyService> proxy_service; |
713 proxy_service = | 713 proxy_service = |
714 ProxyService::CreateFixedFromPacResult("QUIC bad:99; DIRECT"); | 714 ProxyService::CreateFixedFromPacResult("QUIC bad:99; DIRECT"); |
715 | 715 |
716 HttpNetworkSession::Params params; | 716 HttpNetworkSession::Params session_params; |
717 params.enable_quic = true; | 717 session_params.enable_quic = true; |
718 | |
719 HttpNetworkSession::Context session_context; | |
718 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service( | 720 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service( |
719 new SSLConfigServiceDefaults); | 721 new SSLConfigServiceDefaults); |
720 HttpServerPropertiesImpl http_server_properties; | 722 HttpServerPropertiesImpl http_server_properties; |
721 MockClientSocketFactory socket_factory; | 723 MockClientSocketFactory socket_factory; |
722 params.client_socket_factory = &socket_factory; | 724 session_context.client_socket_factory = &socket_factory; |
723 MockHostResolver host_resolver; | 725 MockHostResolver host_resolver; |
724 params.host_resolver = &host_resolver; | 726 session_context.host_resolver = &host_resolver; |
725 MockCertVerifier cert_verifier; | 727 MockCertVerifier cert_verifier; |
726 params.cert_verifier = &cert_verifier; | 728 session_context.cert_verifier = &cert_verifier; |
727 TransportSecurityState transport_security_state; | 729 TransportSecurityState transport_security_state; |
728 params.transport_security_state = &transport_security_state; | 730 session_context.transport_security_state = &transport_security_state; |
729 MultiLogCTVerifier ct_verifier; | 731 MultiLogCTVerifier ct_verifier; |
730 params.cert_transparency_verifier = &ct_verifier; | 732 session_context.cert_transparency_verifier = &ct_verifier; |
731 CTPolicyEnforcer ct_policy_enforcer; | 733 CTPolicyEnforcer ct_policy_enforcer; |
732 params.ct_policy_enforcer = &ct_policy_enforcer; | 734 session_context.ct_policy_enforcer = &ct_policy_enforcer; |
733 params.proxy_service = proxy_service.get(); | 735 session_context.proxy_service = proxy_service.get(); |
734 params.ssl_config_service = ssl_config_service.get(); | 736 session_context.ssl_config_service = ssl_config_service.get(); |
735 params.http_server_properties = &http_server_properties; | 737 session_context.http_server_properties = &http_server_properties; |
736 | 738 |
737 auto session = base::MakeUnique<HttpNetworkSession>(params); | 739 auto session = |
740 base::MakeUnique<HttpNetworkSession>(session_params, session_context); | |
738 session->quic_stream_factory()->set_require_confirmation(false); | 741 session->quic_stream_factory()->set_require_confirmation(false); |
739 | 742 |
740 StaticSocketDataProvider socket_data1; | 743 StaticSocketDataProvider socket_data1; |
741 socket_data1.set_connect_data( | 744 socket_data1.set_connect_data( |
742 MockConnect(ASYNC, quic_proxy_test_mock_errors[i])); | 745 MockConnect(ASYNC, quic_proxy_test_mock_errors[i])); |
743 socket_factory.AddSocketDataProvider(&socket_data1); | 746 socket_factory.AddSocketDataProvider(&socket_data1); |
744 | 747 |
745 // Second connection attempt succeeds. | 748 // Second connection attempt succeeds. |
746 StaticSocketDataProvider socket_data2; | 749 StaticSocketDataProvider socket_data2; |
747 socket_data2.set_connect_data(MockConnect(ASYNC, OK)); | 750 socket_data2.set_connect_data(MockConnect(ASYNC, OK)); |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
831 | 834 |
832 private: | 835 private: |
833 std::vector<std::unique_ptr<QuicEncryptedPacket>> packets_; | 836 std::vector<std::unique_ptr<QuicEncryptedPacket>> packets_; |
834 std::vector<MockWrite> writes_; | 837 std::vector<MockWrite> writes_; |
835 std::vector<MockRead> reads_; | 838 std::vector<MockRead> reads_; |
836 size_t packet_number_; | 839 size_t packet_number_; |
837 std::unique_ptr<SequencedSocketData> socket_data_; | 840 std::unique_ptr<SequencedSocketData> socket_data_; |
838 }; | 841 }; |
839 | 842 |
840 void SetupForQuicAlternativeProxyTest( | 843 void SetupForQuicAlternativeProxyTest( |
841 HttpNetworkSession::Params* params, | 844 HttpNetworkSession::Params* session_params, |
845 HttpNetworkSession::Context* session_context, | |
842 MockClientSocketFactory* socket_factory, | 846 MockClientSocketFactory* socket_factory, |
843 ProxyService* proxy_service, | 847 ProxyService* proxy_service, |
844 TestProxyDelegate* test_proxy_delegate, | 848 TestProxyDelegate* test_proxy_delegate, |
845 HttpServerPropertiesImpl* http_server_properties, | 849 HttpServerPropertiesImpl* http_server_properties, |
846 MockCertVerifier* cert_verifier, | 850 MockCertVerifier* cert_verifier, |
847 CTPolicyEnforcer* ct_policy_enforcer, | 851 CTPolicyEnforcer* ct_policy_enforcer, |
848 MultiLogCTVerifier* ct_verifier, | 852 MultiLogCTVerifier* ct_verifier, |
849 SSLConfigServiceDefaults* ssl_config_service, | 853 SSLConfigServiceDefaults* ssl_config_service, |
850 MockHostResolver* host_resolver, | 854 MockHostResolver* host_resolver, |
851 TransportSecurityState* transport_security_state, | 855 TransportSecurityState* transport_security_state, |
852 bool set_alternative_proxy_server) { | 856 bool set_alternative_proxy_server) { |
853 params->enable_quic = true; | 857 session_params->enable_quic = true; |
854 params->client_socket_factory = socket_factory; | 858 |
855 params->host_resolver = host_resolver; | 859 session_context->client_socket_factory = socket_factory; |
856 params->transport_security_state = transport_security_state; | 860 session_context->host_resolver = host_resolver; |
857 params->proxy_service = proxy_service; | 861 session_context->transport_security_state = transport_security_state; |
858 params->ssl_config_service = ssl_config_service; | 862 session_context->proxy_service = proxy_service; |
859 params->http_server_properties = http_server_properties; | 863 session_context->ssl_config_service = ssl_config_service; |
860 params->cert_verifier = cert_verifier; | 864 session_context->http_server_properties = http_server_properties; |
861 params->ct_policy_enforcer = ct_policy_enforcer; | 865 session_context->cert_verifier = cert_verifier; |
862 params->cert_transparency_verifier = ct_verifier; | 866 session_context->ct_policy_enforcer = ct_policy_enforcer; |
867 session_context->cert_transparency_verifier = ct_verifier; | |
863 | 868 |
864 if (set_alternative_proxy_server) { | 869 if (set_alternative_proxy_server) { |
865 test_proxy_delegate->set_alternative_proxy_server( | 870 test_proxy_delegate->set_alternative_proxy_server( |
866 ProxyServer::FromPacString("QUIC badproxy:99")); | 871 ProxyServer::FromPacString("QUIC badproxy:99")); |
867 } | 872 } |
868 params->proxy_delegate = test_proxy_delegate; | 873 session_context->proxy_delegate = test_proxy_delegate; |
869 } | 874 } |
870 | 875 |
871 } // namespace | 876 } // namespace |
872 | 877 |
873 // Tests that a HTTPS proxy that supports QUIC alternative proxy server is | 878 // Tests that a HTTPS proxy that supports QUIC alternative proxy server is |
874 // marked as bad if connecting to both the default proxy and the alternative | 879 // marked as bad if connecting to both the default proxy and the alternative |
875 // proxy is unsuccessful. | 880 // proxy is unsuccessful. |
876 TEST_F(HttpStreamFactoryTest, WithQUICAlternativeProxyMarkedAsBad) { | 881 TEST_F(HttpStreamFactoryTest, WithQUICAlternativeProxyMarkedAsBad) { |
877 const bool set_alternative_proxy_server_values[] = { | 882 const bool set_alternative_proxy_server_values[] = { |
878 false, true, | 883 false, true, |
879 }; | 884 }; |
880 | 885 |
881 for (auto mock_error : quic_proxy_test_mock_errors) { | 886 for (auto mock_error : quic_proxy_test_mock_errors) { |
882 for (auto set_alternative_proxy_server : | 887 for (auto set_alternative_proxy_server : |
883 set_alternative_proxy_server_values) { | 888 set_alternative_proxy_server_values) { |
884 HttpNetworkSession::Params params; | 889 HttpNetworkSession::Params session_params; |
890 HttpNetworkSession::Context session_context; | |
885 MockClientSocketFactory socket_factory; | 891 MockClientSocketFactory socket_factory; |
886 std::unique_ptr<ProxyService> proxy_service = | 892 std::unique_ptr<ProxyService> proxy_service = |
887 ProxyService::CreateFixedFromPacResult( | 893 ProxyService::CreateFixedFromPacResult( |
888 "HTTPS badproxy:99; HTTPS badfallbackproxy:98; DIRECT"); | 894 "HTTPS badproxy:99; HTTPS badfallbackproxy:98; DIRECT"); |
889 TestProxyDelegate test_proxy_delegate; | 895 TestProxyDelegate test_proxy_delegate; |
890 HttpServerPropertiesImpl http_server_properties; | 896 HttpServerPropertiesImpl http_server_properties; |
891 MockCertVerifier cert_verifier; | 897 MockCertVerifier cert_verifier; |
892 CTPolicyEnforcer ct_policy_enforcer; | 898 CTPolicyEnforcer ct_policy_enforcer; |
893 MultiLogCTVerifier ct_verifier; | 899 MultiLogCTVerifier ct_verifier; |
894 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service( | 900 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service( |
895 new SSLConfigServiceDefaults); | 901 new SSLConfigServiceDefaults); |
896 MockHostResolver host_resolver; | 902 MockHostResolver host_resolver; |
897 TransportSecurityState transport_security_state; | 903 TransportSecurityState transport_security_state; |
898 SetupForQuicAlternativeProxyTest( | 904 SetupForQuicAlternativeProxyTest( |
899 ¶ms, &socket_factory, proxy_service.get(), &test_proxy_delegate, | 905 &session_params, &session_context, &socket_factory, |
900 &http_server_properties, &cert_verifier, &ct_policy_enforcer, | 906 proxy_service.get(), &test_proxy_delegate, &http_server_properties, |
901 &ct_verifier, ssl_config_service.get(), &host_resolver, | 907 &cert_verifier, &ct_policy_enforcer, &ct_verifier, |
902 &transport_security_state, set_alternative_proxy_server); | 908 ssl_config_service.get(), &host_resolver, &transport_security_state, |
909 set_alternative_proxy_server); | |
903 | 910 |
904 auto session = base::MakeUnique<HttpNetworkSession>(params); | 911 auto session = |
912 base::MakeUnique<HttpNetworkSession>(session_params, session_context); | |
905 | 913 |
906 // Before starting the test, verify that there are no proxies marked as | 914 // Before starting the test, verify that there are no proxies marked as |
907 // bad. | 915 // bad. |
908 ASSERT_TRUE(session->proxy_service()->proxy_retry_info().empty()) | 916 ASSERT_TRUE(session->proxy_service()->proxy_retry_info().empty()) |
909 << mock_error; | 917 << mock_error; |
910 | 918 |
911 StaticSocketDataProvider socket_data_proxy_main_job; | 919 StaticSocketDataProvider socket_data_proxy_main_job; |
912 socket_data_proxy_main_job.set_connect_data( | 920 socket_data_proxy_main_job.set_connect_data( |
913 MockConnect(ASYNC, mock_error)); | 921 MockConnect(ASYNC, mock_error)); |
914 socket_factory.AddSocketDataProvider(&socket_data_proxy_main_job); | 922 socket_factory.AddSocketDataProvider(&socket_data_proxy_main_job); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
992 } | 1000 } |
993 } | 1001 } |
994 } | 1002 } |
995 } | 1003 } |
996 } | 1004 } |
997 | 1005 |
998 // Tests that a HTTPS proxy that supports QUIC alternative proxy server is | 1006 // Tests that a HTTPS proxy that supports QUIC alternative proxy server is |
999 // not marked as bad if only the alternative proxy server job fails. | 1007 // not marked as bad if only the alternative proxy server job fails. |
1000 TEST_F(HttpStreamFactoryTest, WithQUICAlternativeProxyNotMarkedAsBad) { | 1008 TEST_F(HttpStreamFactoryTest, WithQUICAlternativeProxyNotMarkedAsBad) { |
1001 for (auto mock_error : quic_proxy_test_mock_errors) { | 1009 for (auto mock_error : quic_proxy_test_mock_errors) { |
1002 HttpNetworkSession::Params params; | 1010 HttpNetworkSession::Params session_params; |
1011 HttpNetworkSession::Context session_context; | |
1003 MockClientSocketFactory socket_factory; | 1012 MockClientSocketFactory socket_factory; |
1004 std::unique_ptr<ProxyService> proxy_service = | 1013 std::unique_ptr<ProxyService> proxy_service = |
1005 ProxyService::CreateFixedFromPacResult("HTTPS badproxy:99; DIRECT"); | 1014 ProxyService::CreateFixedFromPacResult("HTTPS badproxy:99; DIRECT"); |
1006 TestProxyDelegate test_proxy_delegate; | 1015 TestProxyDelegate test_proxy_delegate; |
1007 HttpServerPropertiesImpl http_server_properties; | 1016 HttpServerPropertiesImpl http_server_properties; |
1008 MockCertVerifier cert_verifier; | 1017 MockCertVerifier cert_verifier; |
1009 CTPolicyEnforcer ct_policy_enforcer; | 1018 CTPolicyEnforcer ct_policy_enforcer; |
1010 MultiLogCTVerifier ct_verifier; | 1019 MultiLogCTVerifier ct_verifier; |
1011 | 1020 |
1012 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service( | 1021 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service( |
1013 new SSLConfigServiceDefaults); | 1022 new SSLConfigServiceDefaults); |
1014 MockHostResolver host_resolver; | 1023 MockHostResolver host_resolver; |
1015 TransportSecurityState transport_security_state; | 1024 TransportSecurityState transport_security_state; |
1016 | 1025 |
1017 SetupForQuicAlternativeProxyTest( | 1026 SetupForQuicAlternativeProxyTest( |
1018 ¶ms, &socket_factory, proxy_service.get(), &test_proxy_delegate, | 1027 &session_params, &session_context, &socket_factory, proxy_service.get(), |
1019 &http_server_properties, &cert_verifier, &ct_policy_enforcer, | 1028 &test_proxy_delegate, &http_server_properties, &cert_verifier, |
1020 &ct_verifier, ssl_config_service.get(), &host_resolver, | 1029 &ct_policy_enforcer, &ct_verifier, ssl_config_service.get(), |
1021 &transport_security_state, true); | 1030 &host_resolver, &transport_security_state, true); |
1022 | 1031 |
1023 HostPortPair host_port_pair("badproxy", 99); | 1032 HostPortPair host_port_pair("badproxy", 99); |
1024 auto session = base::MakeUnique<HttpNetworkSession>(params); | 1033 auto session = |
1034 base::MakeUnique<HttpNetworkSession>(session_params, session_context); | |
1025 | 1035 |
1026 // Before starting the test, verify that there are no proxies marked as | 1036 // Before starting the test, verify that there are no proxies marked as |
1027 // bad. | 1037 // bad. |
1028 ASSERT_TRUE(session->proxy_service()->proxy_retry_info().empty()) | 1038 ASSERT_TRUE(session->proxy_service()->proxy_retry_info().empty()) |
1029 << mock_error; | 1039 << mock_error; |
1030 | 1040 |
1031 StaticSocketDataProvider socket_data_proxy_main_job; | 1041 StaticSocketDataProvider socket_data_proxy_main_job; |
1032 socket_data_proxy_main_job.set_connect_data(MockConnect(ASYNC, mock_error)); | 1042 socket_data_proxy_main_job.set_connect_data(MockConnect(ASYNC, mock_error)); |
1033 socket_factory.AddSocketDataProvider(&socket_data_proxy_main_job); | 1043 socket_factory.AddSocketDataProvider(&socket_data_proxy_main_job); |
1034 | 1044 |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1106 HostPortPair host_port_pair(alternative_service.host_port_pair()); | 1116 HostPortPair host_port_pair(alternative_service.host_port_pair()); |
1107 url::SchemeHostPort server("https", host_port_pair.host(), | 1117 url::SchemeHostPort server("https", host_port_pair.host(), |
1108 host_port_pair.port()); | 1118 host_port_pair.port()); |
1109 http_server_properties.SetAlternativeServices( | 1119 http_server_properties.SetAlternativeServices( |
1110 server, alternative_service_info_vector); | 1120 server, alternative_service_info_vector); |
1111 | 1121 |
1112 SpdySessionDependencies session_deps( | 1122 SpdySessionDependencies session_deps( |
1113 ProxyService::CreateFixed("http_proxy")); | 1123 ProxyService::CreateFixed("http_proxy")); |
1114 | 1124 |
1115 // Setup params to disable preconnect, but QUIC doesn't 0RTT. | 1125 // Setup params to disable preconnect, but QUIC doesn't 0RTT. |
1116 HttpNetworkSession::Params params = | 1126 HttpNetworkSession::Params session_params = |
1117 SpdySessionDependencies::CreateSessionParams(&session_deps); | 1127 SpdySessionDependencies::CreateSessionParams(&session_deps); |
1118 params.enable_quic = true; | 1128 session_params.enable_quic = true; |
1119 params.http_server_properties = &http_server_properties; | |
Randy Smith (Not in Mondays)
2017/05/31 18:09:40
Why doesn't this need to be moved over to the sess
mmenke
2017/05/31 18:57:19
This is a bug, nice catch! Fixed.
| |
1120 | 1129 |
1121 auto session = base::MakeUnique<HttpNetworkSession>(params); | 1130 auto session = base::MakeUnique<HttpNetworkSession>( |
1131 session_params, | |
1132 SpdySessionDependencies::CreateSessionContext(&session_deps)); | |
1122 HttpNetworkSessionPeer peer(session.get()); | 1133 HttpNetworkSessionPeer peer(session.get()); |
1123 HostPortPair proxy_host("http_proxy", 80); | 1134 HostPortPair proxy_host("http_proxy", 80); |
1124 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = | 1135 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = |
1125 new CapturePreconnectsHttpProxySocketPool( | 1136 new CapturePreconnectsHttpProxySocketPool( |
1126 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 1137 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
1127 session_deps.transport_security_state.get(), | 1138 session_deps.transport_security_state.get(), |
1128 session_deps.cert_transparency_verifier.get(), | 1139 session_deps.cert_transparency_verifier.get(), |
1129 session_deps.ct_policy_enforcer.get()); | 1140 session_deps.ct_policy_enforcer.get()); |
1130 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 1141 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
1131 new CapturePreconnectsSSLSocketPool( | 1142 new CapturePreconnectsSSLSocketPool( |
(...skipping 23 matching lines...) Expand all Loading... | |
1155 ProxyService::CreateFixedFromPacResult("HTTPS myproxy.org:443"); | 1166 ProxyService::CreateFixedFromPacResult("HTTPS myproxy.org:443"); |
1156 | 1167 |
1157 // Set up the proxy server as a server that supports request priorities. | 1168 // Set up the proxy server as a server that supports request priorities. |
1158 HttpServerPropertiesImpl http_server_properties; | 1169 HttpServerPropertiesImpl http_server_properties; |
1159 if (set_http_server_properties) { | 1170 if (set_http_server_properties) { |
1160 url::SchemeHostPort spdy_server("https", "myproxy.org", 443); | 1171 url::SchemeHostPort spdy_server("https", "myproxy.org", 443); |
1161 http_server_properties.SetSupportsSpdy(spdy_server, true); | 1172 http_server_properties.SetSupportsSpdy(spdy_server, true); |
1162 } | 1173 } |
1163 | 1174 |
1164 SpdySessionDependencies session_deps; | 1175 SpdySessionDependencies session_deps; |
1165 HttpNetworkSession::Params params = | 1176 HttpNetworkSession::Params session_params = |
1166 SpdySessionDependencies::CreateSessionParams(&session_deps); | 1177 SpdySessionDependencies::CreateSessionParams(&session_deps); |
1167 params.enable_quic = true; | 1178 session_params.enable_quic = true; |
1168 params.proxy_service = proxy_service.get(); | |
1169 params.http_server_properties = &http_server_properties; | |
1170 | 1179 |
1171 auto session = base::MakeUnique<HttpNetworkSession>(params); | 1180 HttpNetworkSession::Context session_context = |
1181 SpdySessionDependencies::CreateSessionContext(&session_deps); | |
1182 session_context.proxy_service = proxy_service.get(); | |
1183 session_context.http_server_properties = &http_server_properties; | |
1184 | |
1185 auto session = | |
1186 base::MakeUnique<HttpNetworkSession>(session_params, session_context); | |
1172 | 1187 |
1173 HttpNetworkSessionPeer peer(session.get()); | 1188 HttpNetworkSessionPeer peer(session.get()); |
1174 HostPortPair proxy_host("myproxy.org", 443); | 1189 HostPortPair proxy_host("myproxy.org", 443); |
1175 | 1190 |
1176 for (int preconnect_request = 0; preconnect_request < 2; | 1191 for (int preconnect_request = 0; preconnect_request < 2; |
1177 ++preconnect_request) { | 1192 ++preconnect_request) { |
1178 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = | 1193 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = |
1179 new CapturePreconnectsHttpProxySocketPool( | 1194 new CapturePreconnectsHttpProxySocketPool( |
1180 session_deps.host_resolver.get(), | 1195 session_deps.host_resolver.get(), |
1181 session_deps.cert_verifier.get(), | 1196 session_deps.cert_verifier.get(), |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1243 std::unique_ptr<ProxyService> proxy_service = | 1258 std::unique_ptr<ProxyService> proxy_service = |
1244 ProxyService::CreateFixedFromPacResult("HTTPS myproxy.org:443"); | 1259 ProxyService::CreateFixedFromPacResult("HTTPS myproxy.org:443"); |
1245 | 1260 |
1246 // Set up the proxy server as a server that supports request priorities. | 1261 // Set up the proxy server as a server that supports request priorities. |
1247 HttpServerPropertiesImpl http_server_properties; | 1262 HttpServerPropertiesImpl http_server_properties; |
1248 | 1263 |
1249 url::SchemeHostPort spdy_server("https", "myproxy.org", 443); | 1264 url::SchemeHostPort spdy_server("https", "myproxy.org", 443); |
1250 http_server_properties.SetSupportsSpdy(spdy_server, true); | 1265 http_server_properties.SetSupportsSpdy(spdy_server, true); |
1251 | 1266 |
1252 SpdySessionDependencies session_deps; | 1267 SpdySessionDependencies session_deps; |
1253 HttpNetworkSession::Params params = | 1268 HttpNetworkSession::Params session_params = |
1254 SpdySessionDependencies::CreateSessionParams(&session_deps); | 1269 SpdySessionDependencies::CreateSessionParams(&session_deps); |
1255 params.enable_quic = true; | 1270 session_params.enable_quic = true; |
1256 params.proxy_service = proxy_service.get(); | |
1257 params.http_server_properties = &http_server_properties; | |
1258 | 1271 |
1259 auto session = base::MakeUnique<HttpNetworkSession>(params); | 1272 HttpNetworkSession::Context session_context = |
1273 SpdySessionDependencies::CreateSessionContext(&session_deps); | |
1274 session_context.proxy_service = proxy_service.get(); | |
1275 session_context.http_server_properties = &http_server_properties; | |
1276 | |
1277 auto session = | |
1278 base::MakeUnique<HttpNetworkSession>(session_params, session_context); | |
1260 | 1279 |
1261 HttpNetworkSessionPeer peer(session.get()); | 1280 HttpNetworkSessionPeer peer(session.get()); |
1262 HostPortPair proxy_host("myproxy.org", 443); | 1281 HostPortPair proxy_host("myproxy.org", 443); |
1263 | 1282 |
1264 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = | 1283 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = |
1265 new CapturePreconnectsHttpProxySocketPool( | 1284 new CapturePreconnectsHttpProxySocketPool( |
1266 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 1285 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
1267 session_deps.transport_security_state.get(), | 1286 session_deps.transport_security_state.get(), |
1268 session_deps.cert_transparency_verifier.get(), | 1287 session_deps.cert_transparency_verifier.get(), |
1269 session_deps.ct_policy_enforcer.get()); | 1288 session_deps.ct_policy_enforcer.get()); |
(...skipping 875 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2145 void TearDown() override { session_.reset(); } | 2164 void TearDown() override { session_.reset(); } |
2146 | 2165 |
2147 // Disable bidirectional stream over QUIC. This should be invoked before | 2166 // Disable bidirectional stream over QUIC. This should be invoked before |
2148 // Initialize(). | 2167 // Initialize(). |
2149 void DisableQuicBidirectionalStream() { | 2168 void DisableQuicBidirectionalStream() { |
2150 params_.quic_disable_bidirectional_streams = true; | 2169 params_.quic_disable_bidirectional_streams = true; |
2151 } | 2170 } |
2152 | 2171 |
2153 void Initialize() { | 2172 void Initialize() { |
2154 params_.enable_quic = true; | 2173 params_.enable_quic = true; |
2155 params_.http_server_properties = &http_server_properties_; | 2174 params_.quic_supported_versions = test::SupportedVersions(GetParam()); |
2156 params_.quic_random = &random_generator_; | 2175 |
2157 params_.quic_clock = &clock_; | 2176 HttpNetworkSession::Context session_context; |
2177 session_context.http_server_properties = &http_server_properties_; | |
2178 session_context.quic_random = &random_generator_; | |
2179 session_context.quic_clock = &clock_; | |
2158 | 2180 |
2159 // Load a certificate that is valid for *.example.org | 2181 // Load a certificate that is valid for *.example.org |
2160 scoped_refptr<X509Certificate> test_cert( | 2182 scoped_refptr<X509Certificate> test_cert( |
2161 ImportCertFromFile(GetTestCertsDirectory(), "wildcard.pem")); | 2183 ImportCertFromFile(GetTestCertsDirectory(), "wildcard.pem")); |
2162 EXPECT_TRUE(test_cert.get()); | 2184 EXPECT_TRUE(test_cert.get()); |
2163 verify_details_.cert_verify_result.verified_cert = test_cert; | 2185 verify_details_.cert_verify_result.verified_cert = test_cert; |
2164 verify_details_.cert_verify_result.is_issued_by_known_root = true; | 2186 verify_details_.cert_verify_result.is_issued_by_known_root = true; |
2165 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_); | 2187 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_); |
2166 crypto_client_stream_factory_.set_handshake_mode( | 2188 crypto_client_stream_factory_.set_handshake_mode( |
2167 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 2189 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
2168 params_.cert_verifier = &cert_verifier_; | 2190 session_context.cert_verifier = &cert_verifier_; |
2169 params_.quic_crypto_client_stream_factory = &crypto_client_stream_factory_; | 2191 session_context.quic_crypto_client_stream_factory = |
2170 params_.quic_supported_versions = test::SupportedVersions(GetParam()); | 2192 &crypto_client_stream_factory_; |
2171 params_.transport_security_state = &transport_security_state_; | 2193 session_context.transport_security_state = &transport_security_state_; |
2172 params_.cert_transparency_verifier = &ct_verifier_; | 2194 session_context.cert_transparency_verifier = &ct_verifier_; |
2173 params_.ct_policy_enforcer = &ct_policy_enforcer_; | 2195 session_context.ct_policy_enforcer = &ct_policy_enforcer_; |
2174 params_.host_resolver = &host_resolver_; | 2196 session_context.host_resolver = &host_resolver_; |
2175 params_.proxy_service = proxy_service_.get(); | 2197 session_context.proxy_service = proxy_service_.get(); |
2176 params_.ssl_config_service = ssl_config_service_.get(); | 2198 session_context.ssl_config_service = ssl_config_service_.get(); |
2177 params_.client_socket_factory = &socket_factory_; | 2199 session_context.client_socket_factory = &socket_factory_; |
2178 session_ = base::MakeUnique<HttpNetworkSession>(params_); | 2200 session_.reset(new HttpNetworkSession(params_, session_context)); |
2179 session_->quic_stream_factory()->set_require_confirmation(false); | 2201 session_->quic_stream_factory()->set_require_confirmation(false); |
2180 } | 2202 } |
2181 | 2203 |
2182 void AddQuicAlternativeService() { | 2204 void AddQuicAlternativeService() { |
2183 const AlternativeService alternative_service(kProtoQUIC, "www.example.org", | 2205 const AlternativeService alternative_service(kProtoQUIC, "www.example.org", |
2184 443); | 2206 443); |
2185 AlternativeServiceInfoVector alternative_service_info_vector; | 2207 AlternativeServiceInfoVector alternative_service_info_vector; |
2186 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 2208 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
2187 alternative_service_info_vector.push_back( | 2209 alternative_service_info_vector.push_back( |
2188 AlternativeServiceInfo(alternative_service, expiration)); | 2210 AlternativeServiceInfo(alternative_service, expiration)); |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2484 HttpNetworkSession::NORMAL_SOCKET_POOL))); | 2506 HttpNetworkSession::NORMAL_SOCKET_POOL))); |
2485 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool( | 2507 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool( |
2486 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); | 2508 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); |
2487 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool( | 2509 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool( |
2488 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); | 2510 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); |
2489 } | 2511 } |
2490 | 2512 |
2491 } // namespace | 2513 } // namespace |
2492 | 2514 |
2493 } // namespace net | 2515 } // namespace net |
OLD | NEW |