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