| 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> |
| 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 "base/run_loop.h" | 14 #include "base/run_loop.h" |
| 15 #include "net/base/port_util.h" | 15 #include "net/base/port_util.h" |
| 16 #include "net/base/test_completion_callback.h" | 16 #include "net/base/test_completion_callback.h" |
| 17 #include "net/base/test_data_directory.h" | 17 #include "net/base/test_data_directory.h" |
| 18 #include "net/cert/ct_policy_enforcer.h" |
| 18 #include "net/cert/mock_cert_verifier.h" | 19 #include "net/cert/mock_cert_verifier.h" |
| 20 #include "net/cert/multi_log_ct_verifier.h" |
| 19 #include "net/dns/mock_host_resolver.h" | 21 #include "net/dns/mock_host_resolver.h" |
| 20 #include "net/http/bidirectional_stream_impl.h" | 22 #include "net/http/bidirectional_stream_impl.h" |
| 21 #include "net/http/bidirectional_stream_request_info.h" | 23 #include "net/http/bidirectional_stream_request_info.h" |
| 22 #include "net/http/http_auth_handler_factory.h" | 24 #include "net/http/http_auth_handler_factory.h" |
| 23 #include "net/http/http_network_session.h" | 25 #include "net/http/http_network_session.h" |
| 24 #include "net/http/http_network_session_peer.h" | 26 #include "net/http/http_network_session_peer.h" |
| 25 #include "net/http/http_network_transaction.h" | 27 #include "net/http/http_network_transaction.h" |
| 26 #include "net/http/http_request_info.h" | 28 #include "net/http/http_request_info.h" |
| 27 #include "net/http/http_server_properties.h" | 29 #include "net/http/http_server_properties.h" |
| 28 #include "net/http/http_server_properties_impl.h" | 30 #include "net/http/http_server_properties_impl.h" |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 HttpNetworkSession* session) { | 357 HttpNetworkSession* session) { |
| 356 GURL url = test.ssl ? GURL("https://www.google.com") : | 358 GURL url = test.ssl ? GURL("https://www.google.com") : |
| 357 GURL("http://www.google.com"); | 359 GURL("http://www.google.com"); |
| 358 PreconnectHelperForURL(test.num_streams, url, session); | 360 PreconnectHelperForURL(test.num_streams, url, session); |
| 359 } | 361 } |
| 360 | 362 |
| 361 template<typename ParentPool> | 363 template<typename ParentPool> |
| 362 class CapturePreconnectsSocketPool : public ParentPool { | 364 class CapturePreconnectsSocketPool : public ParentPool { |
| 363 public: | 365 public: |
| 364 CapturePreconnectsSocketPool(HostResolver* host_resolver, | 366 CapturePreconnectsSocketPool(HostResolver* host_resolver, |
| 365 CertVerifier* cert_verifier); | 367 CertVerifier* cert_verifier, |
| 368 TransportSecurityState* transport_security_state, |
| 369 CTVerifier* cert_transparency_verifier, |
| 370 CTPolicyEnforcer* ct_policy_enforcer); |
| 366 | 371 |
| 367 int last_num_streams() const { | 372 int last_num_streams() const { |
| 368 return last_num_streams_; | 373 return last_num_streams_; |
| 369 } | 374 } |
| 370 | 375 |
| 371 int RequestSocket(const std::string& group_name, | 376 int RequestSocket(const std::string& group_name, |
| 372 const void* socket_params, | 377 const void* socket_params, |
| 373 RequestPriority priority, | 378 RequestPriority priority, |
| 374 ClientSocketPool::RespectLimits respect_limits, | 379 ClientSocketPool::RespectLimits respect_limits, |
| 375 ClientSocketHandle* handle, | 380 ClientSocketHandle* handle, |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 422 typedef CapturePreconnectsSocketPool<HttpProxyClientSocketPool> | 427 typedef CapturePreconnectsSocketPool<HttpProxyClientSocketPool> |
| 423 CapturePreconnectsHttpProxySocketPool; | 428 CapturePreconnectsHttpProxySocketPool; |
| 424 typedef CapturePreconnectsSocketPool<SOCKSClientSocketPool> | 429 typedef CapturePreconnectsSocketPool<SOCKSClientSocketPool> |
| 425 CapturePreconnectsSOCKSSocketPool; | 430 CapturePreconnectsSOCKSSocketPool; |
| 426 typedef CapturePreconnectsSocketPool<SSLClientSocketPool> | 431 typedef CapturePreconnectsSocketPool<SSLClientSocketPool> |
| 427 CapturePreconnectsSSLSocketPool; | 432 CapturePreconnectsSSLSocketPool; |
| 428 | 433 |
| 429 template <typename ParentPool> | 434 template <typename ParentPool> |
| 430 CapturePreconnectsSocketPool<ParentPool>::CapturePreconnectsSocketPool( | 435 CapturePreconnectsSocketPool<ParentPool>::CapturePreconnectsSocketPool( |
| 431 HostResolver* host_resolver, | 436 HostResolver* host_resolver, |
| 432 CertVerifier* /* cert_verifier */) | 437 CertVerifier*, |
| 438 TransportSecurityState*, |
| 439 CTVerifier*, |
| 440 CTPolicyEnforcer*) |
| 433 : ParentPool(0, 0, host_resolver, nullptr, nullptr, nullptr), | 441 : ParentPool(0, 0, host_resolver, nullptr, nullptr, nullptr), |
| 434 last_num_streams_(-1) {} | 442 last_num_streams_(-1) {} |
| 435 | 443 |
| 436 template <> | 444 template <> |
| 437 CapturePreconnectsHttpProxySocketPool::CapturePreconnectsSocketPool( | 445 CapturePreconnectsHttpProxySocketPool::CapturePreconnectsSocketPool( |
| 438 HostResolver* /* host_resolver */, | 446 HostResolver*, |
| 439 CertVerifier* /* cert_verifier */) | 447 CertVerifier*, |
| 448 TransportSecurityState*, |
| 449 CTVerifier*, |
| 450 CTPolicyEnforcer*) |
| 440 : HttpProxyClientSocketPool(0, 0, nullptr, nullptr, nullptr), | 451 : HttpProxyClientSocketPool(0, 0, nullptr, nullptr, nullptr), |
| 441 last_num_streams_(-1) { | 452 last_num_streams_(-1) {} |
| 442 } | |
| 443 | 453 |
| 444 template <> | 454 template <> |
| 445 CapturePreconnectsSSLSocketPool::CapturePreconnectsSocketPool( | 455 CapturePreconnectsSSLSocketPool::CapturePreconnectsSocketPool( |
| 446 HostResolver* /* host_resolver */, | 456 HostResolver* /* host_resolver */, |
| 447 CertVerifier* cert_verifier) | 457 CertVerifier* cert_verifier, |
| 458 TransportSecurityState* transport_security_state, |
| 459 CTVerifier* cert_transparency_verifier, |
| 460 CTPolicyEnforcer* ct_policy_enforcer) |
| 448 : SSLClientSocketPool(0, | 461 : SSLClientSocketPool(0, |
| 449 0, | 462 0, |
| 450 cert_verifier, | 463 cert_verifier, |
| 451 nullptr, // channel_id_store | 464 nullptr, // channel_id_store |
| 452 nullptr, // transport_security_state | 465 transport_security_state, |
| 453 nullptr, // cert_transparency_verifier | 466 cert_transparency_verifier, |
| 454 nullptr, // ct_policy_enforcer | 467 ct_policy_enforcer, |
| 455 std::string(), // ssl_session_cache_shard | 468 std::string(), // ssl_session_cache_shard |
| 456 nullptr, // deterministic_socket_factory | 469 nullptr, // deterministic_socket_factory |
| 457 nullptr, // transport_socket_pool | 470 nullptr, // transport_socket_pool |
| 458 nullptr, | 471 nullptr, |
| 459 nullptr, | 472 nullptr, |
| 460 nullptr, // ssl_config_service | 473 nullptr, // ssl_config_service |
| 461 nullptr), // net_log | 474 nullptr), // net_log |
| 462 last_num_streams_(-1) { | 475 last_num_streams_(-1) {} |
| 463 } | |
| 464 | 476 |
| 465 class HttpStreamFactoryTest : public ::testing::Test, | 477 class HttpStreamFactoryTest : public ::testing::Test, |
| 466 public ::testing::WithParamInterface<NextProto> { | 478 public ::testing::WithParamInterface<NextProto> { |
| 467 }; | 479 }; |
| 468 | 480 |
| 469 INSTANTIATE_TEST_CASE_P(NextProto, | 481 INSTANTIATE_TEST_CASE_P(NextProto, |
| 470 HttpStreamFactoryTest, | 482 HttpStreamFactoryTest, |
| 471 testing::Values(kProtoSPDY31, | 483 testing::Values(kProtoSPDY31, |
| 472 kProtoHTTP2)); | 484 kProtoHTTP2)); |
| 473 | 485 |
| 474 TEST_P(HttpStreamFactoryTest, PreconnectDirect) { | 486 TEST_P(HttpStreamFactoryTest, PreconnectDirect) { |
| 475 for (size_t i = 0; i < arraysize(kTests); ++i) { | 487 for (size_t i = 0; i < arraysize(kTests); ++i) { |
| 476 SpdySessionDependencies session_deps( | 488 SpdySessionDependencies session_deps( |
| 477 GetParam(), ProxyService::CreateDirect()); | 489 GetParam(), ProxyService::CreateDirect()); |
| 478 std::unique_ptr<HttpNetworkSession> session( | 490 std::unique_ptr<HttpNetworkSession> session( |
| 479 SpdySessionDependencies::SpdyCreateSession(&session_deps)); | 491 SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
| 480 HttpNetworkSessionPeer peer(session.get()); | 492 HttpNetworkSessionPeer peer(session.get()); |
| 481 CapturePreconnectsTransportSocketPool* transport_conn_pool = | 493 CapturePreconnectsTransportSocketPool* transport_conn_pool = |
| 482 new CapturePreconnectsTransportSocketPool( | 494 new CapturePreconnectsTransportSocketPool( |
| 483 session_deps.host_resolver.get(), | 495 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 484 session_deps.cert_verifier.get()); | 496 session_deps.transport_security_state.get(), |
| 497 session_deps.cert_transparency_verifier.get(), |
| 498 session_deps.ct_policy_enforcer.get()); |
| 485 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 499 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
| 486 new CapturePreconnectsSSLSocketPool( | 500 new CapturePreconnectsSSLSocketPool( |
| 487 session_deps.host_resolver.get(), | 501 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 488 session_deps.cert_verifier.get()); | 502 session_deps.transport_security_state.get(), |
| 503 session_deps.cert_transparency_verifier.get(), |
| 504 session_deps.ct_policy_enforcer.get()); |
| 489 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 505 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 490 new MockClientSocketPoolManager); | 506 new MockClientSocketPoolManager); |
| 491 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); | 507 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); |
| 492 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); | 508 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); |
| 493 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 509 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 494 PreconnectHelper(kTests[i], session.get()); | 510 PreconnectHelper(kTests[i], session.get()); |
| 495 if (kTests[i].ssl) | 511 if (kTests[i].ssl) |
| 496 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); | 512 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); |
| 497 else | 513 else |
| 498 EXPECT_EQ(kTests[i].num_streams, transport_conn_pool->last_num_streams()); | 514 EXPECT_EQ(kTests[i].num_streams, transport_conn_pool->last_num_streams()); |
| 499 } | 515 } |
| 500 } | 516 } |
| 501 | 517 |
| 502 TEST_P(HttpStreamFactoryTest, PreconnectHttpProxy) { | 518 TEST_P(HttpStreamFactoryTest, PreconnectHttpProxy) { |
| 503 for (size_t i = 0; i < arraysize(kTests); ++i) { | 519 for (size_t i = 0; i < arraysize(kTests); ++i) { |
| 504 SpdySessionDependencies session_deps( | 520 SpdySessionDependencies session_deps( |
| 505 GetParam(), ProxyService::CreateFixed("http_proxy")); | 521 GetParam(), ProxyService::CreateFixed("http_proxy")); |
| 506 std::unique_ptr<HttpNetworkSession> session( | 522 std::unique_ptr<HttpNetworkSession> session( |
| 507 SpdySessionDependencies::SpdyCreateSession(&session_deps)); | 523 SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
| 508 HttpNetworkSessionPeer peer(session.get()); | 524 HttpNetworkSessionPeer peer(session.get()); |
| 509 HostPortPair proxy_host("http_proxy", 80); | 525 HostPortPair proxy_host("http_proxy", 80); |
| 510 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = | 526 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = |
| 511 new CapturePreconnectsHttpProxySocketPool( | 527 new CapturePreconnectsHttpProxySocketPool( |
| 512 session_deps.host_resolver.get(), | 528 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 513 session_deps.cert_verifier.get()); | 529 session_deps.transport_security_state.get(), |
| 530 session_deps.cert_transparency_verifier.get(), |
| 531 session_deps.ct_policy_enforcer.get()); |
| 514 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 532 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
| 515 new CapturePreconnectsSSLSocketPool( | 533 new CapturePreconnectsSSLSocketPool( |
| 516 session_deps.host_resolver.get(), | 534 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 517 session_deps.cert_verifier.get()); | 535 session_deps.transport_security_state.get(), |
| 536 session_deps.cert_transparency_verifier.get(), |
| 537 session_deps.ct_policy_enforcer.get()); |
| 518 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 538 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 519 new MockClientSocketPoolManager); | 539 new MockClientSocketPoolManager); |
| 520 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); | 540 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); |
| 521 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); | 541 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); |
| 522 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 542 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 523 PreconnectHelper(kTests[i], session.get()); | 543 PreconnectHelper(kTests[i], session.get()); |
| 524 if (kTests[i].ssl) | 544 if (kTests[i].ssl) |
| 525 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()); |
| 526 else | 546 else |
| 527 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()); |
| 528 } | 548 } |
| 529 } | 549 } |
| 530 | 550 |
| 531 TEST_P(HttpStreamFactoryTest, PreconnectSocksProxy) { | 551 TEST_P(HttpStreamFactoryTest, PreconnectSocksProxy) { |
| 532 for (size_t i = 0; i < arraysize(kTests); ++i) { | 552 for (size_t i = 0; i < arraysize(kTests); ++i) { |
| 533 SpdySessionDependencies session_deps( | 553 SpdySessionDependencies session_deps( |
| 534 GetParam(), ProxyService::CreateFixed("socks4://socks_proxy:1080")); | 554 GetParam(), ProxyService::CreateFixed("socks4://socks_proxy:1080")); |
| 535 std::unique_ptr<HttpNetworkSession> session( | 555 std::unique_ptr<HttpNetworkSession> session( |
| 536 SpdySessionDependencies::SpdyCreateSession(&session_deps)); | 556 SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
| 537 HttpNetworkSessionPeer peer(session.get()); | 557 HttpNetworkSessionPeer peer(session.get()); |
| 538 HostPortPair proxy_host("socks_proxy", 1080); | 558 HostPortPair proxy_host("socks_proxy", 1080); |
| 539 CapturePreconnectsSOCKSSocketPool* socks_proxy_pool = | 559 CapturePreconnectsSOCKSSocketPool* socks_proxy_pool = |
| 540 new CapturePreconnectsSOCKSSocketPool( | 560 new CapturePreconnectsSOCKSSocketPool( |
| 541 session_deps.host_resolver.get(), | 561 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 542 session_deps.cert_verifier.get()); | 562 session_deps.transport_security_state.get(), |
| 563 session_deps.cert_transparency_verifier.get(), |
| 564 session_deps.ct_policy_enforcer.get()); |
| 543 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 565 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
| 544 new CapturePreconnectsSSLSocketPool( | 566 new CapturePreconnectsSSLSocketPool( |
| 545 session_deps.host_resolver.get(), | 567 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 546 session_deps.cert_verifier.get()); | 568 session_deps.transport_security_state.get(), |
| 569 session_deps.cert_transparency_verifier.get(), |
| 570 session_deps.ct_policy_enforcer.get()); |
| 547 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 571 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 548 new MockClientSocketPoolManager); | 572 new MockClientSocketPoolManager); |
| 549 mock_pool_manager->SetSocketPoolForSOCKSProxy(proxy_host, socks_proxy_pool); | 573 mock_pool_manager->SetSocketPoolForSOCKSProxy(proxy_host, socks_proxy_pool); |
| 550 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); | 574 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); |
| 551 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 575 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 552 PreconnectHelper(kTests[i], session.get()); | 576 PreconnectHelper(kTests[i], session.get()); |
| 553 if (kTests[i].ssl) | 577 if (kTests[i].ssl) |
| 554 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); | 578 EXPECT_EQ(kTests[i].num_streams, ssl_conn_pool->last_num_streams()); |
| 555 else | 579 else |
| 556 EXPECT_EQ(kTests[i].num_streams, socks_proxy_pool->last_num_streams()); | 580 EXPECT_EQ(kTests[i].num_streams, socks_proxy_pool->last_num_streams()); |
| 557 } | 581 } |
| 558 } | 582 } |
| 559 | 583 |
| 560 TEST_P(HttpStreamFactoryTest, PreconnectDirectWithExistingSpdySession) { | 584 TEST_P(HttpStreamFactoryTest, PreconnectDirectWithExistingSpdySession) { |
| 561 for (size_t i = 0; i < arraysize(kTests); ++i) { | 585 for (size_t i = 0; i < arraysize(kTests); ++i) { |
| 562 SpdySessionDependencies session_deps( | 586 SpdySessionDependencies session_deps( |
| 563 GetParam(), ProxyService::CreateDirect()); | 587 GetParam(), ProxyService::CreateDirect()); |
| 564 std::unique_ptr<HttpNetworkSession> session( | 588 std::unique_ptr<HttpNetworkSession> session( |
| 565 SpdySessionDependencies::SpdyCreateSession(&session_deps)); | 589 SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
| 566 HttpNetworkSessionPeer peer(session.get()); | 590 HttpNetworkSessionPeer peer(session.get()); |
| 567 | 591 |
| 568 // Put a SpdySession in the pool. | 592 // Put a SpdySession in the pool. |
| 569 HostPortPair host_port_pair("www.google.com", 443); | 593 HostPortPair host_port_pair("www.google.com", 443); |
| 570 SpdySessionKey key(host_port_pair, ProxyServer::Direct(), | 594 SpdySessionKey key(host_port_pair, ProxyServer::Direct(), |
| 571 PRIVACY_MODE_DISABLED); | 595 PRIVACY_MODE_DISABLED); |
| 572 ignore_result(CreateFakeSpdySession(session->spdy_session_pool(), key)); | 596 ignore_result(CreateFakeSpdySession(session->spdy_session_pool(), key)); |
| 573 | 597 |
| 574 CapturePreconnectsTransportSocketPool* transport_conn_pool = | 598 CapturePreconnectsTransportSocketPool* transport_conn_pool = |
| 575 new CapturePreconnectsTransportSocketPool( | 599 new CapturePreconnectsTransportSocketPool( |
| 576 session_deps.host_resolver.get(), | 600 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 577 session_deps.cert_verifier.get()); | 601 session_deps.transport_security_state.get(), |
| 602 session_deps.cert_transparency_verifier.get(), |
| 603 session_deps.ct_policy_enforcer.get()); |
| 578 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 604 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
| 579 new CapturePreconnectsSSLSocketPool( | 605 new CapturePreconnectsSSLSocketPool( |
| 580 session_deps.host_resolver.get(), | 606 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 581 session_deps.cert_verifier.get()); | 607 session_deps.transport_security_state.get(), |
| 608 session_deps.cert_transparency_verifier.get(), |
| 609 session_deps.ct_policy_enforcer.get()); |
| 582 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 610 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 583 new MockClientSocketPoolManager); | 611 new MockClientSocketPoolManager); |
| 584 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); | 612 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); |
| 585 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); | 613 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); |
| 586 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 614 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 587 PreconnectHelper(kTests[i], session.get()); | 615 PreconnectHelper(kTests[i], session.get()); |
| 588 // We shouldn't be preconnecting if we have an existing session, which is | 616 // We shouldn't be preconnecting if we have an existing session, which is |
| 589 // the case for https://www.google.com. | 617 // the case for https://www.google.com. |
| 590 if (kTests[i].ssl) | 618 if (kTests[i].ssl) |
| 591 EXPECT_EQ(-1, ssl_conn_pool->last_num_streams()); | 619 EXPECT_EQ(-1, ssl_conn_pool->last_num_streams()); |
| 592 else | 620 else |
| 593 EXPECT_EQ(kTests[i].num_streams, | 621 EXPECT_EQ(kTests[i].num_streams, |
| 594 transport_conn_pool->last_num_streams()); | 622 transport_conn_pool->last_num_streams()); |
| 595 } | 623 } |
| 596 } | 624 } |
| 597 | 625 |
| 598 // Verify that preconnects to unsafe ports are cancelled before they reach | 626 // Verify that preconnects to unsafe ports are cancelled before they reach |
| 599 // the SocketPool. | 627 // the SocketPool. |
| 600 TEST_P(HttpStreamFactoryTest, PreconnectUnsafePort) { | 628 TEST_P(HttpStreamFactoryTest, PreconnectUnsafePort) { |
| 601 ASSERT_FALSE(IsPortAllowedForScheme(7, "http")); | 629 ASSERT_FALSE(IsPortAllowedForScheme(7, "http")); |
| 602 | 630 |
| 603 SpdySessionDependencies session_deps( | 631 SpdySessionDependencies session_deps( |
| 604 GetParam(), ProxyService::CreateDirect()); | 632 GetParam(), ProxyService::CreateDirect()); |
| 605 std::unique_ptr<HttpNetworkSession> session( | 633 std::unique_ptr<HttpNetworkSession> session( |
| 606 SpdySessionDependencies::SpdyCreateSession(&session_deps)); | 634 SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
| 607 HttpNetworkSessionPeer peer(session.get()); | 635 HttpNetworkSessionPeer peer(session.get()); |
| 608 CapturePreconnectsTransportSocketPool* transport_conn_pool = | 636 CapturePreconnectsTransportSocketPool* transport_conn_pool = |
| 609 new CapturePreconnectsTransportSocketPool( | 637 new CapturePreconnectsTransportSocketPool( |
| 610 session_deps.host_resolver.get(), | 638 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 611 session_deps.cert_verifier.get()); | 639 session_deps.transport_security_state.get(), |
| 640 session_deps.cert_transparency_verifier.get(), |
| 641 session_deps.ct_policy_enforcer.get()); |
| 612 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 642 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 613 new MockClientSocketPoolManager); | 643 new MockClientSocketPoolManager); |
| 614 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); | 644 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); |
| 615 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 645 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 616 | 646 |
| 617 PreconnectHelperForURL(1, GURL("http://www.google.com:7"), session.get()); | 647 PreconnectHelperForURL(1, GURL("http://www.google.com:7"), session.get()); |
| 618 EXPECT_EQ(-1, transport_conn_pool->last_num_streams()); | 648 EXPECT_EQ(-1, transport_conn_pool->last_num_streams()); |
| 619 } | 649 } |
| 620 | 650 |
| 621 TEST_P(HttpStreamFactoryTest, JobNotifiesProxy) { | 651 TEST_P(HttpStreamFactoryTest, JobNotifiesProxy) { |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 684 HttpNetworkSession::Params params; | 714 HttpNetworkSession::Params params; |
| 685 params.enable_quic = true; | 715 params.enable_quic = true; |
| 686 params.quic_disable_preconnect_if_0rtt = false; | 716 params.quic_disable_preconnect_if_0rtt = false; |
| 687 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service( | 717 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service( |
| 688 new SSLConfigServiceDefaults); | 718 new SSLConfigServiceDefaults); |
| 689 HttpServerPropertiesImpl http_server_properties; | 719 HttpServerPropertiesImpl http_server_properties; |
| 690 MockClientSocketFactory socket_factory; | 720 MockClientSocketFactory socket_factory; |
| 691 params.client_socket_factory = &socket_factory; | 721 params.client_socket_factory = &socket_factory; |
| 692 MockHostResolver host_resolver; | 722 MockHostResolver host_resolver; |
| 693 params.host_resolver = &host_resolver; | 723 params.host_resolver = &host_resolver; |
| 724 MockCertVerifier cert_verifier; |
| 725 params.cert_verifier = &cert_verifier; |
| 694 TransportSecurityState transport_security_state; | 726 TransportSecurityState transport_security_state; |
| 695 params.transport_security_state = &transport_security_state; | 727 params.transport_security_state = &transport_security_state; |
| 728 MultiLogCTVerifier ct_verifier; |
| 729 params.cert_transparency_verifier = &ct_verifier; |
| 730 CTPolicyEnforcer ct_policy_enforcer; |
| 731 params.ct_policy_enforcer = &ct_policy_enforcer; |
| 696 params.proxy_service = proxy_service.get(); | 732 params.proxy_service = proxy_service.get(); |
| 697 params.ssl_config_service = ssl_config_service.get(); | 733 params.ssl_config_service = ssl_config_service.get(); |
| 698 params.http_server_properties = &http_server_properties; | 734 params.http_server_properties = &http_server_properties; |
| 699 | 735 |
| 700 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); | 736 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); |
| 701 session->quic_stream_factory()->set_require_confirmation(false); | 737 session->quic_stream_factory()->set_require_confirmation(false); |
| 702 | 738 |
| 703 StaticSocketDataProvider socket_data1; | 739 StaticSocketDataProvider socket_data1; |
| 704 socket_data1.set_connect_data(MockConnect(ASYNC, mock_error[i])); | 740 socket_data1.set_connect_data(MockConnect(ASYNC, mock_error[i])); |
| 705 socket_factory.AddSocketDataProvider(&socket_data1); | 741 socket_factory.AddSocketDataProvider(&socket_data1); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 808 HttpNetworkSession::Params params; | 844 HttpNetworkSession::Params params; |
| 809 params.enable_quic = true; | 845 params.enable_quic = true; |
| 810 params.quic_disable_preconnect_if_0rtt = false; | 846 params.quic_disable_preconnect_if_0rtt = false; |
| 811 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service( | 847 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service( |
| 812 new SSLConfigServiceDefaults); | 848 new SSLConfigServiceDefaults); |
| 813 HttpServerPropertiesImpl http_server_properties; | 849 HttpServerPropertiesImpl http_server_properties; |
| 814 MockClientSocketFactory socket_factory; | 850 MockClientSocketFactory socket_factory; |
| 815 params.client_socket_factory = &socket_factory; | 851 params.client_socket_factory = &socket_factory; |
| 816 MockHostResolver host_resolver; | 852 MockHostResolver host_resolver; |
| 817 params.host_resolver = &host_resolver; | 853 params.host_resolver = &host_resolver; |
| 854 MockCertVerifier cert_verifier; |
| 855 params.cert_verifier = &cert_verifier; |
| 818 TransportSecurityState transport_security_state; | 856 TransportSecurityState transport_security_state; |
| 819 params.transport_security_state = &transport_security_state; | 857 params.transport_security_state = &transport_security_state; |
| 858 MultiLogCTVerifier ct_verifier; |
| 859 params.cert_transparency_verifier = &ct_verifier; |
| 860 CTPolicyEnforcer ct_policy_enforcer; |
| 861 params.ct_policy_enforcer = &ct_policy_enforcer; |
| 820 params.proxy_service = proxy_service.get(); | 862 params.proxy_service = proxy_service.get(); |
| 821 params.ssl_config_service = ssl_config_service.get(); | 863 params.ssl_config_service = ssl_config_service.get(); |
| 822 params.http_server_properties = &http_server_properties; | 864 params.http_server_properties = &http_server_properties; |
| 823 params.quic_max_number_of_lossy_connections = 2; | 865 params.quic_max_number_of_lossy_connections = 2; |
| 824 | 866 |
| 825 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); | 867 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); |
| 826 session->quic_stream_factory()->set_require_confirmation(false); | 868 session->quic_stream_factory()->set_require_confirmation(false); |
| 827 | 869 |
| 828 session->quic_stream_factory()->number_of_lossy_connections_[99] = | 870 session->quic_stream_factory()->number_of_lossy_connections_[99] = |
| 829 params.quic_max_number_of_lossy_connections; | 871 params.quic_max_number_of_lossy_connections; |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 884 SpdySessionDependencies::CreateSessionParams(&session_deps); | 926 SpdySessionDependencies::CreateSessionParams(&session_deps); |
| 885 params.enable_quic = true; | 927 params.enable_quic = true; |
| 886 params.quic_disable_preconnect_if_0rtt = true; | 928 params.quic_disable_preconnect_if_0rtt = true; |
| 887 params.http_server_properties = &http_server_properties; | 929 params.http_server_properties = &http_server_properties; |
| 888 | 930 |
| 889 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); | 931 std::unique_ptr<HttpNetworkSession> session(new HttpNetworkSession(params)); |
| 890 HttpNetworkSessionPeer peer(session.get()); | 932 HttpNetworkSessionPeer peer(session.get()); |
| 891 HostPortPair proxy_host("http_proxy", 80); | 933 HostPortPair proxy_host("http_proxy", 80); |
| 892 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = | 934 CapturePreconnectsHttpProxySocketPool* http_proxy_pool = |
| 893 new CapturePreconnectsHttpProxySocketPool( | 935 new CapturePreconnectsHttpProxySocketPool( |
| 894 session_deps.host_resolver.get(), session_deps.cert_verifier.get()); | 936 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 937 session_deps.transport_security_state.get(), |
| 938 session_deps.cert_transparency_verifier.get(), |
| 939 session_deps.ct_policy_enforcer.get()); |
| 895 CapturePreconnectsSSLSocketPool* ssl_conn_pool = | 940 CapturePreconnectsSSLSocketPool* ssl_conn_pool = |
| 896 new CapturePreconnectsSSLSocketPool(session_deps.host_resolver.get(), | 941 new CapturePreconnectsSSLSocketPool( |
| 897 session_deps.cert_verifier.get()); | 942 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 943 session_deps.transport_security_state.get(), |
| 944 session_deps.cert_transparency_verifier.get(), |
| 945 session_deps.ct_policy_enforcer.get()); |
| 898 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 946 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 899 new MockClientSocketPoolManager); | 947 new MockClientSocketPoolManager); |
| 900 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); | 948 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); |
| 901 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); | 949 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); |
| 902 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 950 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 903 PreconnectHelperForURL(num_streams, url, session.get()); | 951 PreconnectHelperForURL(num_streams, url, session.get()); |
| 904 EXPECT_EQ(num_streams, ssl_conn_pool->last_num_streams()); | 952 EXPECT_EQ(num_streams, ssl_conn_pool->last_num_streams()); |
| 905 } | 953 } |
| 906 } | 954 } |
| 907 | 955 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 935 | 983 |
| 936 // Setup 0RTT for QUIC. | 984 // Setup 0RTT for QUIC. |
| 937 QuicStreamFactory* factory = session->quic_stream_factory(); | 985 QuicStreamFactory* factory = session->quic_stream_factory(); |
| 938 factory->set_require_confirmation(false); | 986 factory->set_require_confirmation(false); |
| 939 test::QuicStreamFactoryPeer::CacheDummyServerConfig( | 987 test::QuicStreamFactoryPeer::CacheDummyServerConfig( |
| 940 factory, QuicServerId(host_port_pair, PRIVACY_MODE_DISABLED)); | 988 factory, QuicServerId(host_port_pair, PRIVACY_MODE_DISABLED)); |
| 941 | 989 |
| 942 HttpNetworkSessionPeer peer(session.get()); | 990 HttpNetworkSessionPeer peer(session.get()); |
| 943 CapturePreconnectsTransportSocketPool* transport_conn_pool = | 991 CapturePreconnectsTransportSocketPool* transport_conn_pool = |
| 944 new CapturePreconnectsTransportSocketPool( | 992 new CapturePreconnectsTransportSocketPool( |
| 945 session_deps.host_resolver.get(), session_deps.cert_verifier.get()); | 993 session_deps.host_resolver.get(), session_deps.cert_verifier.get(), |
| 994 session_deps.transport_security_state.get(), |
| 995 session_deps.cert_transparency_verifier.get(), |
| 996 session_deps.ct_policy_enforcer.get()); |
| 946 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( | 997 std::unique_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 947 new MockClientSocketPoolManager); | 998 new MockClientSocketPoolManager); |
| 948 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); | 999 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); |
| 949 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); | 1000 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 950 | 1001 |
| 951 HttpRequestInfo request; | 1002 HttpRequestInfo request; |
| 952 request.method = "GET"; | 1003 request.method = "GET"; |
| 953 request.url = url; | 1004 request.url = url; |
| 954 request.load_flags = 0; | 1005 request.load_flags = 0; |
| 955 | 1006 |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1024 return -1; | 1075 return -1; |
| 1025 return session_list->GetSize(); | 1076 return session_list->GetSize(); |
| 1026 } | 1077 } |
| 1027 | 1078 |
| 1028 } // namespace | 1079 } // namespace |
| 1029 | 1080 |
| 1030 TEST_P(HttpStreamFactoryTest, PrivacyModeUsesDifferentSocketPoolGroup) { | 1081 TEST_P(HttpStreamFactoryTest, PrivacyModeUsesDifferentSocketPoolGroup) { |
| 1031 SpdySessionDependencies session_deps( | 1082 SpdySessionDependencies session_deps( |
| 1032 GetParam(), ProxyService::CreateDirect()); | 1083 GetParam(), ProxyService::CreateDirect()); |
| 1033 | 1084 |
| 1034 StaticSocketDataProvider socket_data; | 1085 StaticSocketDataProvider socket_data_1; |
| 1035 socket_data.set_connect_data(MockConnect(ASYNC, OK)); | 1086 socket_data_1.set_connect_data(MockConnect(ASYNC, OK)); |
| 1036 session_deps.socket_factory->AddSocketDataProvider(&socket_data); | 1087 session_deps.socket_factory->AddSocketDataProvider(&socket_data_1); |
| 1088 StaticSocketDataProvider socket_data_2; |
| 1089 socket_data_2.set_connect_data(MockConnect(ASYNC, OK)); |
| 1090 session_deps.socket_factory->AddSocketDataProvider(&socket_data_2); |
| 1091 StaticSocketDataProvider socket_data_3; |
| 1092 socket_data_3.set_connect_data(MockConnect(ASYNC, OK)); |
| 1093 session_deps.socket_factory->AddSocketDataProvider(&socket_data_3); |
| 1037 | 1094 |
| 1038 SSLSocketDataProvider ssl(ASYNC, OK); | 1095 SSLSocketDataProvider ssl_1(ASYNC, OK); |
| 1039 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl); | 1096 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_1); |
| 1097 SSLSocketDataProvider ssl_2(ASYNC, OK); |
| 1098 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_2); |
| 1099 SSLSocketDataProvider ssl_3(ASYNC, OK); |
| 1100 session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_3); |
| 1040 | 1101 |
| 1041 std::unique_ptr<HttpNetworkSession> session( | 1102 std::unique_ptr<HttpNetworkSession> session( |
| 1042 SpdySessionDependencies::SpdyCreateSession(&session_deps)); | 1103 SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
| 1043 SSLClientSocketPool* ssl_pool = session->GetSSLSocketPool( | 1104 SSLClientSocketPool* ssl_pool = session->GetSSLSocketPool( |
| 1044 HttpNetworkSession::NORMAL_SOCKET_POOL); | 1105 HttpNetworkSession::NORMAL_SOCKET_POOL); |
| 1045 | 1106 |
| 1046 EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 0); | 1107 EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 0); |
| 1047 | 1108 |
| 1048 HttpRequestInfo request_info; | 1109 HttpRequestInfo request_info; |
| 1049 request_info.method = "GET"; | 1110 request_info.method = "GET"; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1077 BoundNetLog())); | 1138 BoundNetLog())); |
| 1078 waiter.WaitForStream(); | 1139 waiter.WaitForStream(); |
| 1079 | 1140 |
| 1080 EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 2); | 1141 EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 2); |
| 1081 } | 1142 } |
| 1082 | 1143 |
| 1083 TEST_P(HttpStreamFactoryTest, GetLoadState) { | 1144 TEST_P(HttpStreamFactoryTest, GetLoadState) { |
| 1084 SpdySessionDependencies session_deps( | 1145 SpdySessionDependencies session_deps( |
| 1085 GetParam(), ProxyService::CreateDirect()); | 1146 GetParam(), ProxyService::CreateDirect()); |
| 1086 | 1147 |
| 1148 // Force asynchronous host resolutions, so that the LoadState will be |
| 1149 // resolving the host. |
| 1150 session_deps.host_resolver->set_synchronous_mode(false); |
| 1151 |
| 1087 StaticSocketDataProvider socket_data; | 1152 StaticSocketDataProvider socket_data; |
| 1088 socket_data.set_connect_data(MockConnect(ASYNC, OK)); | 1153 socket_data.set_connect_data(MockConnect(ASYNC, OK)); |
| 1089 session_deps.socket_factory->AddSocketDataProvider(&socket_data); | 1154 session_deps.socket_factory->AddSocketDataProvider(&socket_data); |
| 1090 | 1155 |
| 1091 std::unique_ptr<HttpNetworkSession> session( | 1156 std::unique_ptr<HttpNetworkSession> session( |
| 1092 SpdySessionDependencies::SpdyCreateSession(&session_deps)); | 1157 SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
| 1093 | 1158 |
| 1094 HttpRequestInfo request_info; | 1159 HttpRequestInfo request_info; |
| 1095 request_info.method = "GET"; | 1160 request_info.method = "GET"; |
| 1096 request_info.url = GURL("http://www.google.com"); | 1161 request_info.url = GURL("http://www.google.com"); |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1510 | 1575 |
| 1511 // Load a certificate that is valid for *.example.org | 1576 // Load a certificate that is valid for *.example.org |
| 1512 scoped_refptr<X509Certificate> test_cert( | 1577 scoped_refptr<X509Certificate> test_cert( |
| 1513 ImportCertFromFile(GetTestCertsDirectory(), "wildcard.pem")); | 1578 ImportCertFromFile(GetTestCertsDirectory(), "wildcard.pem")); |
| 1514 EXPECT_TRUE(test_cert.get()); | 1579 EXPECT_TRUE(test_cert.get()); |
| 1515 verify_details_.cert_verify_result.verified_cert = test_cert; | 1580 verify_details_.cert_verify_result.verified_cert = test_cert; |
| 1516 verify_details_.cert_verify_result.is_issued_by_known_root = true; | 1581 verify_details_.cert_verify_result.is_issued_by_known_root = true; |
| 1517 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_); | 1582 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_); |
| 1518 crypto_client_stream_factory_.set_handshake_mode( | 1583 crypto_client_stream_factory_.set_handshake_mode( |
| 1519 MockCryptoClientStream::CONFIRM_HANDSHAKE); | 1584 MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 1585 params_.cert_verifier = &cert_verifier_; |
| 1520 params_.quic_crypto_client_stream_factory = &crypto_client_stream_factory_; | 1586 params_.quic_crypto_client_stream_factory = &crypto_client_stream_factory_; |
| 1521 params_.quic_supported_versions = test::SupportedVersions(GetParam()); | 1587 params_.quic_supported_versions = test::SupportedVersions(GetParam()); |
| 1522 params_.transport_security_state = &transport_security_state_; | 1588 params_.transport_security_state = &transport_security_state_; |
| 1589 params_.cert_transparency_verifier = &ct_verifier_; |
| 1590 params_.ct_policy_enforcer = &ct_policy_enforcer_; |
| 1523 params_.host_resolver = &host_resolver_; | 1591 params_.host_resolver = &host_resolver_; |
| 1524 params_.proxy_service = proxy_service_.get(); | 1592 params_.proxy_service = proxy_service_.get(); |
| 1525 params_.ssl_config_service = ssl_config_service_.get(); | 1593 params_.ssl_config_service = ssl_config_service_.get(); |
| 1526 params_.client_socket_factory = &socket_factory_; | 1594 params_.client_socket_factory = &socket_factory_; |
| 1527 session_.reset(new HttpNetworkSession(params_)); | 1595 session_.reset(new HttpNetworkSession(params_)); |
| 1528 session_->quic_stream_factory()->set_require_confirmation(false); | 1596 session_->quic_stream_factory()->set_require_confirmation(false); |
| 1529 } | 1597 } |
| 1530 | 1598 |
| 1531 void AddQuicAlternativeService() { | 1599 void AddQuicAlternativeService() { |
| 1532 const AlternativeService alternative_service(QUIC, "www.example.org", 443); | 1600 const AlternativeService alternative_service(QUIC, "www.example.org", 443); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1550 | 1618 |
| 1551 HttpNetworkSession* session() { return session_.get(); } | 1619 HttpNetworkSession* session() { return session_.get(); } |
| 1552 | 1620 |
| 1553 private: | 1621 private: |
| 1554 MockClock* clock_; // Owned by QuicStreamFactory | 1622 MockClock* clock_; // Owned by QuicStreamFactory |
| 1555 test::QuicTestPacketMaker client_packet_maker_; | 1623 test::QuicTestPacketMaker client_packet_maker_; |
| 1556 test::QuicTestPacketMaker server_packet_maker_; | 1624 test::QuicTestPacketMaker server_packet_maker_; |
| 1557 MockClientSocketFactory socket_factory_; | 1625 MockClientSocketFactory socket_factory_; |
| 1558 std::unique_ptr<HttpNetworkSession> session_; | 1626 std::unique_ptr<HttpNetworkSession> session_; |
| 1559 test::MockRandom random_generator_; | 1627 test::MockRandom random_generator_; |
| 1628 MockCertVerifier cert_verifier_; |
| 1560 ProofVerifyDetailsChromium verify_details_; | 1629 ProofVerifyDetailsChromium verify_details_; |
| 1561 MockCryptoClientStreamFactory crypto_client_stream_factory_; | 1630 MockCryptoClientStreamFactory crypto_client_stream_factory_; |
| 1562 HttpServerPropertiesImpl http_server_properties_; | 1631 HttpServerPropertiesImpl http_server_properties_; |
| 1563 TransportSecurityState transport_security_state_; | 1632 TransportSecurityState transport_security_state_; |
| 1633 MultiLogCTVerifier ct_verifier_; |
| 1634 CTPolicyEnforcer ct_policy_enforcer_; |
| 1564 MockHostResolver host_resolver_; | 1635 MockHostResolver host_resolver_; |
| 1565 std::unique_ptr<ProxyService> proxy_service_; | 1636 std::unique_ptr<ProxyService> proxy_service_; |
| 1566 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service_; | 1637 scoped_refptr<SSLConfigServiceDefaults> ssl_config_service_; |
| 1567 HttpNetworkSession::Params params_; | 1638 HttpNetworkSession::Params params_; |
| 1568 }; | 1639 }; |
| 1569 | 1640 |
| 1570 INSTANTIATE_TEST_CASE_P(Version, | 1641 INSTANTIATE_TEST_CASE_P(Version, |
| 1571 HttpStreamFactoryBidirectionalQuicTest, | 1642 HttpStreamFactoryBidirectionalQuicTest, |
| 1572 ::testing::ValuesIn(QuicSupportedVersions())); | 1643 ::testing::ValuesIn(QuicSupportedVersions())); |
| 1573 | 1644 |
| (...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2008 session->GetTransportSocketPool( | 2079 session->GetTransportSocketPool( |
| 2009 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); | 2080 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); |
| 2010 EXPECT_EQ(1, GetSocketPoolGroupCount( | 2081 EXPECT_EQ(1, GetSocketPoolGroupCount( |
| 2011 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); | 2082 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); |
| 2012 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); | 2083 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); |
| 2013 } | 2084 } |
| 2014 | 2085 |
| 2015 } // namespace | 2086 } // namespace |
| 2016 | 2087 |
| 2017 } // namespace net | 2088 } // namespace net |
| OLD | NEW |