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 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
688 new SSLConfigServiceDefaults); | 688 new SSLConfigServiceDefaults); |
689 HttpServerPropertiesImpl http_server_properties; | 689 HttpServerPropertiesImpl http_server_properties; |
690 MockClientSocketFactory socket_factory; | 690 MockClientSocketFactory socket_factory; |
691 params.client_socket_factory = &socket_factory; | 691 params.client_socket_factory = &socket_factory; |
692 MockHostResolver host_resolver; | 692 MockHostResolver host_resolver; |
693 params.host_resolver = &host_resolver; | 693 params.host_resolver = &host_resolver; |
694 TransportSecurityState transport_security_state; | 694 TransportSecurityState transport_security_state; |
695 params.transport_security_state = &transport_security_state; | 695 params.transport_security_state = &transport_security_state; |
696 params.proxy_service = proxy_service.get(); | 696 params.proxy_service = proxy_service.get(); |
697 params.ssl_config_service = ssl_config_service.get(); | 697 params.ssl_config_service = ssl_config_service.get(); |
698 params.http_server_properties = http_server_properties.GetWeakPtr(); | 698 params.http_server_properties = &http_server_properties; |
699 | 699 |
700 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); | 700 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); |
701 session->quic_stream_factory()->set_require_confirmation(false); | 701 session->quic_stream_factory()->set_require_confirmation(false); |
702 | 702 |
703 StaticSocketDataProvider socket_data1; | 703 StaticSocketDataProvider socket_data1; |
704 socket_data1.set_connect_data(MockConnect(ASYNC, mock_error[i])); | 704 socket_data1.set_connect_data(MockConnect(ASYNC, mock_error[i])); |
705 socket_factory.AddSocketDataProvider(&socket_data1); | 705 socket_factory.AddSocketDataProvider(&socket_data1); |
706 | 706 |
707 // Second connection attempt succeeds. | 707 // Second connection attempt succeeds. |
708 StaticSocketDataProvider socket_data2; | 708 StaticSocketDataProvider socket_data2; |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
812 new SSLConfigServiceDefaults); | 812 new SSLConfigServiceDefaults); |
813 HttpServerPropertiesImpl http_server_properties; | 813 HttpServerPropertiesImpl http_server_properties; |
814 MockClientSocketFactory socket_factory; | 814 MockClientSocketFactory socket_factory; |
815 params.client_socket_factory = &socket_factory; | 815 params.client_socket_factory = &socket_factory; |
816 MockHostResolver host_resolver; | 816 MockHostResolver host_resolver; |
817 params.host_resolver = &host_resolver; | 817 params.host_resolver = &host_resolver; |
818 TransportSecurityState transport_security_state; | 818 TransportSecurityState transport_security_state; |
819 params.transport_security_state = &transport_security_state; | 819 params.transport_security_state = &transport_security_state; |
820 params.proxy_service = proxy_service.get(); | 820 params.proxy_service = proxy_service.get(); |
821 params.ssl_config_service = ssl_config_service.get(); | 821 params.ssl_config_service = ssl_config_service.get(); |
822 params.http_server_properties = http_server_properties.GetWeakPtr(); | 822 params.http_server_properties = &http_server_properties; |
823 params.quic_max_number_of_lossy_connections = 2; | 823 params.quic_max_number_of_lossy_connections = 2; |
824 | 824 |
825 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); | 825 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); |
826 session->quic_stream_factory()->set_require_confirmation(false); | 826 session->quic_stream_factory()->set_require_confirmation(false); |
827 | 827 |
828 session->quic_stream_factory()->number_of_lossy_connections_[99] = | 828 session->quic_stream_factory()->number_of_lossy_connections_[99] = |
829 params.quic_max_number_of_lossy_connections; | 829 params.quic_max_number_of_lossy_connections; |
830 session->quic_stream_factory()->MaybeDisableQuic(99); | 830 session->quic_stream_factory()->MaybeDisableQuic(99); |
831 ASSERT_TRUE(session->quic_stream_factory()->IsQuicDisabled(99)); | 831 ASSERT_TRUE(session->quic_stream_factory()->IsQuicDisabled(99)); |
832 | 832 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
877 server, alternative_service_info_vector); | 877 server, alternative_service_info_vector); |
878 | 878 |
879 SpdySessionDependencies session_deps( | 879 SpdySessionDependencies session_deps( |
880 GetParam(), ProxyService::CreateFixed("http_proxy")); | 880 GetParam(), ProxyService::CreateFixed("http_proxy")); |
881 | 881 |
882 // Setup params to disable preconnect, but QUIC doesn't 0RTT. | 882 // Setup params to disable preconnect, but QUIC doesn't 0RTT. |
883 HttpNetworkSession::Params params = | 883 HttpNetworkSession::Params params = |
884 SpdySessionDependencies::CreateSessionParams(&session_deps); | 884 SpdySessionDependencies::CreateSessionParams(&session_deps); |
885 params.enable_quic = true; | 885 params.enable_quic = true; |
886 params.quic_disable_preconnect_if_0rtt = true; | 886 params.quic_disable_preconnect_if_0rtt = true; |
887 params.http_server_properties = http_server_properties.GetWeakPtr(); | 887 params.http_server_properties = &http_server_properties; |
888 | 888 |
889 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); | 889 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); |
890 HttpNetworkSessionPeer peer(session.get()); | 890 HttpNetworkSessionPeer peer(session.get()); |
891 HostPortPair proxy_host("http_proxy", 80); | 891 HostPortPair proxy_host("http_proxy", 80); |
892 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = | 892 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = |
893 new CapturePreconnectsHttpProxySocketPool( | 893 new CapturePreconnectsHttpProxySocketPool( |
894 session_deps.host_resolver.get(), session_deps.cert_verifier.get()); | 894 session_deps.host_resolver.get(), session_deps.cert_verifier.get()); |
895 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 895 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
896 new CapturePreconnectsSSLSocketPool(session_deps.host_resolver.get(), | 896 new CapturePreconnectsSSLSocketPool(session_deps.host_resolver.get(), |
897 session_deps.cert_verifier.get()); | 897 session_deps.cert_verifier.get()); |
(...skipping 24 matching lines...) Expand all Loading... |
922 http_server_properties.SetAlternativeServices( | 922 http_server_properties.SetAlternativeServices( |
923 server, alternative_service_info_vector); | 923 server, alternative_service_info_vector); |
924 | 924 |
925 SpdySessionDependencies session_deps(GetParam()); | 925 SpdySessionDependencies session_deps(GetParam()); |
926 | 926 |
927 // Setup params to disable preconnect, but QUIC does 0RTT. | 927 // Setup params to disable preconnect, but QUIC does 0RTT. |
928 HttpNetworkSession::Params params = | 928 HttpNetworkSession::Params params = |
929 SpdySessionDependencies::CreateSessionParams(&session_deps); | 929 SpdySessionDependencies::CreateSessionParams(&session_deps); |
930 params.enable_quic = true; | 930 params.enable_quic = true; |
931 params.quic_disable_preconnect_if_0rtt = true; | 931 params.quic_disable_preconnect_if_0rtt = true; |
932 params.http_server_properties = http_server_properties.GetWeakPtr(); | 932 params.http_server_properties = &http_server_properties; |
933 | 933 |
934 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); | 934 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); |
935 | 935 |
936 // Setup 0RTT for QUIC. | 936 // Setup 0RTT for QUIC. |
937 QuicStreamFactory* factory = session->quic_stream_factory(); | 937 QuicStreamFactory* factory = session->quic_stream_factory(); |
938 factory->set_require_confirmation(false); | 938 factory->set_require_confirmation(false); |
939 test::QuicStreamFactoryPeer::CacheDummyServerConfig( | 939 test::QuicStreamFactoryPeer::CacheDummyServerConfig( |
940 factory, QuicServerId(host_port_pair, PRIVACY_MODE_DISABLED)); | 940 factory, QuicServerId(host_port_pair, PRIVACY_MODE_DISABLED)); |
941 | 941 |
942 HttpNetworkSessionPeer peer(session.get()); | 942 HttpNetworkSessionPeer peer(session.get()); |
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1486 0, | 1486 0, |
1487 clock_, | 1487 clock_, |
1488 "www.example.org", | 1488 "www.example.org", |
1489 Perspective::IS_SERVER), | 1489 Perspective::IS_SERVER), |
1490 random_generator_(0), | 1490 random_generator_(0), |
1491 proxy_service_(ProxyService::CreateDirect()), | 1491 proxy_service_(ProxyService::CreateDirect()), |
1492 ssl_config_service_(new SSLConfigServiceDefaults) { | 1492 ssl_config_service_(new SSLConfigServiceDefaults) { |
1493 clock_->AdvanceTime(QuicTime::Delta::FromMilliseconds(20)); | 1493 clock_->AdvanceTime(QuicTime::Delta::FromMilliseconds(20)); |
1494 } | 1494 } |
1495 | 1495 |
| 1496 void TearDown() override { session_.reset(); } |
| 1497 |
1496 // Disable bidirectional stream over QUIC. This should be invoked before | 1498 // Disable bidirectional stream over QUIC. This should be invoked before |
1497 // Initialize(). | 1499 // Initialize(). |
1498 void DisableQuicBidirectionalStream() { | 1500 void DisableQuicBidirectionalStream() { |
1499 params_.quic_disable_bidirectional_streams = true; | 1501 params_.quic_disable_bidirectional_streams = true; |
1500 } | 1502 } |
1501 | 1503 |
1502 void Initialize() { | 1504 void Initialize() { |
1503 params_.enable_quic = true; | 1505 params_.enable_quic = true; |
1504 params_.http_server_properties = http_server_properties_.GetWeakPtr(); | 1506 params_.http_server_properties = &http_server_properties_; |
1505 params_.quic_host_whitelist.insert("www.example.org"); | 1507 params_.quic_host_whitelist.insert("www.example.org"); |
1506 params_.quic_random = &random_generator_; | 1508 params_.quic_random = &random_generator_; |
1507 params_.quic_clock = clock_; | 1509 params_.quic_clock = clock_; |
1508 | 1510 |
1509 // Load a certificate that is valid for *.example.org | 1511 // Load a certificate that is valid for *.example.org |
1510 scoped_refptr<X509Certificate> test_cert( | 1512 scoped_refptr<X509Certificate> test_cert( |
1511 ImportCertFromFile(GetTestCertsDirectory(), "wildcard.pem")); | 1513 ImportCertFromFile(GetTestCertsDirectory(), "wildcard.pem")); |
1512 EXPECT_TRUE(test_cert.get()); | 1514 EXPECT_TRUE(test_cert.get()); |
1513 verify_details_.cert_verify_result.verified_cert = test_cert; | 1515 verify_details_.cert_verify_result.verified_cert = test_cert; |
1514 verify_details_.cert_verify_result.is_issued_by_known_root = true; | 1516 verify_details_.cert_verify_result.is_issued_by_known_root = true; |
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2006 session->GetTransportSocketPool( | 2008 session->GetTransportSocketPool( |
2007 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); | 2009 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); |
2008 EXPECT_EQ(1, GetSocketPoolGroupCount( | 2010 EXPECT_EQ(1, GetSocketPoolGroupCount( |
2009 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); | 2011 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); |
2010 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); | 2012 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); |
2011 } | 2013 } |
2012 | 2014 |
2013 } // namespace | 2015 } // namespace |
2014 | 2016 |
2015 } // namespace net | 2017 } // namespace net |
OLD | NEW |