| 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 546 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1489 0, | 1489 0, |
| 1490 clock_, | 1490 clock_, |
| 1491 "www.example.org", | 1491 "www.example.org", |
| 1492 Perspective::IS_SERVER), | 1492 Perspective::IS_SERVER), |
| 1493 random_generator_(0), | 1493 random_generator_(0), |
| 1494 proxy_service_(ProxyService::CreateDirect()), | 1494 proxy_service_(ProxyService::CreateDirect()), |
| 1495 ssl_config_service_(new SSLConfigServiceDefaults) { | 1495 ssl_config_service_(new SSLConfigServiceDefaults) { |
| 1496 clock_->AdvanceTime(QuicTime::Delta::FromMilliseconds(20)); | 1496 clock_->AdvanceTime(QuicTime::Delta::FromMilliseconds(20)); |
| 1497 } | 1497 } |
| 1498 | 1498 |
| 1499 void TearDown() override { session_.reset(); } |
| 1500 |
| 1499 // Disable bidirectional stream over QUIC. This should be invoked before | 1501 // Disable bidirectional stream over QUIC. This should be invoked before |
| 1500 // Initialize(). | 1502 // Initialize(). |
| 1501 void DisableQuicBidirectionalStream() { | 1503 void DisableQuicBidirectionalStream() { |
| 1502 params_.quic_disable_bidirectional_streams = true; | 1504 params_.quic_disable_bidirectional_streams = true; |
| 1503 } | 1505 } |
| 1504 | 1506 |
| 1505 void Initialize() { | 1507 void Initialize() { |
| 1506 params_.enable_quic = true; | 1508 params_.enable_quic = true; |
| 1507 params_.http_server_properties = http_server_properties_.GetWeakPtr(); | 1509 params_.http_server_properties = &http_server_properties_; |
| 1508 params_.quic_host_whitelist.insert("www.example.org"); | 1510 params_.quic_host_whitelist.insert("www.example.org"); |
| 1509 params_.quic_random = &random_generator_; | 1511 params_.quic_random = &random_generator_; |
| 1510 params_.quic_clock = clock_; | 1512 params_.quic_clock = clock_; |
| 1511 | 1513 |
| 1512 // Load a certificate that is valid for *.example.org | 1514 // Load a certificate that is valid for *.example.org |
| 1513 scoped_refptr<X509Certificate> test_cert( | 1515 scoped_refptr<X509Certificate> test_cert( |
| 1514 ImportCertFromFile(GetTestCertsDirectory(), "wildcard.pem")); | 1516 ImportCertFromFile(GetTestCertsDirectory(), "wildcard.pem")); |
| 1515 EXPECT_TRUE(test_cert.get()); | 1517 EXPECT_TRUE(test_cert.get()); |
| 1516 verify_details_.cert_verify_result.verified_cert = test_cert; | 1518 verify_details_.cert_verify_result.verified_cert = test_cert; |
| 1517 verify_details_.cert_verify_result.is_issued_by_known_root = true; | 1519 verify_details_.cert_verify_result.is_issued_by_known_root = true; |
| (...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2016 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); | 2018 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); |
| 2017 | 2019 |
| 2018 // Make sure there is no orphaned job. it is already canceled. | 2020 // Make sure there is no orphaned job. it is already canceled. |
| 2019 ASSERT_EQ(0u, static_cast<HttpStreamFactoryImpl*>( | 2021 ASSERT_EQ(0u, static_cast<HttpStreamFactoryImpl*>( |
| 2020 session->http_stream_factory_for_websocket())->num_orphaned_jobs()); | 2022 session->http_stream_factory_for_websocket())->num_orphaned_jobs()); |
| 2021 } | 2023 } |
| 2022 | 2024 |
| 2023 } // namespace | 2025 } // namespace |
| 2024 | 2026 |
| 2025 } // namespace net | 2027 } // namespace net |
| OLD | NEW |