| 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 484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 495 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 496 session_deps.transport_security_state.get(), | 496 session_deps.transport_security_state.get(), |
| 497 session_deps.cert_transparency_verifier.get(), | 497 session_deps.cert_transparency_verifier.get(), |
| 498 session_deps.ct_policy_enforcer.get()); | 498 session_deps.ct_policy_enforcer.get()); |
| 499 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 499 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
| 500 new CapturePreconnectsSSLSocketPool( | 500 new CapturePreconnectsSSLSocketPool( |
| 501 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 501 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 502 session_deps.transport_security_state.get(), | 502 session_deps.transport_security_state.get(), |
| 503 session_deps.cert_transparency_verifier.get(), | 503 session_deps.cert_transparency_verifier.get(), |
| 504 session_deps.ct_policy_enforcer.get()); | 504 session_deps.ct_policy_enforcer.get()); |
| 505 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 505 auto mock_pool_manager = base::MakeUnique<MockClientSocketPoolManager>(); |
| 506 new MockClientSocketPoolManager); | |
| 507 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); | 506 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); |
| 508 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); | 507 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); |
| 509 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 508 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 510 PreconnectHelper(kTests[i], session.get()); | 509 PreconnectHelper(kTests[i], session.get()); |
| 511 if (kTests[i].ssl) | 510 if (kTests[i].ssl) |
| 512 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); | 511 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); |
| 513 else | 512 else |
| 514 EXPECT_EQ(kTests[i].num_streams, transport_conn_pool->last_num_streams()); | 513 EXPECT_EQ(kTests[i].num_streams, transport_conn_pool->last_num_streams()); |
| 515 } | 514 } |
| 516 } | 515 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 528 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 527 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 529 session_deps.transport_security_state.get(), | 528 session_deps.transport_security_state.get(), |
| 530 session_deps.cert_transparency_verifier.get(), | 529 session_deps.cert_transparency_verifier.get(), |
| 531 session_deps.ct_policy_enforcer.get()); | 530 session_deps.ct_policy_enforcer.get()); |
| 532 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 531 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
| 533 new CapturePreconnectsSSLSocketPool( | 532 new CapturePreconnectsSSLSocketPool( |
| 534 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 533 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 535 session_deps.transport_security_state.get(), | 534 session_deps.transport_security_state.get(), |
| 536 session_deps.cert_transparency_verifier.get(), | 535 session_deps.cert_transparency_verifier.get(), |
| 537 session_deps.ct_policy_enforcer.get()); | 536 session_deps.ct_policy_enforcer.get()); |
| 538 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 537 auto mock_pool_manager = base::MakeUnique<MockClientSocketPoolManager>(); |
| 539 new MockClientSocketPoolManager); | |
| 540 mock_pool_manager->SetSocketPoolForHTTPProxy( | 538 mock_pool_manager->SetSocketPoolForHTTPProxy( |
| 541 proxy_host, base::WrapUnique(http_proxy_pool)); | 539 proxy_host, base::WrapUnique(http_proxy_pool)); |
| 542 mock_pool_manager->SetSocketPoolForSSLWithProxy( | 540 mock_pool_manager->SetSocketPoolForSSLWithProxy( |
| 543 proxy_host, base::WrapUnique(ssl_conn_pool)); | 541 proxy_host, base::WrapUnique(ssl_conn_pool)); |
| 544 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 542 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 545 PreconnectHelper(kTests[i], session.get()); | 543 PreconnectHelper(kTests[i], session.get()); |
| 546 if (kTests[i].ssl) | 544 if (kTests[i].ssl) |
| 547 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); | 545 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); |
| 548 else | 546 else |
| 549 EXPECT_EQ(kTests[i].num_streams, http_proxy_pool->last_num_streams()); | 547 EXPECT_EQ(kTests[i].num_streams, http_proxy_pool->last_num_streams()); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 563 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 561 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 564 session_deps.transport_security_state.get(), | 562 session_deps.transport_security_state.get(), |
| 565 session_deps.cert_transparency_verifier.get(), | 563 session_deps.cert_transparency_verifier.get(), |
| 566 session_deps.ct_policy_enforcer.get()); | 564 session_deps.ct_policy_enforcer.get()); |
| 567 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 565 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
| 568 new CapturePreconnectsSSLSocketPool( | 566 new CapturePreconnectsSSLSocketPool( |
| 569 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 567 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 570 session_deps.transport_security_state.get(), | 568 session_deps.transport_security_state.get(), |
| 571 session_deps.cert_transparency_verifier.get(), | 569 session_deps.cert_transparency_verifier.get(), |
| 572 session_deps.ct_policy_enforcer.get()); | 570 session_deps.ct_policy_enforcer.get()); |
| 573 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 571 auto mock_pool_manager = base::MakeUnique<MockClientSocketPoolManager>(); |
| 574 new MockClientSocketPoolManager); | |
| 575 mock_pool_manager->SetSocketPoolForSOCKSProxy( | 572 mock_pool_manager->SetSocketPoolForSOCKSProxy( |
| 576 proxy_host, base::WrapUnique(socks_proxy_pool)); | 573 proxy_host, base::WrapUnique(socks_proxy_pool)); |
| 577 mock_pool_manager->SetSocketPoolForSSLWithProxy( | 574 mock_pool_manager->SetSocketPoolForSSLWithProxy( |
| 578 proxy_host, base::WrapUnique(ssl_conn_pool)); | 575 proxy_host, base::WrapUnique(ssl_conn_pool)); |
| 579 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 576 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 580 PreconnectHelper(kTests[i], session.get()); | 577 PreconnectHelper(kTests[i], session.get()); |
| 581 if (kTests[i].ssl) | 578 if (kTests[i].ssl) |
| 582 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); | 579 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); |
| 583 else | 580 else |
| 584 EXPECT_EQ(kTests[i].num_streams, socks_proxy_pool->last_num_streams()); | 581 EXPECT_EQ(kTests[i].num_streams, socks_proxy_pool->last_num_streams()); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 603 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 600 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 604 session_deps.transport_security_state.get(), | 601 session_deps.transport_security_state.get(), |
| 605 session_deps.cert_transparency_verifier.get(), | 602 session_deps.cert_transparency_verifier.get(), |
| 606 session_deps.ct_policy_enforcer.get()); | 603 session_deps.ct_policy_enforcer.get()); |
| 607 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 604 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
| 608 new CapturePreconnectsSSLSocketPool( | 605 new CapturePreconnectsSSLSocketPool( |
| 609 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 606 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 610 session_deps.transport_security_state.get(), | 607 session_deps.transport_security_state.get(), |
| 611 session_deps.cert_transparency_verifier.get(), | 608 session_deps.cert_transparency_verifier.get(), |
| 612 session_deps.ct_policy_enforcer.get()); | 609 session_deps.ct_policy_enforcer.get()); |
| 613 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 610 auto mock_pool_manager = base::MakeUnique<MockClientSocketPoolManager>(); |
| 614 new MockClientSocketPoolManager); | |
| 615 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); | 611 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); |
| 616 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); | 612 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); |
| 617 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 613 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 618 PreconnectHelper(kTests[i], session.get()); | 614 PreconnectHelper(kTests[i], session.get()); |
| 619 // We shouldn't be preconnecting if we have an existing session, which is | 615 // We shouldn't be preconnecting if we have an existing session, which is |
| 620 // the case for https://www.google.com. | 616 // the case for https://www.google.com. |
| 621 if (kTests[i].ssl) | 617 if (kTests[i].ssl) |
| 622 EXPECT_EQ(-1, ssl_conn_pool->last_num_streams()); | 618 EXPECT_EQ(-1, ssl_conn_pool->last_num_streams()); |
| 623 else | 619 else |
| 624 EXPECT_EQ(kTests[i].num_streams, | 620 EXPECT_EQ(kTests[i].num_streams, |
| 625 transport_conn_pool->last_num_streams()); | 621 transport_conn_pool->last_num_streams()); |
| 626 } | 622 } |
| 627 } | 623 } |
| 628 | 624 |
| 629 // Verify that preconnects to unsafe ports are cancelled before they reach | 625 // Verify that preconnects to unsafe ports are cancelled before they reach |
| 630 // the SocketPool. | 626 // the SocketPool. |
| 631 TEST_F(HttpStreamFactoryTest, PreconnectUnsafePort) { | 627 TEST_F(HttpStreamFactoryTest, PreconnectUnsafePort) { |
| 632 ASSERT_FALSE(IsPortAllowedForScheme(7, "http")); | 628 ASSERT_FALSE(IsPortAllowedForScheme(7, "http")); |
| 633 | 629 |
| 634 SpdySessionDependencies session_deps(ProxyService::CreateDirect()); | 630 SpdySessionDependencies session_deps(ProxyService::CreateDirect()); |
| 635 std::unique_ptr<HttpNetworkSession> session( | 631 std::unique_ptr<HttpNetworkSession> session( |
| 636 SpdySessionDependencies::SpdyCreateSession(&session_deps)); | 632 SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
| 637 HttpNetworkSessionPeer peer(session.get()); | 633 HttpNetworkSessionPeer peer(session.get()); |
| 638 CapturePreconnectsTransportSocketPool* transport_conn_pool = | 634 CapturePreconnectsTransportSocketPool* transport_conn_pool = |
| 639 new CapturePreconnectsTransportSocketPool( | 635 new CapturePreconnectsTransportSocketPool( |
| 640 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 636 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 641 session_deps.transport_security_state.get(), | 637 session_deps.transport_security_state.get(), |
| 642 session_deps.cert_transparency_verifier.get(), | 638 session_deps.cert_transparency_verifier.get(), |
| 643 session_deps.ct_policy_enforcer.get()); | 639 session_deps.ct_policy_enforcer.get()); |
| 644 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 640 auto mock_pool_manager = base::MakeUnique<MockClientSocketPoolManager>(); |
| 645 new MockClientSocketPoolManager); | |
| 646 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); | 641 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); |
| 647 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 642 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 648 | 643 |
| 649 PreconnectHelperForURL(1, GURL("http://www.google.com:7"), session.get()); | 644 PreconnectHelperForURL(1, GURL("http://www.google.com:7"), session.get()); |
| 650 EXPECT_EQ(-1, transport_conn_pool->last_num_streams()); | 645 EXPECT_EQ(-1, transport_conn_pool->last_num_streams()); |
| 651 } | 646 } |
| 652 | 647 |
| 653 TEST_F(HttpStreamFactoryTest, JobNotifiesProxy) { | 648 TEST_F(HttpStreamFactoryTest, JobNotifiesProxy) { |
| 654 const char* kProxyString = "PROXY bad:99; PROXY maybe:80; DIRECT"; | 649 const char* kProxyString = "PROXY bad:99; PROXY maybe:80; DIRECT"; |
| 655 SpdySessionDependencies session_deps( | 650 SpdySessionDependencies session_deps( |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 732 TransportSecurityState transport_security_state; | 727 TransportSecurityState transport_security_state; |
| 733 params.transport_security_state = &transport_security_state; | 728 params.transport_security_state = &transport_security_state; |
| 734 MultiLogCTVerifier ct_verifier; | 729 MultiLogCTVerifier ct_verifier; |
| 735 params.cert_transparency_verifier = &ct_verifier; | 730 params.cert_transparency_verifier = &ct_verifier; |
| 736 CTPolicyEnforcer ct_policy_enforcer; | 731 CTPolicyEnforcer ct_policy_enforcer; |
| 737 params.ct_policy_enforcer = &ct_policy_enforcer; | 732 params.ct_policy_enforcer = &ct_policy_enforcer; |
| 738 params.proxy_service = proxy_service.get(); | 733 params.proxy_service = proxy_service.get(); |
| 739 params.ssl_config_service = ssl_config_service.get(); | 734 params.ssl_config_service = ssl_config_service.get(); |
| 740 params.http_server_properties = &http_server_properties; | 735 params.http_server_properties = &http_server_properties; |
| 741 | 736 |
| 742 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); | 737 auto session = base::MakeUnique<HttpNetworkSession>(params); |
| 743 session->quic_stream_factory()->set_require_confirmation(false); | 738 session->quic_stream_factory()->set_require_confirmation(false); |
| 744 | 739 |
| 745 StaticSocketDataProvider socket_data1; | 740 StaticSocketDataProvider socket_data1; |
| 746 socket_data1.set_connect_data( | 741 socket_data1.set_connect_data( |
| 747 MockConnect(ASYNC, quic_proxy_test_mock_errors[i])); | 742 MockConnect(ASYNC, quic_proxy_test_mock_errors[i])); |
| 748 socket_factory.AddSocketDataProvider(&socket_data1); | 743 socket_factory.AddSocketDataProvider(&socket_data1); |
| 749 | 744 |
| 750 // Second connection attempt succeeds. | 745 // Second connection attempt succeeds. |
| 751 StaticSocketDataProvider socket_data2; | 746 StaticSocketDataProvider socket_data2; |
| 752 socket_data2.set_connect_data(MockConnect(ASYNC, OK)); | 747 socket_data2.set_connect_data(MockConnect(ASYNC, OK)); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 822 | 817 |
| 823 void AddWrite(std::unique_ptr<QuicEncryptedPacket> packet) { | 818 void AddWrite(std::unique_ptr<QuicEncryptedPacket> packet) { |
| 824 writes_.push_back(MockWrite(SYNCHRONOUS, packet->data(), packet->length(), | 819 writes_.push_back(MockWrite(SYNCHRONOUS, packet->data(), packet->length(), |
| 825 packet_number_++)); | 820 packet_number_++)); |
| 826 packets_.push_back(std::move(packet)); | 821 packets_.push_back(std::move(packet)); |
| 827 } | 822 } |
| 828 | 823 |
| 829 void AddSocketDataToFactory(MockClientSocketFactory* factory) { | 824 void AddSocketDataToFactory(MockClientSocketFactory* factory) { |
| 830 MockRead* reads = reads_.empty() ? nullptr : &reads_[0]; | 825 MockRead* reads = reads_.empty() ? nullptr : &reads_[0]; |
| 831 MockWrite* writes = writes_.empty() ? nullptr : &writes_[0]; | 826 MockWrite* writes = writes_.empty() ? nullptr : &writes_[0]; |
| 832 socket_data_.reset( | 827 socket_data_ = base::MakeUnique<SequencedSocketData>( |
| 833 new SequencedSocketData(reads, reads_.size(), writes, writes_.size())); | 828 reads, reads_.size(), writes, writes_.size()); |
| 834 factory->AddSocketDataProvider(socket_data_.get()); | 829 factory->AddSocketDataProvider(socket_data_.get()); |
| 835 } | 830 } |
| 836 | 831 |
| 837 private: | 832 private: |
| 838 std::vector<std::unique_ptr<QuicEncryptedPacket>> packets_; | 833 std::vector<std::unique_ptr<QuicEncryptedPacket>> packets_; |
| 839 std::vector<MockWrite> writes_; | 834 std::vector<MockWrite> writes_; |
| 840 std::vector<MockRead> reads_; | 835 std::vector<MockRead> reads_; |
| 841 size_t packet_number_; | 836 size_t packet_number_; |
| 842 std::unique_ptr<SequencedSocketData> socket_data_; | 837 std::unique_ptr<SequencedSocketData> socket_data_; |
| 843 }; | 838 }; |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 899 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service( | 894 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service( |
| 900 new SSLConfigServiceDefaults); | 895 new SSLConfigServiceDefaults); |
| 901 MockHostResolver host_resolver; | 896 MockHostResolver host_resolver; |
| 902 TransportSecurityState transport_security_state; | 897 TransportSecurityState transport_security_state; |
| 903 SetupForQuicAlternativeProxyTest( | 898 SetupForQuicAlternativeProxyTest( |
| 904 ¶ms, &socket_factory, proxy_service.get(), &test_proxy_delegate, | 899 ¶ms, &socket_factory, proxy_service.get(), &test_proxy_delegate, |
| 905 &http_server_properties, &cert_verifier, &ct_policy_enforcer, | 900 &http_server_properties, &cert_verifier, &ct_policy_enforcer, |
| 906 &ct_verifier, ssl_config_service.get(), &host_resolver, | 901 &ct_verifier, ssl_config_service.get(), &host_resolver, |
| 907 &transport_security_state, set_alternative_proxy_server); | 902 &transport_security_state, set_alternative_proxy_server); |
| 908 | 903 |
| 909 std::unique_ptr<HttpNetworkSession> session( | 904 auto session = base::MakeUnique<HttpNetworkSession>(params); |
| 910 new HttpNetworkSession(params)); | |
| 911 | 905 |
| 912 // Before starting the test, verify that there are no proxies marked as | 906 // Before starting the test, verify that there are no proxies marked as |
| 913 // bad. | 907 // bad. |
| 914 ASSERT_TRUE(session->proxy_service()->proxy_retry_info().empty()) | 908 ASSERT_TRUE(session->proxy_service()->proxy_retry_info().empty()) |
| 915 << mock_error; | 909 << mock_error; |
| 916 | 910 |
| 917 StaticSocketDataProvider socket_data_proxy_main_job; | 911 StaticSocketDataProvider socket_data_proxy_main_job; |
| 918 socket_data_proxy_main_job.set_connect_data( | 912 socket_data_proxy_main_job.set_connect_data( |
| 919 MockConnect(ASYNC, mock_error)); | 913 MockConnect(ASYNC, mock_error)); |
| 920 socket_factory.AddSocketDataProvider(&socket_data_proxy_main_job); | 914 socket_factory.AddSocketDataProvider(&socket_data_proxy_main_job); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1020 MockHostResolver host_resolver; | 1014 MockHostResolver host_resolver; |
| 1021 TransportSecurityState transport_security_state; | 1015 TransportSecurityState transport_security_state; |
| 1022 | 1016 |
| 1023 SetupForQuicAlternativeProxyTest( | 1017 SetupForQuicAlternativeProxyTest( |
| 1024 ¶ms, &socket_factory, proxy_service.get(), &test_proxy_delegate, | 1018 ¶ms, &socket_factory, proxy_service.get(), &test_proxy_delegate, |
| 1025 &http_server_properties, &cert_verifier, &ct_policy_enforcer, | 1019 &http_server_properties, &cert_verifier, &ct_policy_enforcer, |
| 1026 &ct_verifier, ssl_config_service.get(), &host_resolver, | 1020 &ct_verifier, ssl_config_service.get(), &host_resolver, |
| 1027 &transport_security_state, true); | 1021 &transport_security_state, true); |
| 1028 | 1022 |
| 1029 HostPortPair host_port_pair("badproxy", 99); | 1023 HostPortPair host_port_pair("badproxy", 99); |
| 1030 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); | 1024 auto session = base::MakeUnique<HttpNetworkSession>(params); |
| 1031 | 1025 |
| 1032 // Before starting the test, verify that there are no proxies marked as | 1026 // Before starting the test, verify that there are no proxies marked as |
| 1033 // bad. | 1027 // bad. |
| 1034 ASSERT_TRUE(session->proxy_service()->proxy_retry_info().empty()) | 1028 ASSERT_TRUE(session->proxy_service()->proxy_retry_info().empty()) |
| 1035 << mock_error; | 1029 << mock_error; |
| 1036 | 1030 |
| 1037 StaticSocketDataProvider socket_data_proxy_main_job; | 1031 StaticSocketDataProvider socket_data_proxy_main_job; |
| 1038 socket_data_proxy_main_job.set_connect_data(MockConnect(ASYNC, mock_error)); | 1032 socket_data_proxy_main_job.set_connect_data(MockConnect(ASYNC, mock_error)); |
| 1039 socket_factory.AddSocketDataProvider(&socket_data_proxy_main_job); | 1033 socket_factory.AddSocketDataProvider(&socket_data_proxy_main_job); |
| 1040 | 1034 |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1117 | 1111 |
| 1118 SpdySessionDependencies session_deps( | 1112 SpdySessionDependencies session_deps( |
| 1119 ProxyService::CreateFixed("http_proxy")); | 1113 ProxyService::CreateFixed("http_proxy")); |
| 1120 | 1114 |
| 1121 // Setup params to disable preconnect, but QUIC doesn't 0RTT. | 1115 // Setup params to disable preconnect, but QUIC doesn't 0RTT. |
| 1122 HttpNetworkSession::Params params = | 1116 HttpNetworkSession::Params params = |
| 1123 SpdySessionDependencies::CreateSessionParams(&session_deps); | 1117 SpdySessionDependencies::CreateSessionParams(&session_deps); |
| 1124 params.enable_quic = true; | 1118 params.enable_quic = true; |
| 1125 params.http_server_properties = &http_server_properties; | 1119 params.http_server_properties = &http_server_properties; |
| 1126 | 1120 |
| 1127 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); | 1121 auto session = base::MakeUnique<HttpNetworkSession>(params); |
| 1128 HttpNetworkSessionPeer peer(session.get()); | 1122 HttpNetworkSessionPeer peer(session.get()); |
| 1129 HostPortPair proxy_host("http_proxy", 80); | 1123 HostPortPair proxy_host("http_proxy", 80); |
| 1130 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = | 1124 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = |
| 1131 new CapturePreconnectsHttpProxySocketPool( | 1125 new CapturePreconnectsHttpProxySocketPool( |
| 1132 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 1126 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 1133 session_deps.transport_security_state.get(), | 1127 session_deps.transport_security_state.get(), |
| 1134 session_deps.cert_transparency_verifier.get(), | 1128 session_deps.cert_transparency_verifier.get(), |
| 1135 session_deps.ct_policy_enforcer.get()); | 1129 session_deps.ct_policy_enforcer.get()); |
| 1136 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 1130 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
| 1137 new CapturePreconnectsSSLSocketPool( | 1131 new CapturePreconnectsSSLSocketPool( |
| 1138 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 1132 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 1139 session_deps.transport_security_state.get(), | 1133 session_deps.transport_security_state.get(), |
| 1140 session_deps.cert_transparency_verifier.get(), | 1134 session_deps.cert_transparency_verifier.get(), |
| 1141 session_deps.ct_policy_enforcer.get()); | 1135 session_deps.ct_policy_enforcer.get()); |
| 1142 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 1136 auto mock_pool_manager = base::MakeUnique<MockClientSocketPoolManager>(); |
| 1143 new MockClientSocketPoolManager); | |
| 1144 mock_pool_manager->SetSocketPoolForHTTPProxy( | 1137 mock_pool_manager->SetSocketPoolForHTTPProxy( |
| 1145 proxy_host, base::WrapUnique(http_proxy_pool)); | 1138 proxy_host, base::WrapUnique(http_proxy_pool)); |
| 1146 mock_pool_manager->SetSocketPoolForSSLWithProxy( | 1139 mock_pool_manager->SetSocketPoolForSSLWithProxy( |
| 1147 proxy_host, base::WrapUnique(ssl_conn_pool)); | 1140 proxy_host, base::WrapUnique(ssl_conn_pool)); |
| 1148 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 1141 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 1149 PreconnectHelperForURL(num_streams, url, session.get()); | 1142 PreconnectHelperForURL(num_streams, url, session.get()); |
| 1150 EXPECT_EQ(num_streams, ssl_conn_pool->last_num_streams()); | 1143 EXPECT_EQ(num_streams, ssl_conn_pool->last_num_streams()); |
| 1151 } | 1144 } |
| 1152 } | 1145 } |
| 1153 | 1146 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1168 http_server_properties.SetSupportsSpdy(spdy_server, true); | 1161 http_server_properties.SetSupportsSpdy(spdy_server, true); |
| 1169 } | 1162 } |
| 1170 | 1163 |
| 1171 SpdySessionDependencies session_deps; | 1164 SpdySessionDependencies session_deps; |
| 1172 HttpNetworkSession::Params params = | 1165 HttpNetworkSession::Params params = |
| 1173 SpdySessionDependencies::CreateSessionParams(&session_deps); | 1166 SpdySessionDependencies::CreateSessionParams(&session_deps); |
| 1174 params.enable_quic = true; | 1167 params.enable_quic = true; |
| 1175 params.proxy_service = proxy_service.get(); | 1168 params.proxy_service = proxy_service.get(); |
| 1176 params.http_server_properties = &http_server_properties; | 1169 params.http_server_properties = &http_server_properties; |
| 1177 | 1170 |
| 1178 std::unique_ptr<HttpNetworkSession> session( | 1171 auto session = base::MakeUnique<HttpNetworkSession>(params); |
| 1179 new HttpNetworkSession(params)); | |
| 1180 | 1172 |
| 1181 HttpNetworkSessionPeer peer(session.get()); | 1173 HttpNetworkSessionPeer peer(session.get()); |
| 1182 HostPortPair proxy_host("myproxy.org", 443); | 1174 HostPortPair proxy_host("myproxy.org", 443); |
| 1183 | 1175 |
| 1184 for (int preconnect_request = 0; preconnect_request < 2; | 1176 for (int preconnect_request = 0; preconnect_request < 2; |
| 1185 ++preconnect_request) { | 1177 ++preconnect_request) { |
| 1186 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = | 1178 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = |
| 1187 new CapturePreconnectsHttpProxySocketPool( | 1179 new CapturePreconnectsHttpProxySocketPool( |
| 1188 session_deps.host_resolver.get(), | 1180 session_deps.host_resolver.get(), |
| 1189 session_deps.cert_verifier.get(), | 1181 session_deps.cert_verifier.get(), |
| 1190 session_deps.transport_security_state.get(), | 1182 session_deps.transport_security_state.get(), |
| 1191 session_deps.cert_transparency_verifier.get(), | 1183 session_deps.cert_transparency_verifier.get(), |
| 1192 session_deps.ct_policy_enforcer.get()); | 1184 session_deps.ct_policy_enforcer.get()); |
| 1193 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 1185 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
| 1194 new CapturePreconnectsSSLSocketPool( | 1186 new CapturePreconnectsSSLSocketPool( |
| 1195 session_deps.host_resolver.get(), | 1187 session_deps.host_resolver.get(), |
| 1196 session_deps.cert_verifier.get(), | 1188 session_deps.cert_verifier.get(), |
| 1197 session_deps.transport_security_state.get(), | 1189 session_deps.transport_security_state.get(), |
| 1198 session_deps.cert_transparency_verifier.get(), | 1190 session_deps.cert_transparency_verifier.get(), |
| 1199 session_deps.ct_policy_enforcer.get()); | 1191 session_deps.ct_policy_enforcer.get()); |
| 1200 | 1192 |
| 1201 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 1193 auto mock_pool_manager = |
| 1202 new MockClientSocketPoolManager); | 1194 base::MakeUnique<MockClientSocketPoolManager>(); |
| 1203 mock_pool_manager->SetSocketPoolForHTTPProxy( | 1195 mock_pool_manager->SetSocketPoolForHTTPProxy( |
| 1204 proxy_host, base::WrapUnique(http_proxy_pool)); | 1196 proxy_host, base::WrapUnique(http_proxy_pool)); |
| 1205 mock_pool_manager->SetSocketPoolForSSLWithProxy( | 1197 mock_pool_manager->SetSocketPoolForSSLWithProxy( |
| 1206 proxy_host, base::WrapUnique(ssl_conn_pool)); | 1198 proxy_host, base::WrapUnique(ssl_conn_pool)); |
| 1207 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 1199 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 1208 | 1200 |
| 1209 HttpRequestInfo request; | 1201 HttpRequestInfo request; |
| 1210 request.method = "GET"; | 1202 request.method = "GET"; |
| 1211 request.url = url; | 1203 request.url = url; |
| 1212 request.load_flags = 0; | 1204 request.load_flags = 0; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1257 url::SchemeHostPort spdy_server("https", "myproxy.org", 443); | 1249 url::SchemeHostPort spdy_server("https", "myproxy.org", 443); |
| 1258 http_server_properties.SetSupportsSpdy(spdy_server, true); | 1250 http_server_properties.SetSupportsSpdy(spdy_server, true); |
| 1259 | 1251 |
| 1260 SpdySessionDependencies session_deps; | 1252 SpdySessionDependencies session_deps; |
| 1261 HttpNetworkSession::Params params = | 1253 HttpNetworkSession::Params params = |
| 1262 SpdySessionDependencies::CreateSessionParams(&session_deps); | 1254 SpdySessionDependencies::CreateSessionParams(&session_deps); |
| 1263 params.enable_quic = true; | 1255 params.enable_quic = true; |
| 1264 params.proxy_service = proxy_service.get(); | 1256 params.proxy_service = proxy_service.get(); |
| 1265 params.http_server_properties = &http_server_properties; | 1257 params.http_server_properties = &http_server_properties; |
| 1266 | 1258 |
| 1267 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); | 1259 auto session = base::MakeUnique<HttpNetworkSession>(params); |
| 1268 | 1260 |
| 1269 HttpNetworkSessionPeer peer(session.get()); | 1261 HttpNetworkSessionPeer peer(session.get()); |
| 1270 HostPortPair proxy_host("myproxy.org", 443); | 1262 HostPortPair proxy_host("myproxy.org", 443); |
| 1271 | 1263 |
| 1272 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = | 1264 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = |
| 1273 new CapturePreconnectsHttpProxySocketPool( | 1265 new CapturePreconnectsHttpProxySocketPool( |
| 1274 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 1266 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 1275 session_deps.transport_security_state.get(), | 1267 session_deps.transport_security_state.get(), |
| 1276 session_deps.cert_transparency_verifier.get(), | 1268 session_deps.cert_transparency_verifier.get(), |
| 1277 session_deps.ct_policy_enforcer.get()); | 1269 session_deps.ct_policy_enforcer.get()); |
| 1278 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 1270 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
| 1279 new CapturePreconnectsSSLSocketPool( | 1271 new CapturePreconnectsSSLSocketPool( |
| 1280 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), | 1272 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 1281 session_deps.transport_security_state.get(), | 1273 session_deps.transport_security_state.get(), |
| 1282 session_deps.cert_transparency_verifier.get(), | 1274 session_deps.cert_transparency_verifier.get(), |
| 1283 session_deps.ct_policy_enforcer.get()); | 1275 session_deps.ct_policy_enforcer.get()); |
| 1284 | 1276 |
| 1285 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 1277 auto mock_pool_manager = base::MakeUnique<MockClientSocketPoolManager>(); |
| 1286 new MockClientSocketPoolManager); | |
| 1287 mock_pool_manager->SetSocketPoolForHTTPProxy( | 1278 mock_pool_manager->SetSocketPoolForHTTPProxy( |
| 1288 proxy_host, base::WrapUnique(http_proxy_pool)); | 1279 proxy_host, base::WrapUnique(http_proxy_pool)); |
| 1289 mock_pool_manager->SetSocketPoolForSSLWithProxy( | 1280 mock_pool_manager->SetSocketPoolForSSLWithProxy( |
| 1290 proxy_host, base::WrapUnique(ssl_conn_pool)); | 1281 proxy_host, base::WrapUnique(ssl_conn_pool)); |
| 1291 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 1282 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 1292 | 1283 |
| 1293 HttpRequestInfo request_privacy_mode_disabled; | 1284 HttpRequestInfo request_privacy_mode_disabled; |
| 1294 request_privacy_mode_disabled.method = "GET"; | 1285 request_privacy_mode_disabled.method = "GET"; |
| 1295 request_privacy_mode_disabled.url = url; | 1286 request_privacy_mode_disabled.url = url; |
| 1296 request_privacy_mode_disabled.load_flags = 0; | 1287 request_privacy_mode_disabled.load_flags = 0; |
| (...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1673 EXPECT_FALSE(waiter.used_proxy_info().is_direct()); | 1664 EXPECT_FALSE(waiter.used_proxy_info().is_direct()); |
| 1674 } | 1665 } |
| 1675 | 1666 |
| 1676 // Verifies that once a stream has been created to a proxy server (that supports | 1667 // Verifies that once a stream has been created to a proxy server (that supports |
| 1677 // request priorities) the next preconnect job can again open new sockets. | 1668 // request priorities) the next preconnect job can again open new sockets. |
| 1678 TEST_F(HttpStreamFactoryTest, RequestHttpStreamOverProxyWithPreconnects) { | 1669 TEST_F(HttpStreamFactoryTest, RequestHttpStreamOverProxyWithPreconnects) { |
| 1679 SpdySessionDependencies session_deps( | 1670 SpdySessionDependencies session_deps( |
| 1680 ProxyService::CreateFixed("https://myproxy.org:443")); | 1671 ProxyService::CreateFixed("https://myproxy.org:443")); |
| 1681 | 1672 |
| 1682 // Set up the proxy server as a server that supports request priorities. | 1673 // Set up the proxy server as a server that supports request priorities. |
| 1683 std::unique_ptr<HttpServerPropertiesImpl> http_server_properties( | 1674 auto http_server_properties = base::MakeUnique<HttpServerPropertiesImpl>(); |
| 1684 new HttpServerPropertiesImpl()); | |
| 1685 url::SchemeHostPort spdy_server("https", "myproxy.org", 443); | 1675 url::SchemeHostPort spdy_server("https", "myproxy.org", 443); |
| 1686 http_server_properties->SetSupportsSpdy(spdy_server, true); | 1676 http_server_properties->SetSupportsSpdy(spdy_server, true); |
| 1687 session_deps.http_server_properties = std::move(http_server_properties); | 1677 session_deps.http_server_properties = std::move(http_server_properties); |
| 1688 | 1678 |
| 1689 StaticSocketDataProvider socket_data; | 1679 StaticSocketDataProvider socket_data; |
| 1690 socket_data.set_connect_data(MockConnect(ASYNC, OK)); | 1680 socket_data.set_connect_data(MockConnect(ASYNC, OK)); |
| 1691 session_deps.socket_factory->AddSocketDataProvider(&socket_data); | 1681 session_deps.socket_factory->AddSocketDataProvider(&socket_data); |
| 1692 | 1682 |
| 1693 SSLSocketDataProvider ssl_data(ASYNC, OK); | 1683 SSLSocketDataProvider ssl_data(ASYNC, OK); |
| 1694 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_data); | 1684 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_data); |
| (...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2178 params_.cert_verifier = &cert_verifier_; | 2168 params_.cert_verifier = &cert_verifier_; |
| 2179 params_.quic_crypto_client_stream_factory = &crypto_client_stream_factory_; | 2169 params_.quic_crypto_client_stream_factory = &crypto_client_stream_factory_; |
| 2180 params_.quic_supported_versions = test::SupportedVersions(GetParam()); | 2170 params_.quic_supported_versions = test::SupportedVersions(GetParam()); |
| 2181 params_.transport_security_state = &transport_security_state_; | 2171 params_.transport_security_state = &transport_security_state_; |
| 2182 params_.cert_transparency_verifier = &ct_verifier_; | 2172 params_.cert_transparency_verifier = &ct_verifier_; |
| 2183 params_.ct_policy_enforcer = &ct_policy_enforcer_; | 2173 params_.ct_policy_enforcer = &ct_policy_enforcer_; |
| 2184 params_.host_resolver = &host_resolver_; | 2174 params_.host_resolver = &host_resolver_; |
| 2185 params_.proxy_service = proxy_service_.get(); | 2175 params_.proxy_service = proxy_service_.get(); |
| 2186 params_.ssl_config_service = ssl_config_service_.get(); | 2176 params_.ssl_config_service = ssl_config_service_.get(); |
| 2187 params_.client_socket_factory = &socket_factory_; | 2177 params_.client_socket_factory = &socket_factory_; |
| 2188 session_.reset(new HttpNetworkSession(params_)); | 2178 session_ = base::MakeUnique<HttpNetworkSession>(params_); |
| 2189 session_->quic_stream_factory()->set_require_confirmation(false); | 2179 session_->quic_stream_factory()->set_require_confirmation(false); |
| 2190 } | 2180 } |
| 2191 | 2181 |
| 2192 void AddQuicAlternativeService() { | 2182 void AddQuicAlternativeService() { |
| 2193 const AlternativeService alternative_service(kProtoQUIC, "www.example.org", | 2183 const AlternativeService alternative_service(kProtoQUIC, "www.example.org", |
| 2194 443); | 2184 443); |
| 2195 AlternativeServiceInfoVector alternative_service_info_vector; | 2185 AlternativeServiceInfoVector alternative_service_info_vector; |
| 2196 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 2186 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 2197 alternative_service_info_vector.push_back( | 2187 alternative_service_info_vector.push_back( |
| 2198 AlternativeServiceInfo(alternative_service, expiration)); | 2188 AlternativeServiceInfo(alternative_service, expiration)); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2257 &spdy_headers_frame_length, &header_stream_offset)); | 2247 &spdy_headers_frame_length, &header_stream_offset)); |
| 2258 size_t spdy_response_headers_frame_length; | 2248 size_t spdy_response_headers_frame_length; |
| 2259 mock_quic_data.AddRead(server_packet_maker().MakeResponseHeadersPacket( | 2249 mock_quic_data.AddRead(server_packet_maker().MakeResponseHeadersPacket( |
| 2260 1, GetNthClientInitiatedStreamId(0), /*should_include_version=*/false, | 2250 1, GetNthClientInitiatedStreamId(0), /*should_include_version=*/false, |
| 2261 /*fin=*/true, server_packet_maker().GetResponseHeaders("200"), | 2251 /*fin=*/true, server_packet_maker().GetResponseHeaders("200"), |
| 2262 &spdy_response_headers_frame_length)); | 2252 &spdy_response_headers_frame_length)); |
| 2263 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more read data. | 2253 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more read data. |
| 2264 mock_quic_data.AddSocketDataToFactory(&socket_factory()); | 2254 mock_quic_data.AddSocketDataToFactory(&socket_factory()); |
| 2265 | 2255 |
| 2266 // Add hanging data for http job. | 2256 // Add hanging data for http job. |
| 2267 std::unique_ptr<StaticSocketDataProvider> hanging_data; | 2257 auto hanging_data = base::MakeUnique<StaticSocketDataProvider>(); |
| 2268 hanging_data.reset(new StaticSocketDataProvider()); | |
| 2269 MockConnect hanging_connect(SYNCHRONOUS, ERR_IO_PENDING); | 2258 MockConnect hanging_connect(SYNCHRONOUS, ERR_IO_PENDING); |
| 2270 hanging_data->set_connect_data(hanging_connect); | 2259 hanging_data->set_connect_data(hanging_connect); |
| 2271 socket_factory().AddSocketDataProvider(hanging_data.get()); | 2260 socket_factory().AddSocketDataProvider(hanging_data.get()); |
| 2272 SSLSocketDataProvider ssl_data(ASYNC, OK); | 2261 SSLSocketDataProvider ssl_data(ASYNC, OK); |
| 2273 socket_factory().AddSSLSocketDataProvider(&ssl_data); | 2262 socket_factory().AddSSLSocketDataProvider(&ssl_data); |
| 2274 | 2263 |
| 2275 // Set up QUIC as alternative_service. | 2264 // Set up QUIC as alternative_service. |
| 2276 AddQuicAlternativeService(); | 2265 AddQuicAlternativeService(); |
| 2277 Initialize(); | 2266 Initialize(); |
| 2278 | 2267 |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2322 EXPECT_EQ(0, GetSocketPoolGroupCount(session()->GetSSLSocketPool( | 2311 EXPECT_EQ(0, GetSocketPoolGroupCount(session()->GetSSLSocketPool( |
| 2323 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); | 2312 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); |
| 2324 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); | 2313 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); |
| 2325 } | 2314 } |
| 2326 | 2315 |
| 2327 // Tests that when QUIC is not enabled for bidirectional streaming, HTTP/2 is | 2316 // Tests that when QUIC is not enabled for bidirectional streaming, HTTP/2 is |
| 2328 // used instead. | 2317 // used instead. |
| 2329 TEST_P(HttpStreamFactoryBidirectionalQuicTest, | 2318 TEST_P(HttpStreamFactoryBidirectionalQuicTest, |
| 2330 RequestBidirectionalStreamImplQuicNotEnabled) { | 2319 RequestBidirectionalStreamImplQuicNotEnabled) { |
| 2331 // Make the http job fail. | 2320 // Make the http job fail. |
| 2332 std::unique_ptr<StaticSocketDataProvider> http_job_data; | 2321 auto http_job_data = base::MakeUnique<StaticSocketDataProvider>(); |
| 2333 http_job_data.reset(new StaticSocketDataProvider()); | |
| 2334 MockConnect failed_connect(ASYNC, ERR_CONNECTION_REFUSED); | 2322 MockConnect failed_connect(ASYNC, ERR_CONNECTION_REFUSED); |
| 2335 http_job_data->set_connect_data(failed_connect); | 2323 http_job_data->set_connect_data(failed_connect); |
| 2336 socket_factory().AddSocketDataProvider(http_job_data.get()); | 2324 socket_factory().AddSocketDataProvider(http_job_data.get()); |
| 2337 SSLSocketDataProvider ssl_data(ASYNC, OK); | 2325 SSLSocketDataProvider ssl_data(ASYNC, OK); |
| 2338 socket_factory().AddSSLSocketDataProvider(&ssl_data); | 2326 socket_factory().AddSSLSocketDataProvider(&ssl_data); |
| 2339 | 2327 |
| 2340 // Set up QUIC as alternative_service. | 2328 // Set up QUIC as alternative_service. |
| 2341 AddQuicAlternativeService(); | 2329 AddQuicAlternativeService(); |
| 2342 DisableQuicBidirectionalStream(); | 2330 DisableQuicBidirectionalStream(); |
| 2343 Initialize(); | 2331 Initialize(); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2385 &spdy_headers_frame_length, &header_stream_offset)); | 2373 &spdy_headers_frame_length, &header_stream_offset)); |
| 2386 size_t spdy_response_headers_frame_length; | 2374 size_t spdy_response_headers_frame_length; |
| 2387 mock_quic_data.AddRead(server_packet_maker().MakeResponseHeadersPacket( | 2375 mock_quic_data.AddRead(server_packet_maker().MakeResponseHeadersPacket( |
| 2388 1, GetNthClientInitiatedStreamId(0), /*should_include_version=*/false, | 2376 1, GetNthClientInitiatedStreamId(0), /*should_include_version=*/false, |
| 2389 /*fin=*/true, server_packet_maker().GetResponseHeaders("200"), | 2377 /*fin=*/true, server_packet_maker().GetResponseHeaders("200"), |
| 2390 &spdy_response_headers_frame_length)); | 2378 &spdy_response_headers_frame_length)); |
| 2391 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more read data. | 2379 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more read data. |
| 2392 mock_quic_data.AddSocketDataToFactory(&socket_factory()); | 2380 mock_quic_data.AddSocketDataToFactory(&socket_factory()); |
| 2393 | 2381 |
| 2394 // Make the http job fail. | 2382 // Make the http job fail. |
| 2395 std::unique_ptr<StaticSocketDataProvider> http_job_data; | 2383 auto http_job_data = base::MakeUnique<StaticSocketDataProvider>(); |
| 2396 http_job_data.reset(new StaticSocketDataProvider()); | |
| 2397 MockConnect failed_connect(ASYNC, ERR_CONNECTION_REFUSED); | 2384 MockConnect failed_connect(ASYNC, ERR_CONNECTION_REFUSED); |
| 2398 http_job_data->set_connect_data(failed_connect); | 2385 http_job_data->set_connect_data(failed_connect); |
| 2399 socket_factory().AddSocketDataProvider(http_job_data.get()); | 2386 socket_factory().AddSocketDataProvider(http_job_data.get()); |
| 2400 SSLSocketDataProvider ssl_data(ASYNC, OK); | 2387 SSLSocketDataProvider ssl_data(ASYNC, OK); |
| 2401 socket_factory().AddSSLSocketDataProvider(&ssl_data); | 2388 socket_factory().AddSSLSocketDataProvider(&ssl_data); |
| 2402 | 2389 |
| 2403 // Set up QUIC as alternative_service. | 2390 // Set up QUIC as alternative_service. |
| 2404 AddQuicAlternativeService(); | 2391 AddQuicAlternativeService(); |
| 2405 Initialize(); | 2392 Initialize(); |
| 2406 | 2393 |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2497 HttpNetworkSession::NORMAL_SOCKET_POOL))); | 2484 HttpNetworkSession::NORMAL_SOCKET_POOL))); |
| 2498 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool( | 2485 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool( |
| 2499 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); | 2486 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); |
| 2500 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool( | 2487 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool( |
| 2501 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); | 2488 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); |
| 2502 } | 2489 } |
| 2503 | 2490 |
| 2504 } // namespace | 2491 } // namespace |
| 2505 | 2492 |
| 2506 } // namespace net | 2493 } // namespace net |
| OLD | NEW |