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 | |
9 #include <string> | 8 #include <string> |
| 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 #include "base/compiler_specific.h" | 12 #include "base/compiler_specific.h" |
13 #include "base/macros.h" | 13 #include "base/macros.h" |
14 #include "net/base/port_util.h" | 14 #include "net/base/port_util.h" |
15 #include "net/base/test_completion_callback.h" | 15 #include "net/base/test_completion_callback.h" |
16 #include "net/cert/mock_cert_verifier.h" | 16 #include "net/cert/mock_cert_verifier.h" |
17 #include "net/dns/mock_host_resolver.h" | 17 #include "net/dns/mock_host_resolver.h" |
18 #include "net/http/http_auth_handler_factory.h" | 18 #include "net/http/http_auth_handler_factory.h" |
19 #include "net/http/http_network_session.h" | 19 #include "net/http/http_network_session.h" |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 | 279 |
280 private: | 280 private: |
281 base::WeakPtr<SpdySession> spdy_session_; | 281 base::WeakPtr<SpdySession> spdy_session_; |
282 }; | 282 }; |
283 | 283 |
284 class WebSocketBasicHandshakeStream : public MockWebSocketHandshakeStream { | 284 class WebSocketBasicHandshakeStream : public MockWebSocketHandshakeStream { |
285 public: | 285 public: |
286 explicit WebSocketBasicHandshakeStream( | 286 explicit WebSocketBasicHandshakeStream( |
287 scoped_ptr<ClientSocketHandle> connection) | 287 scoped_ptr<ClientSocketHandle> connection) |
288 : MockWebSocketHandshakeStream(kStreamTypeBasic), | 288 : MockWebSocketHandshakeStream(kStreamTypeBasic), |
289 connection_(connection.Pass()) {} | 289 connection_(std::move(connection)) {} |
290 | 290 |
291 ~WebSocketBasicHandshakeStream() override { | 291 ~WebSocketBasicHandshakeStream() override { |
292 connection_->socket()->Disconnect(); | 292 connection_->socket()->Disconnect(); |
293 } | 293 } |
294 | 294 |
295 ClientSocketHandle* connection() { return connection_.get(); } | 295 ClientSocketHandle* connection() { return connection_.get(); } |
296 | 296 |
297 private: | 297 private: |
298 scoped_ptr<ClientSocketHandle> connection_; | 298 scoped_ptr<ClientSocketHandle> connection_; |
299 }; | 299 }; |
300 | 300 |
301 class WebSocketStreamCreateHelper | 301 class WebSocketStreamCreateHelper |
302 : public WebSocketHandshakeStreamBase::CreateHelper { | 302 : public WebSocketHandshakeStreamBase::CreateHelper { |
303 public: | 303 public: |
304 ~WebSocketStreamCreateHelper() override {} | 304 ~WebSocketStreamCreateHelper() override {} |
305 | 305 |
306 WebSocketHandshakeStreamBase* CreateBasicStream( | 306 WebSocketHandshakeStreamBase* CreateBasicStream( |
307 scoped_ptr<ClientSocketHandle> connection, | 307 scoped_ptr<ClientSocketHandle> connection, |
308 bool using_proxy) override { | 308 bool using_proxy) override { |
309 return new WebSocketBasicHandshakeStream(connection.Pass()); | 309 return new WebSocketBasicHandshakeStream(std::move(connection)); |
310 } | 310 } |
311 | 311 |
312 WebSocketHandshakeStreamBase* CreateSpdyStream( | 312 WebSocketHandshakeStreamBase* CreateSpdyStream( |
313 const base::WeakPtr<SpdySession>& spdy_session, | 313 const base::WeakPtr<SpdySession>& spdy_session, |
314 bool use_relative_url) override { | 314 bool use_relative_url) override { |
315 return new WebSocketSpdyHandshakeStream(spdy_session); | 315 return new WebSocketSpdyHandshakeStream(spdy_session); |
316 } | 316 } |
317 }; | 317 }; |
318 | 318 |
319 struct TestCase { | 319 struct TestCase { |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
479 session_deps.host_resolver.get(), | 479 session_deps.host_resolver.get(), |
480 session_deps.cert_verifier.get()); | 480 session_deps.cert_verifier.get()); |
481 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 481 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
482 new CapturePreconnectsSSLSocketPool( | 482 new CapturePreconnectsSSLSocketPool( |
483 session_deps.host_resolver.get(), | 483 session_deps.host_resolver.get(), |
484 session_deps.cert_verifier.get()); | 484 session_deps.cert_verifier.get()); |
485 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 485 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
486 new MockClientSocketPoolManager); | 486 new MockClientSocketPoolManager); |
487 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); | 487 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); |
488 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); | 488 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); |
489 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 489 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
490 PreconnectHelper(kTests[i], session.get()); | 490 PreconnectHelper(kTests[i], session.get()); |
491 if (kTests[i].ssl) | 491 if (kTests[i].ssl) |
492 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); | 492 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); |
493 else | 493 else |
494 EXPECT_EQ(kTests[i].num_streams, transport_conn_pool->last_num_streams()); | 494 EXPECT_EQ(kTests[i].num_streams, transport_conn_pool->last_num_streams()); |
495 } | 495 } |
496 } | 496 } |
497 | 497 |
498 TEST_P(HttpStreamFactoryTest, PreconnectHttpProxy) { | 498 TEST_P(HttpStreamFactoryTest, PreconnectHttpProxy) { |
499 for (size_t i = 0; i < arraysize(kTests); ++i) { | 499 for (size_t i = 0; i < arraysize(kTests); ++i) { |
500 SpdySessionDependencies session_deps( | 500 SpdySessionDependencies session_deps( |
501 GetParam(), ProxyService::CreateFixed("http_proxy")); | 501 GetParam(), ProxyService::CreateFixed("http_proxy")); |
502 scoped_ptr<HttpNetworkSession> session( | 502 scoped_ptr<HttpNetworkSession> session( |
503 SpdySessionDependencies::SpdyCreateSession(&session_deps)); | 503 SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
504 HttpNetworkSessionPeer peer(session.get()); | 504 HttpNetworkSessionPeer peer(session.get()); |
505 HostPortPair proxy_host("http_proxy", 80); | 505 HostPortPair proxy_host("http_proxy", 80); |
506 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = | 506 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = |
507 new CapturePreconnectsHttpProxySocketPool( | 507 new CapturePreconnectsHttpProxySocketPool( |
508 session_deps.host_resolver.get(), | 508 session_deps.host_resolver.get(), |
509 session_deps.cert_verifier.get()); | 509 session_deps.cert_verifier.get()); |
510 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 510 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
511 new CapturePreconnectsSSLSocketPool( | 511 new CapturePreconnectsSSLSocketPool( |
512 session_deps.host_resolver.get(), | 512 session_deps.host_resolver.get(), |
513 session_deps.cert_verifier.get()); | 513 session_deps.cert_verifier.get()); |
514 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 514 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
515 new MockClientSocketPoolManager); | 515 new MockClientSocketPoolManager); |
516 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); | 516 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); |
517 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); | 517 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); |
518 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 518 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
519 PreconnectHelper(kTests[i], session.get()); | 519 PreconnectHelper(kTests[i], session.get()); |
520 if (kTests[i].ssl) | 520 if (kTests[i].ssl) |
521 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); | 521 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); |
522 else | 522 else |
523 EXPECT_EQ(kTests[i].num_streams, http_proxy_pool->last_num_streams()); | 523 EXPECT_EQ(kTests[i].num_streams, http_proxy_pool->last_num_streams()); |
524 } | 524 } |
525 } | 525 } |
526 | 526 |
527 TEST_P(HttpStreamFactoryTest, PreconnectSocksProxy) { | 527 TEST_P(HttpStreamFactoryTest, PreconnectSocksProxy) { |
528 for (size_t i = 0; i < arraysize(kTests); ++i) { | 528 for (size_t i = 0; i < arraysize(kTests); ++i) { |
529 SpdySessionDependencies session_deps( | 529 SpdySessionDependencies session_deps( |
530 GetParam(), ProxyService::CreateFixed("socks4://socks_proxy:1080")); | 530 GetParam(), ProxyService::CreateFixed("socks4://socks_proxy:1080")); |
531 scoped_ptr<HttpNetworkSession> session( | 531 scoped_ptr<HttpNetworkSession> session( |
532 SpdySessionDependencies::SpdyCreateSession(&session_deps)); | 532 SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
533 HttpNetworkSessionPeer peer(session.get()); | 533 HttpNetworkSessionPeer peer(session.get()); |
534 HostPortPair proxy_host("socks_proxy", 1080); | 534 HostPortPair proxy_host("socks_proxy", 1080); |
535 CapturePreconnectsSOCKSSocketPool* socks_proxy_pool = | 535 CapturePreconnectsSOCKSSocketPool* socks_proxy_pool = |
536 new CapturePreconnectsSOCKSSocketPool( | 536 new CapturePreconnectsSOCKSSocketPool( |
537 session_deps.host_resolver.get(), | 537 session_deps.host_resolver.get(), |
538 session_deps.cert_verifier.get()); | 538 session_deps.cert_verifier.get()); |
539 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 539 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
540 new CapturePreconnectsSSLSocketPool( | 540 new CapturePreconnectsSSLSocketPool( |
541 session_deps.host_resolver.get(), | 541 session_deps.host_resolver.get(), |
542 session_deps.cert_verifier.get()); | 542 session_deps.cert_verifier.get()); |
543 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 543 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
544 new MockClientSocketPoolManager); | 544 new MockClientSocketPoolManager); |
545 mock_pool_manager->SetSocketPoolForSOCKSProxy(proxy_host, socks_proxy_pool); | 545 mock_pool_manager->SetSocketPoolForSOCKSProxy(proxy_host, socks_proxy_pool); |
546 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); | 546 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); |
547 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 547 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
548 PreconnectHelper(kTests[i], session.get()); | 548 PreconnectHelper(kTests[i], session.get()); |
549 if (kTests[i].ssl) | 549 if (kTests[i].ssl) |
550 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); | 550 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); |
551 else | 551 else |
552 EXPECT_EQ(kTests[i].num_streams, socks_proxy_pool->last_num_streams()); | 552 EXPECT_EQ(kTests[i].num_streams, socks_proxy_pool->last_num_streams()); |
553 } | 553 } |
554 } | 554 } |
555 | 555 |
556 TEST_P(HttpStreamFactoryTest, PreconnectDirectWithExistingSpdySession) { | 556 TEST_P(HttpStreamFactoryTest, PreconnectDirectWithExistingSpdySession) { |
557 for (size_t i = 0; i < arraysize(kTests); ++i) { | 557 for (size_t i = 0; i < arraysize(kTests); ++i) { |
(...skipping 14 matching lines...) Expand all Loading... |
572 session_deps.host_resolver.get(), | 572 session_deps.host_resolver.get(), |
573 session_deps.cert_verifier.get()); | 573 session_deps.cert_verifier.get()); |
574 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 574 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
575 new CapturePreconnectsSSLSocketPool( | 575 new CapturePreconnectsSSLSocketPool( |
576 session_deps.host_resolver.get(), | 576 session_deps.host_resolver.get(), |
577 session_deps.cert_verifier.get()); | 577 session_deps.cert_verifier.get()); |
578 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 578 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
579 new MockClientSocketPoolManager); | 579 new MockClientSocketPoolManager); |
580 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); | 580 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); |
581 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); | 581 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); |
582 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 582 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
583 PreconnectHelper(kTests[i], session.get()); | 583 PreconnectHelper(kTests[i], session.get()); |
584 // We shouldn't be preconnecting if we have an existing session, which is | 584 // We shouldn't be preconnecting if we have an existing session, which is |
585 // the case for https://www.google.com. | 585 // the case for https://www.google.com. |
586 if (kTests[i].ssl) | 586 if (kTests[i].ssl) |
587 EXPECT_EQ(-1, ssl_conn_pool->last_num_streams()); | 587 EXPECT_EQ(-1, ssl_conn_pool->last_num_streams()); |
588 else | 588 else |
589 EXPECT_EQ(kTests[i].num_streams, | 589 EXPECT_EQ(kTests[i].num_streams, |
590 transport_conn_pool->last_num_streams()); | 590 transport_conn_pool->last_num_streams()); |
591 } | 591 } |
592 } | 592 } |
593 | 593 |
594 // Verify that preconnects to unsafe ports are cancelled before they reach | 594 // Verify that preconnects to unsafe ports are cancelled before they reach |
595 // the SocketPool. | 595 // the SocketPool. |
596 TEST_P(HttpStreamFactoryTest, PreconnectUnsafePort) { | 596 TEST_P(HttpStreamFactoryTest, PreconnectUnsafePort) { |
597 ASSERT_FALSE(IsPortAllowedForScheme(7, "http")); | 597 ASSERT_FALSE(IsPortAllowedForScheme(7, "http")); |
598 | 598 |
599 SpdySessionDependencies session_deps( | 599 SpdySessionDependencies session_deps( |
600 GetParam(), ProxyService::CreateDirect()); | 600 GetParam(), ProxyService::CreateDirect()); |
601 scoped_ptr<HttpNetworkSession> session( | 601 scoped_ptr<HttpNetworkSession> session( |
602 SpdySessionDependencies::SpdyCreateSession(&session_deps)); | 602 SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
603 HttpNetworkSessionPeer peer(session.get()); | 603 HttpNetworkSessionPeer peer(session.get()); |
604 CapturePreconnectsTransportSocketPool* transport_conn_pool = | 604 CapturePreconnectsTransportSocketPool* transport_conn_pool = |
605 new CapturePreconnectsTransportSocketPool( | 605 new CapturePreconnectsTransportSocketPool( |
606 session_deps.host_resolver.get(), | 606 session_deps.host_resolver.get(), |
607 session_deps.cert_verifier.get()); | 607 session_deps.cert_verifier.get()); |
608 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 608 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
609 new MockClientSocketPoolManager); | 609 new MockClientSocketPoolManager); |
610 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); | 610 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); |
611 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 611 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
612 | 612 |
613 PreconnectHelperForURL(1, GURL("http://www.google.com:7"), session.get()); | 613 PreconnectHelperForURL(1, GURL("http://www.google.com:7"), session.get()); |
614 EXPECT_EQ(-1, transport_conn_pool->last_num_streams()); | 614 EXPECT_EQ(-1, transport_conn_pool->last_num_streams()); |
615 } | 615 } |
616 | 616 |
617 TEST_P(HttpStreamFactoryTest, JobNotifiesProxy) { | 617 TEST_P(HttpStreamFactoryTest, JobNotifiesProxy) { |
618 const char* kProxyString = "PROXY bad:99; PROXY maybe:80; DIRECT"; | 618 const char* kProxyString = "PROXY bad:99; PROXY maybe:80; DIRECT"; |
619 SpdySessionDependencies session_deps( | 619 SpdySessionDependencies session_deps( |
620 GetParam(), ProxyService::CreateFixedFromPacResult(kProxyString)); | 620 GetParam(), ProxyService::CreateFixedFromPacResult(kProxyString)); |
621 | 621 |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
822 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = | 822 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = |
823 new CapturePreconnectsHttpProxySocketPool( | 823 new CapturePreconnectsHttpProxySocketPool( |
824 session_deps.host_resolver.get(), session_deps.cert_verifier.get()); | 824 session_deps.host_resolver.get(), session_deps.cert_verifier.get()); |
825 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 825 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
826 new CapturePreconnectsSSLSocketPool(session_deps.host_resolver.get(), | 826 new CapturePreconnectsSSLSocketPool(session_deps.host_resolver.get(), |
827 session_deps.cert_verifier.get()); | 827 session_deps.cert_verifier.get()); |
828 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 828 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
829 new MockClientSocketPoolManager); | 829 new MockClientSocketPoolManager); |
830 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); | 830 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); |
831 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); | 831 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); |
832 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 832 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
833 PreconnectHelperForURL(num_streams, url, session.get()); | 833 PreconnectHelperForURL(num_streams, url, session.get()); |
834 EXPECT_EQ(num_streams, ssl_conn_pool->last_num_streams()); | 834 EXPECT_EQ(num_streams, ssl_conn_pool->last_num_streams()); |
835 } | 835 } |
836 } | 836 } |
837 | 837 |
838 TEST_P(HttpStreamFactoryTest, QuicDisablePreConnectIfZeroRtt) { | 838 TEST_P(HttpStreamFactoryTest, QuicDisablePreConnectIfZeroRtt) { |
839 for (int num_streams = 1; num_streams < 3; ++num_streams) { | 839 for (int num_streams = 1; num_streams < 3; ++num_streams) { |
840 GURL url = GURL("https://www.google.com"); | 840 GURL url = GURL("https://www.google.com"); |
841 | 841 |
842 // Set up QUIC as alternative_service. | 842 // Set up QUIC as alternative_service. |
(...skipping 24 matching lines...) Expand all Loading... |
867 test::QuicStreamFactoryPeer::CacheDummyServerConfig( | 867 test::QuicStreamFactoryPeer::CacheDummyServerConfig( |
868 factory, QuicServerId(host_port_pair, PRIVACY_MODE_DISABLED)); | 868 factory, QuicServerId(host_port_pair, PRIVACY_MODE_DISABLED)); |
869 | 869 |
870 HttpNetworkSessionPeer peer(session.get()); | 870 HttpNetworkSessionPeer peer(session.get()); |
871 CapturePreconnectsTransportSocketPool* transport_conn_pool = | 871 CapturePreconnectsTransportSocketPool* transport_conn_pool = |
872 new CapturePreconnectsTransportSocketPool( | 872 new CapturePreconnectsTransportSocketPool( |
873 session_deps.host_resolver.get(), session_deps.cert_verifier.get()); | 873 session_deps.host_resolver.get(), session_deps.cert_verifier.get()); |
874 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 874 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
875 new MockClientSocketPoolManager); | 875 new MockClientSocketPoolManager); |
876 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); | 876 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); |
877 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 877 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
878 | 878 |
879 HttpRequestInfo request; | 879 HttpRequestInfo request; |
880 request.method = "GET"; | 880 request.method = "GET"; |
881 request.url = url; | 881 request.url = url; |
882 request.load_flags = 0; | 882 request.load_flags = 0; |
883 | 883 |
884 SSLConfig ssl_config; | 884 SSLConfig ssl_config; |
885 session->ssl_config_service()->GetSSLConfig(&ssl_config); | 885 session->ssl_config_service()->GetSSLConfig(&ssl_config); |
886 session->http_stream_factory()->PreconnectStreams(num_streams, request, | 886 session->http_stream_factory()->PreconnectStreams(num_streams, request, |
887 ssl_config, ssl_config); | 887 ssl_config, ssl_config); |
(...skipping 793 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1681 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); | 1681 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); |
1682 | 1682 |
1683 // Make sure there is no orphaned job. it is already canceled. | 1683 // Make sure there is no orphaned job. it is already canceled. |
1684 ASSERT_EQ(0u, static_cast<HttpStreamFactoryImpl*>( | 1684 ASSERT_EQ(0u, static_cast<HttpStreamFactoryImpl*>( |
1685 session->http_stream_factory_for_websocket())->num_orphaned_jobs()); | 1685 session->http_stream_factory_for_websocket())->num_orphaned_jobs()); |
1686 } | 1686 } |
1687 | 1687 |
1688 } // namespace | 1688 } // namespace |
1689 | 1689 |
1690 } // namespace net | 1690 } // namespace net |
OLD | NEW |