OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/http/http_stream_factory_impl.h" | 5 #include "net/http/http_stream_factory_impl.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <string> | 10 #include <string> |
(...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
685 // list. | 685 // list. |
686 HttpRequestInfo request_info; | 686 HttpRequestInfo request_info; |
687 request_info.method = "GET"; | 687 request_info.method = "GET"; |
688 request_info.url = GURL("http://www.google.com"); | 688 request_info.url = GURL("http://www.google.com"); |
689 | 689 |
690 SSLConfig ssl_config; | 690 SSLConfig ssl_config; |
691 StreamRequestWaiter waiter; | 691 StreamRequestWaiter waiter; |
692 std::unique_ptr<HttpStreamRequest> request( | 692 std::unique_ptr<HttpStreamRequest> request( |
693 session->http_stream_factory()->RequestStream( | 693 session->http_stream_factory()->RequestStream( |
694 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 694 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
695 NetLogWithSource())); | 695 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
696 waiter.WaitForStream(); | 696 waiter.WaitForStream(); |
697 | 697 |
698 // The proxy that failed should now be known to the proxy_service as bad. | 698 // The proxy that failed should now be known to the proxy_service as bad. |
699 const ProxyRetryInfoMap& retry_info = | 699 const ProxyRetryInfoMap& retry_info = |
700 session->proxy_service()->proxy_retry_info(); | 700 session->proxy_service()->proxy_retry_info(); |
701 EXPECT_EQ(1u, retry_info.size()); | 701 EXPECT_EQ(1u, retry_info.size()); |
702 ProxyRetryInfoMap::const_iterator iter = retry_info.find("bad:99"); | 702 ProxyRetryInfoMap::const_iterator iter = retry_info.find("bad:99"); |
703 EXPECT_TRUE(iter != retry_info.end()); | 703 EXPECT_TRUE(iter != retry_info.end()); |
704 } | 704 } |
705 | 705 |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
769 // list. | 769 // list. |
770 HttpRequestInfo request_info; | 770 HttpRequestInfo request_info; |
771 request_info.method = "GET"; | 771 request_info.method = "GET"; |
772 request_info.url = GURL("http://www.google.com"); | 772 request_info.url = GURL("http://www.google.com"); |
773 | 773 |
774 SSLConfig ssl_config; | 774 SSLConfig ssl_config; |
775 StreamRequestWaiter waiter; | 775 StreamRequestWaiter waiter; |
776 std::unique_ptr<HttpStreamRequest> request( | 776 std::unique_ptr<HttpStreamRequest> request( |
777 session->http_stream_factory()->RequestStream( | 777 session->http_stream_factory()->RequestStream( |
778 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 778 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
779 NetLogWithSource())); | 779 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
780 waiter.WaitForStream(); | 780 waiter.WaitForStream(); |
781 | 781 |
782 // The proxy that failed should now be known to the proxy_service as bad. | 782 // The proxy that failed should now be known to the proxy_service as bad. |
783 const ProxyRetryInfoMap& retry_info = | 783 const ProxyRetryInfoMap& retry_info = |
784 session->proxy_service()->proxy_retry_info(); | 784 session->proxy_service()->proxy_retry_info(); |
785 EXPECT_EQ(1u, retry_info.size()) << quic_proxy_test_mock_errors[i]; | 785 EXPECT_EQ(1u, retry_info.size()) << quic_proxy_test_mock_errors[i]; |
786 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); | 786 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); |
787 | 787 |
788 ProxyRetryInfoMap::const_iterator iter = retry_info.find("quic://bad:99"); | 788 ProxyRetryInfoMap::const_iterator iter = retry_info.find("quic://bad:99"); |
789 EXPECT_TRUE(iter != retry_info.end()) << quic_proxy_test_mock_errors[i]; | 789 EXPECT_TRUE(iter != retry_info.end()) << quic_proxy_test_mock_errors[i]; |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
972 | 972 |
973 // Start two requests. The first request should consume data from | 973 // Start two requests. The first request should consume data from |
974 // |socket_data_proxy_main_job|, | 974 // |socket_data_proxy_main_job|, |
975 // |socket_data_proxy_alternate_job| and | 975 // |socket_data_proxy_alternate_job| and |
976 // |socket_data_direct_first_request|. The second request should consume | 976 // |socket_data_direct_first_request|. The second request should consume |
977 // data from |socket_data_direct_second_request|. | 977 // data from |socket_data_direct_second_request|. |
978 for (size_t i = 0; i < 2; ++i) { | 978 for (size_t i = 0; i < 2; ++i) { |
979 std::unique_ptr<HttpStreamRequest> request( | 979 std::unique_ptr<HttpStreamRequest> request( |
980 session->http_stream_factory()->RequestStream( | 980 session->http_stream_factory()->RequestStream( |
981 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 981 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
982 NetLogWithSource())); | 982 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
983 waiter.WaitForStream(); | 983 waiter.WaitForStream(); |
984 | 984 |
985 // The proxy that failed should now be known to the proxy_service as | 985 // The proxy that failed should now be known to the proxy_service as |
986 // bad. | 986 // bad. |
987 const ProxyRetryInfoMap retry_info = | 987 const ProxyRetryInfoMap retry_info = |
988 session->proxy_service()->proxy_retry_info(); | 988 session->proxy_service()->proxy_retry_info(); |
989 EXPECT_EQ(2u, retry_info.size()) << mock_error; | 989 EXPECT_EQ(2u, retry_info.size()) << mock_error; |
990 | 990 |
991 // Verify that request was fetched without proxy. | 991 // Verify that request was fetched without proxy. |
992 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); | 992 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1075 | 1075 |
1076 EXPECT_TRUE(test_proxy_delegate.alternative_proxy_server().is_quic()); | 1076 EXPECT_TRUE(test_proxy_delegate.alternative_proxy_server().is_quic()); |
1077 | 1077 |
1078 // Start two requests. The first request should consume data from | 1078 // Start two requests. The first request should consume data from |
1079 // |socket_data_proxy_main_job| and |socket_data_https_first|. | 1079 // |socket_data_proxy_main_job| and |socket_data_https_first|. |
1080 // The second request should consume data from |socket_data_https_second|. | 1080 // The second request should consume data from |socket_data_https_second|. |
1081 for (size_t i = 0; i < 2; ++i) { | 1081 for (size_t i = 0; i < 2; ++i) { |
1082 std::unique_ptr<HttpStreamRequest> request( | 1082 std::unique_ptr<HttpStreamRequest> request( |
1083 session->http_stream_factory()->RequestStream( | 1083 session->http_stream_factory()->RequestStream( |
1084 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1084 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1085 NetLogWithSource())); | 1085 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1086 waiter.WaitForStream(); | 1086 waiter.WaitForStream(); |
1087 | 1087 |
1088 // The proxy that failed should now be known to the proxy_service as | 1088 // The proxy that failed should now be known to the proxy_service as |
1089 // bad. | 1089 // bad. |
1090 const ProxyRetryInfoMap retry_info = | 1090 const ProxyRetryInfoMap retry_info = |
1091 session->proxy_service()->proxy_retry_info(); | 1091 session->proxy_service()->proxy_retry_info(); |
1092 // Proxy should not be marked as bad. | 1092 // Proxy should not be marked as bad. |
1093 EXPECT_EQ(0u, retry_info.size()) << mock_error; | 1093 EXPECT_EQ(0u, retry_info.size()) << mock_error; |
1094 // Verify that request was fetched using proxy. | 1094 // Verify that request was fetched using proxy. |
1095 EXPECT_TRUE(waiter.used_proxy_info().is_https()); | 1095 EXPECT_TRUE(waiter.used_proxy_info().is_https()); |
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1419 request_info.method = "GET"; | 1419 request_info.method = "GET"; |
1420 request_info.url = GURL("https://www.google.com"); | 1420 request_info.url = GURL("https://www.google.com"); |
1421 request_info.load_flags = 0; | 1421 request_info.load_flags = 0; |
1422 request_info.privacy_mode = PRIVACY_MODE_DISABLED; | 1422 request_info.privacy_mode = PRIVACY_MODE_DISABLED; |
1423 | 1423 |
1424 SSLConfig ssl_config; | 1424 SSLConfig ssl_config; |
1425 StreamRequestWaiter waiter; | 1425 StreamRequestWaiter waiter; |
1426 std::unique_ptr<HttpStreamRequest> request( | 1426 std::unique_ptr<HttpStreamRequest> request( |
1427 session->http_stream_factory()->RequestStream( | 1427 session->http_stream_factory()->RequestStream( |
1428 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1428 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1429 NetLogWithSource())); | 1429 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1430 waiter.WaitForStream(); | 1430 waiter.WaitForStream(); |
1431 | 1431 |
1432 // The stream shouldn't come from spdy as we are using different privacy mode | 1432 // The stream shouldn't come from spdy as we are using different privacy mode |
1433 EXPECT_FALSE(request->using_spdy()); | 1433 EXPECT_FALSE(request->using_spdy()); |
1434 | 1434 |
1435 SSLConfig used_ssl_config = waiter.used_ssl_config(); | 1435 SSLConfig used_ssl_config = waiter.used_ssl_config(); |
1436 EXPECT_EQ(used_ssl_config.channel_id_enabled, ssl_config.channel_id_enabled); | 1436 EXPECT_EQ(used_ssl_config.channel_id_enabled, ssl_config.channel_id_enabled); |
1437 } | 1437 } |
1438 | 1438 |
1439 namespace { | 1439 namespace { |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1495 request_info.url = GURL("https://www.google.com"); | 1495 request_info.url = GURL("https://www.google.com"); |
1496 request_info.load_flags = 0; | 1496 request_info.load_flags = 0; |
1497 request_info.privacy_mode = PRIVACY_MODE_DISABLED; | 1497 request_info.privacy_mode = PRIVACY_MODE_DISABLED; |
1498 | 1498 |
1499 SSLConfig ssl_config; | 1499 SSLConfig ssl_config; |
1500 StreamRequestWaiter waiter; | 1500 StreamRequestWaiter waiter; |
1501 | 1501 |
1502 std::unique_ptr<HttpStreamRequest> request1( | 1502 std::unique_ptr<HttpStreamRequest> request1( |
1503 session->http_stream_factory()->RequestStream( | 1503 session->http_stream_factory()->RequestStream( |
1504 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1504 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1505 NetLogWithSource())); | 1505 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1506 waiter.WaitForStream(); | 1506 waiter.WaitForStream(); |
1507 | 1507 |
1508 EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 1); | 1508 EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 1); |
1509 | 1509 |
1510 std::unique_ptr<HttpStreamRequest> request2( | 1510 std::unique_ptr<HttpStreamRequest> request2( |
1511 session->http_stream_factory()->RequestStream( | 1511 session->http_stream_factory()->RequestStream( |
1512 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1512 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1513 NetLogWithSource())); | 1513 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1514 waiter.WaitForStream(); | 1514 waiter.WaitForStream(); |
1515 | 1515 |
1516 EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 1); | 1516 EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 1); |
1517 | 1517 |
1518 request_info.privacy_mode = PRIVACY_MODE_ENABLED; | 1518 request_info.privacy_mode = PRIVACY_MODE_ENABLED; |
1519 std::unique_ptr<HttpStreamRequest> request3( | 1519 std::unique_ptr<HttpStreamRequest> request3( |
1520 session->http_stream_factory()->RequestStream( | 1520 session->http_stream_factory()->RequestStream( |
1521 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1521 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1522 NetLogWithSource())); | 1522 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1523 waiter.WaitForStream(); | 1523 waiter.WaitForStream(); |
1524 | 1524 |
1525 EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 2); | 1525 EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 2); |
1526 } | 1526 } |
1527 | 1527 |
1528 TEST_F(HttpStreamFactoryTest, GetLoadState) { | 1528 TEST_F(HttpStreamFactoryTest, GetLoadState) { |
1529 SpdySessionDependencies session_deps(ProxyService::CreateDirect()); | 1529 SpdySessionDependencies session_deps(ProxyService::CreateDirect()); |
1530 | 1530 |
1531 // Force asynchronous host resolutions, so that the LoadState will be | 1531 // Force asynchronous host resolutions, so that the LoadState will be |
1532 // resolving the host. | 1532 // resolving the host. |
1533 session_deps.host_resolver->set_synchronous_mode(false); | 1533 session_deps.host_resolver->set_synchronous_mode(false); |
1534 | 1534 |
1535 StaticSocketDataProvider socket_data; | 1535 StaticSocketDataProvider socket_data; |
1536 socket_data.set_connect_data(MockConnect(ASYNC, OK)); | 1536 socket_data.set_connect_data(MockConnect(ASYNC, OK)); |
1537 session_deps.socket_factory->AddSocketDataProvider(&socket_data); | 1537 session_deps.socket_factory->AddSocketDataProvider(&socket_data); |
1538 | 1538 |
1539 std::unique_ptr<HttpNetworkSession> session( | 1539 std::unique_ptr<HttpNetworkSession> session( |
1540 SpdySessionDependencies::SpdyCreateSession(&session_deps)); | 1540 SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
1541 | 1541 |
1542 HttpRequestInfo request_info; | 1542 HttpRequestInfo request_info; |
1543 request_info.method = "GET"; | 1543 request_info.method = "GET"; |
1544 request_info.url = GURL("http://www.google.com"); | 1544 request_info.url = GURL("http://www.google.com"); |
1545 | 1545 |
1546 SSLConfig ssl_config; | 1546 SSLConfig ssl_config; |
1547 StreamRequestWaiter waiter; | 1547 StreamRequestWaiter waiter; |
1548 std::unique_ptr<HttpStreamRequest> request( | 1548 std::unique_ptr<HttpStreamRequest> request( |
1549 session->http_stream_factory()->RequestStream( | 1549 session->http_stream_factory()->RequestStream( |
1550 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1550 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1551 NetLogWithSource())); | 1551 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1552 | 1552 |
1553 EXPECT_EQ(LOAD_STATE_RESOLVING_HOST, request->GetLoadState()); | 1553 EXPECT_EQ(LOAD_STATE_RESOLVING_HOST, request->GetLoadState()); |
1554 | 1554 |
1555 waiter.WaitForStream(); | 1555 waiter.WaitForStream(); |
1556 } | 1556 } |
1557 | 1557 |
1558 TEST_F(HttpStreamFactoryTest, RequestHttpStream) { | 1558 TEST_F(HttpStreamFactoryTest, RequestHttpStream) { |
1559 SpdySessionDependencies session_deps(ProxyService::CreateDirect()); | 1559 SpdySessionDependencies session_deps(ProxyService::CreateDirect()); |
1560 | 1560 |
1561 StaticSocketDataProvider socket_data; | 1561 StaticSocketDataProvider socket_data; |
1562 socket_data.set_connect_data(MockConnect(ASYNC, OK)); | 1562 socket_data.set_connect_data(MockConnect(ASYNC, OK)); |
1563 session_deps.socket_factory->AddSocketDataProvider(&socket_data); | 1563 session_deps.socket_factory->AddSocketDataProvider(&socket_data); |
1564 | 1564 |
1565 std::unique_ptr<HttpNetworkSession> session( | 1565 std::unique_ptr<HttpNetworkSession> session( |
1566 SpdySessionDependencies::SpdyCreateSession(&session_deps)); | 1566 SpdySessionDependencies::SpdyCreateSession(&session_deps)); |
1567 | 1567 |
1568 // Now request a stream. It should succeed using the second proxy in the | 1568 // Now request a stream. It should succeed using the second proxy in the |
1569 // list. | 1569 // list. |
1570 HttpRequestInfo request_info; | 1570 HttpRequestInfo request_info; |
1571 request_info.method = "GET"; | 1571 request_info.method = "GET"; |
1572 request_info.url = GURL("http://www.google.com"); | 1572 request_info.url = GURL("http://www.google.com"); |
1573 request_info.load_flags = 0; | 1573 request_info.load_flags = 0; |
1574 | 1574 |
1575 SSLConfig ssl_config; | 1575 SSLConfig ssl_config; |
1576 StreamRequestWaiter waiter; | 1576 StreamRequestWaiter waiter; |
1577 std::unique_ptr<HttpStreamRequest> request( | 1577 std::unique_ptr<HttpStreamRequest> request( |
1578 session->http_stream_factory()->RequestStream( | 1578 session->http_stream_factory()->RequestStream( |
1579 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1579 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1580 NetLogWithSource())); | 1580 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1581 waiter.WaitForStream(); | 1581 waiter.WaitForStream(); |
1582 EXPECT_TRUE(waiter.stream_done()); | 1582 EXPECT_TRUE(waiter.stream_done()); |
1583 ASSERT_TRUE(nullptr != waiter.stream()); | 1583 ASSERT_TRUE(nullptr != waiter.stream()); |
1584 EXPECT_TRUE(nullptr == waiter.websocket_stream()); | 1584 EXPECT_TRUE(nullptr == waiter.websocket_stream()); |
1585 | 1585 |
1586 EXPECT_EQ(0, GetSpdySessionCount(session.get())); | 1586 EXPECT_EQ(0, GetSpdySessionCount(session.get())); |
1587 EXPECT_EQ(1, GetSocketPoolGroupCount( | 1587 EXPECT_EQ(1, GetSocketPoolGroupCount( |
1588 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 1588 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
1589 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool( | 1589 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool( |
1590 HttpNetworkSession::NORMAL_SOCKET_POOL))); | 1590 HttpNetworkSession::NORMAL_SOCKET_POOL))); |
(...skipping 28 matching lines...) Expand all Loading... |
1619 request_info.method = "GET"; | 1619 request_info.method = "GET"; |
1620 request_info.url = GURL("https://www.google.com"); | 1620 request_info.url = GURL("https://www.google.com"); |
1621 request_info.load_flags = 0; | 1621 request_info.load_flags = 0; |
1622 | 1622 |
1623 SSLConfig ssl_config; | 1623 SSLConfig ssl_config; |
1624 StreamRequestWaiter waiter; | 1624 StreamRequestWaiter waiter; |
1625 EXPECT_EQ(0, GetSpdySessionCount(session.get())); | 1625 EXPECT_EQ(0, GetSpdySessionCount(session.get())); |
1626 std::unique_ptr<HttpStreamRequest> request( | 1626 std::unique_ptr<HttpStreamRequest> request( |
1627 session->http_stream_factory()->RequestStream( | 1627 session->http_stream_factory()->RequestStream( |
1628 request_info, LOWEST, ssl_config, ssl_config, &waiter, | 1628 request_info, LOWEST, ssl_config, ssl_config, &waiter, |
1629 NetLogWithSource())); | 1629 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1630 EXPECT_FALSE(waiter.stream_done()); | 1630 EXPECT_FALSE(waiter.stream_done()); |
1631 | 1631 |
1632 // Confirm a stream has been created by asserting that a new session | 1632 // Confirm a stream has been created by asserting that a new session |
1633 // has been created. (The stream is only created at the SPDY level on | 1633 // has been created. (The stream is only created at the SPDY level on |
1634 // first write, which happens after the request has returned a stream). | 1634 // first write, which happens after the request has returned a stream). |
1635 ASSERT_EQ(1, GetSpdySessionCount(session.get())); | 1635 ASSERT_EQ(1, GetSpdySessionCount(session.get())); |
1636 | 1636 |
1637 // Test to confirm that a SetPriority received after the stream is created | 1637 // Test to confirm that a SetPriority received after the stream is created |
1638 // but before the request returns it does not crash. | 1638 // but before the request returns it does not crash. |
1639 request->SetPriority(HIGHEST); | 1639 request->SetPriority(HIGHEST); |
(...skipping 22 matching lines...) Expand all Loading... |
1662 HttpRequestInfo request_info; | 1662 HttpRequestInfo request_info; |
1663 request_info.method = "GET"; | 1663 request_info.method = "GET"; |
1664 request_info.url = GURL("https://www.google.com"); | 1664 request_info.url = GURL("https://www.google.com"); |
1665 request_info.load_flags = 0; | 1665 request_info.load_flags = 0; |
1666 | 1666 |
1667 SSLConfig ssl_config; | 1667 SSLConfig ssl_config; |
1668 StreamRequestWaiter waiter; | 1668 StreamRequestWaiter waiter; |
1669 std::unique_ptr<HttpStreamRequest> request( | 1669 std::unique_ptr<HttpStreamRequest> request( |
1670 session->http_stream_factory()->RequestStream( | 1670 session->http_stream_factory()->RequestStream( |
1671 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1671 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1672 NetLogWithSource())); | 1672 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1673 waiter.WaitForStream(); | 1673 waiter.WaitForStream(); |
1674 EXPECT_TRUE(waiter.stream_done()); | 1674 EXPECT_TRUE(waiter.stream_done()); |
1675 ASSERT_TRUE(nullptr != waiter.stream()); | 1675 ASSERT_TRUE(nullptr != waiter.stream()); |
1676 EXPECT_TRUE(nullptr == waiter.websocket_stream()); | 1676 EXPECT_TRUE(nullptr == waiter.websocket_stream()); |
1677 | 1677 |
1678 EXPECT_EQ(0, GetSpdySessionCount(session.get())); | 1678 EXPECT_EQ(0, GetSpdySessionCount(session.get())); |
1679 EXPECT_EQ(1, GetSocketPoolGroupCount( | 1679 EXPECT_EQ(1, GetSocketPoolGroupCount( |
1680 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 1680 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
1681 EXPECT_EQ(1, GetSocketPoolGroupCount( | 1681 EXPECT_EQ(1, GetSocketPoolGroupCount( |
1682 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 1682 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
(...skipping 21 matching lines...) Expand all Loading... |
1704 HttpRequestInfo request_info; | 1704 HttpRequestInfo request_info; |
1705 request_info.method = "GET"; | 1705 request_info.method = "GET"; |
1706 request_info.url = GURL("http://www.google.com"); | 1706 request_info.url = GURL("http://www.google.com"); |
1707 request_info.load_flags = 0; | 1707 request_info.load_flags = 0; |
1708 | 1708 |
1709 SSLConfig ssl_config; | 1709 SSLConfig ssl_config; |
1710 StreamRequestWaiter waiter; | 1710 StreamRequestWaiter waiter; |
1711 std::unique_ptr<HttpStreamRequest> request( | 1711 std::unique_ptr<HttpStreamRequest> request( |
1712 session->http_stream_factory()->RequestStream( | 1712 session->http_stream_factory()->RequestStream( |
1713 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1713 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1714 NetLogWithSource())); | 1714 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1715 waiter.WaitForStream(); | 1715 waiter.WaitForStream(); |
1716 EXPECT_TRUE(waiter.stream_done()); | 1716 EXPECT_TRUE(waiter.stream_done()); |
1717 ASSERT_TRUE(nullptr != waiter.stream()); | 1717 ASSERT_TRUE(nullptr != waiter.stream()); |
1718 EXPECT_TRUE(nullptr == waiter.websocket_stream()); | 1718 EXPECT_TRUE(nullptr == waiter.websocket_stream()); |
1719 | 1719 |
1720 EXPECT_EQ(0, GetSpdySessionCount(session.get())); | 1720 EXPECT_EQ(0, GetSpdySessionCount(session.get())); |
1721 EXPECT_EQ(0, GetSocketPoolGroupCount( | 1721 EXPECT_EQ(0, GetSocketPoolGroupCount( |
1722 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 1722 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
1723 EXPECT_EQ(0, GetSocketPoolGroupCount( | 1723 EXPECT_EQ(0, GetSocketPoolGroupCount( |
1724 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 1724 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1786 histogram_tester.ExpectUniqueSample("Net.PreconnectSkippedToProxyServers", 1, | 1786 histogram_tester.ExpectUniqueSample("Net.PreconnectSkippedToProxyServers", 1, |
1787 num_preconnects - 1); | 1787 num_preconnects - 1); |
1788 | 1788 |
1789 // Start a request. This should cause subsequent preconnect to proxy server to | 1789 // Start a request. This should cause subsequent preconnect to proxy server to |
1790 // succeed. | 1790 // succeed. |
1791 SSLConfig ssl_config; | 1791 SSLConfig ssl_config; |
1792 StreamRequestWaiter waiter; | 1792 StreamRequestWaiter waiter; |
1793 std::unique_ptr<HttpStreamRequest> request( | 1793 std::unique_ptr<HttpStreamRequest> request( |
1794 session->http_stream_factory()->RequestStream( | 1794 session->http_stream_factory()->RequestStream( |
1795 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1795 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1796 NetLogWithSource())); | 1796 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1797 waiter.WaitForStream(); | 1797 waiter.WaitForStream(); |
1798 EXPECT_TRUE(waiter.stream_done()); | 1798 EXPECT_TRUE(waiter.stream_done()); |
1799 ASSERT_TRUE(nullptr != waiter.stream()); | 1799 ASSERT_TRUE(nullptr != waiter.stream()); |
1800 EXPECT_TRUE(nullptr == waiter.websocket_stream()); | 1800 EXPECT_TRUE(nullptr == waiter.websocket_stream()); |
1801 | 1801 |
1802 EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetSocketPoolForHTTPProxy( | 1802 EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetSocketPoolForHTTPProxy( |
1803 HttpNetworkSession::NORMAL_SOCKET_POOL, | 1803 HttpNetworkSession::NORMAL_SOCKET_POOL, |
1804 HostPortPair("myproxy.org", 443)))); | 1804 HostPortPair("myproxy.org", 443)))); |
1805 EXPECT_FALSE(waiter.used_proxy_info().is_direct()); | 1805 EXPECT_FALSE(waiter.used_proxy_info().is_direct()); |
1806 | 1806 |
(...skipping 28 matching lines...) Expand all Loading... |
1835 request_info.url = GURL("ws://www.google.com"); | 1835 request_info.url = GURL("ws://www.google.com"); |
1836 request_info.load_flags = 0; | 1836 request_info.load_flags = 0; |
1837 | 1837 |
1838 SSLConfig ssl_config; | 1838 SSLConfig ssl_config; |
1839 StreamRequestWaiter waiter; | 1839 StreamRequestWaiter waiter; |
1840 WebSocketStreamCreateHelper create_helper; | 1840 WebSocketStreamCreateHelper create_helper; |
1841 std::unique_ptr<HttpStreamRequest> request( | 1841 std::unique_ptr<HttpStreamRequest> request( |
1842 session->http_stream_factory_for_websocket() | 1842 session->http_stream_factory_for_websocket() |
1843 ->RequestWebSocketHandshakeStream( | 1843 ->RequestWebSocketHandshakeStream( |
1844 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1844 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1845 &create_helper, NetLogWithSource())); | 1845 &create_helper, |
| 1846 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1846 waiter.WaitForStream(); | 1847 waiter.WaitForStream(); |
1847 EXPECT_TRUE(waiter.stream_done()); | 1848 EXPECT_TRUE(waiter.stream_done()); |
1848 EXPECT_TRUE(nullptr == waiter.stream()); | 1849 EXPECT_TRUE(nullptr == waiter.stream()); |
1849 ASSERT_TRUE(nullptr != waiter.websocket_stream()); | 1850 ASSERT_TRUE(nullptr != waiter.websocket_stream()); |
1850 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeBasic, | 1851 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeBasic, |
1851 waiter.websocket_stream()->type()); | 1852 waiter.websocket_stream()->type()); |
1852 EXPECT_EQ(0, GetSocketPoolGroupCount( | 1853 EXPECT_EQ(0, GetSocketPoolGroupCount( |
1853 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 1854 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
1854 EXPECT_EQ(0, GetSocketPoolGroupCount( | 1855 EXPECT_EQ(0, GetSocketPoolGroupCount( |
1855 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 1856 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
(...skipping 22 matching lines...) Expand all Loading... |
1878 request_info.url = GURL("wss://www.google.com"); | 1879 request_info.url = GURL("wss://www.google.com"); |
1879 request_info.load_flags = 0; | 1880 request_info.load_flags = 0; |
1880 | 1881 |
1881 SSLConfig ssl_config; | 1882 SSLConfig ssl_config; |
1882 StreamRequestWaiter waiter; | 1883 StreamRequestWaiter waiter; |
1883 WebSocketStreamCreateHelper create_helper; | 1884 WebSocketStreamCreateHelper create_helper; |
1884 std::unique_ptr<HttpStreamRequest> request( | 1885 std::unique_ptr<HttpStreamRequest> request( |
1885 session->http_stream_factory_for_websocket() | 1886 session->http_stream_factory_for_websocket() |
1886 ->RequestWebSocketHandshakeStream( | 1887 ->RequestWebSocketHandshakeStream( |
1887 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1888 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1888 &create_helper, NetLogWithSource())); | 1889 &create_helper, |
| 1890 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1889 waiter.WaitForStream(); | 1891 waiter.WaitForStream(); |
1890 EXPECT_TRUE(waiter.stream_done()); | 1892 EXPECT_TRUE(waiter.stream_done()); |
1891 EXPECT_TRUE(nullptr == waiter.stream()); | 1893 EXPECT_TRUE(nullptr == waiter.stream()); |
1892 ASSERT_TRUE(nullptr != waiter.websocket_stream()); | 1894 ASSERT_TRUE(nullptr != waiter.websocket_stream()); |
1893 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeBasic, | 1895 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeBasic, |
1894 waiter.websocket_stream()->type()); | 1896 waiter.websocket_stream()->type()); |
1895 EXPECT_EQ(0, GetSocketPoolGroupCount( | 1897 EXPECT_EQ(0, GetSocketPoolGroupCount( |
1896 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 1898 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
1897 EXPECT_EQ(0, GetSocketPoolGroupCount( | 1899 EXPECT_EQ(0, GetSocketPoolGroupCount( |
1898 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 1900 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
(...skipping 20 matching lines...) Expand all Loading... |
1919 request_info.url = GURL("ws://www.google.com"); | 1921 request_info.url = GURL("ws://www.google.com"); |
1920 request_info.load_flags = 0; | 1922 request_info.load_flags = 0; |
1921 | 1923 |
1922 SSLConfig ssl_config; | 1924 SSLConfig ssl_config; |
1923 StreamRequestWaiter waiter; | 1925 StreamRequestWaiter waiter; |
1924 WebSocketStreamCreateHelper create_helper; | 1926 WebSocketStreamCreateHelper create_helper; |
1925 std::unique_ptr<HttpStreamRequest> request( | 1927 std::unique_ptr<HttpStreamRequest> request( |
1926 session->http_stream_factory_for_websocket() | 1928 session->http_stream_factory_for_websocket() |
1927 ->RequestWebSocketHandshakeStream( | 1929 ->RequestWebSocketHandshakeStream( |
1928 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1930 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1929 &create_helper, NetLogWithSource())); | 1931 &create_helper, |
| 1932 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1930 waiter.WaitForStream(); | 1933 waiter.WaitForStream(); |
1931 EXPECT_TRUE(waiter.stream_done()); | 1934 EXPECT_TRUE(waiter.stream_done()); |
1932 EXPECT_TRUE(nullptr == waiter.stream()); | 1935 EXPECT_TRUE(nullptr == waiter.stream()); |
1933 ASSERT_TRUE(nullptr != waiter.websocket_stream()); | 1936 ASSERT_TRUE(nullptr != waiter.websocket_stream()); |
1934 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeBasic, | 1937 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeBasic, |
1935 waiter.websocket_stream()->type()); | 1938 waiter.websocket_stream()->type()); |
1936 EXPECT_EQ(0, GetSocketPoolGroupCount( | 1939 EXPECT_EQ(0, GetSocketPoolGroupCount( |
1937 session->GetTransportSocketPool( | 1940 session->GetTransportSocketPool( |
1938 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); | 1941 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); |
1939 EXPECT_EQ(0, GetSocketPoolGroupCount( | 1942 EXPECT_EQ(0, GetSocketPoolGroupCount( |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1973 HttpRequestInfo request_info; | 1976 HttpRequestInfo request_info; |
1974 request_info.method = "GET"; | 1977 request_info.method = "GET"; |
1975 request_info.url = GURL("https://www.google.com"); | 1978 request_info.url = GURL("https://www.google.com"); |
1976 request_info.load_flags = 0; | 1979 request_info.load_flags = 0; |
1977 | 1980 |
1978 SSLConfig ssl_config; | 1981 SSLConfig ssl_config; |
1979 StreamRequestWaiter waiter; | 1982 StreamRequestWaiter waiter; |
1980 std::unique_ptr<HttpStreamRequest> request( | 1983 std::unique_ptr<HttpStreamRequest> request( |
1981 session->http_stream_factory()->RequestStream( | 1984 session->http_stream_factory()->RequestStream( |
1982 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 1985 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
1983 NetLogWithSource())); | 1986 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
1984 waiter.WaitForStream(); | 1987 waiter.WaitForStream(); |
1985 EXPECT_TRUE(waiter.stream_done()); | 1988 EXPECT_TRUE(waiter.stream_done()); |
1986 EXPECT_TRUE(nullptr == waiter.websocket_stream()); | 1989 EXPECT_TRUE(nullptr == waiter.websocket_stream()); |
1987 ASSERT_TRUE(nullptr != waiter.stream()); | 1990 ASSERT_TRUE(nullptr != waiter.stream()); |
1988 | 1991 |
1989 EXPECT_EQ(1, GetSpdySessionCount(session.get())); | 1992 EXPECT_EQ(1, GetSpdySessionCount(session.get())); |
1990 EXPECT_EQ(1, GetSocketPoolGroupCount( | 1993 EXPECT_EQ(1, GetSocketPoolGroupCount( |
1991 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 1994 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
1992 EXPECT_EQ(1, GetSocketPoolGroupCount( | 1995 EXPECT_EQ(1, GetSocketPoolGroupCount( |
1993 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 1996 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2027 HttpRequestInfo request_info; | 2030 HttpRequestInfo request_info; |
2028 request_info.method = "GET"; | 2031 request_info.method = "GET"; |
2029 request_info.url = GURL("http://www.google.com"); | 2032 request_info.url = GURL("http://www.google.com"); |
2030 request_info.load_flags = 0; | 2033 request_info.load_flags = 0; |
2031 | 2034 |
2032 SSLConfig ssl_config; | 2035 SSLConfig ssl_config; |
2033 StreamRequestWaiter waiter; | 2036 StreamRequestWaiter waiter; |
2034 std::unique_ptr<HttpStreamRequest> request( | 2037 std::unique_ptr<HttpStreamRequest> request( |
2035 session->http_stream_factory()->RequestStream( | 2038 session->http_stream_factory()->RequestStream( |
2036 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 2039 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
2037 NetLogWithSource())); | 2040 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
2038 waiter.WaitForStream(); | 2041 waiter.WaitForStream(); |
2039 EXPECT_TRUE(waiter.stream_done()); | 2042 EXPECT_TRUE(waiter.stream_done()); |
2040 EXPECT_TRUE(nullptr == waiter.websocket_stream()); | 2043 EXPECT_TRUE(nullptr == waiter.websocket_stream()); |
2041 ASSERT_TRUE(nullptr != waiter.stream()); | 2044 ASSERT_TRUE(nullptr != waiter.stream()); |
2042 | 2045 |
2043 EXPECT_EQ(1, GetSpdySessionCount(session.get())); | 2046 EXPECT_EQ(1, GetSpdySessionCount(session.get())); |
2044 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool( | 2047 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool( |
2045 HttpNetworkSession::NORMAL_SOCKET_POOL))); | 2048 HttpNetworkSession::NORMAL_SOCKET_POOL))); |
2046 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool( | 2049 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetSSLSocketPool( |
2047 HttpNetworkSession::NORMAL_SOCKET_POOL))); | 2050 HttpNetworkSession::NORMAL_SOCKET_POOL))); |
(...skipping 25 matching lines...) Expand all Loading... |
2073 HttpRequestInfo request_info; | 2076 HttpRequestInfo request_info; |
2074 request_info.method = "GET"; | 2077 request_info.method = "GET"; |
2075 request_info.url = GURL("https://www.google.com"); | 2078 request_info.url = GURL("https://www.google.com"); |
2076 request_info.load_flags = 0; | 2079 request_info.load_flags = 0; |
2077 | 2080 |
2078 SSLConfig ssl_config; | 2081 SSLConfig ssl_config; |
2079 StreamRequestWaiter waiter; | 2082 StreamRequestWaiter waiter; |
2080 std::unique_ptr<HttpStreamRequest> request( | 2083 std::unique_ptr<HttpStreamRequest> request( |
2081 session->http_stream_factory()->RequestBidirectionalStreamImpl( | 2084 session->http_stream_factory()->RequestBidirectionalStreamImpl( |
2082 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 2085 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
2083 NetLogWithSource())); | 2086 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
2084 waiter.WaitForStream(); | 2087 waiter.WaitForStream(); |
2085 EXPECT_TRUE(waiter.stream_done()); | 2088 EXPECT_TRUE(waiter.stream_done()); |
2086 EXPECT_FALSE(waiter.websocket_stream()); | 2089 EXPECT_FALSE(waiter.websocket_stream()); |
2087 ASSERT_FALSE(waiter.stream()); | 2090 ASSERT_FALSE(waiter.stream()); |
2088 ASSERT_TRUE(waiter.bidirectional_stream_impl()); | 2091 ASSERT_TRUE(waiter.bidirectional_stream_impl()); |
2089 EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetTransportSocketPool( | 2092 EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetTransportSocketPool( |
2090 HttpNetworkSession::NORMAL_SOCKET_POOL))); | 2093 HttpNetworkSession::NORMAL_SOCKET_POOL))); |
2091 EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetSSLSocketPool( | 2094 EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetSSLSocketPool( |
2092 HttpNetworkSession::NORMAL_SOCKET_POOL))); | 2095 HttpNetworkSession::NORMAL_SOCKET_POOL))); |
2093 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool( | 2096 EXPECT_EQ(0, GetSocketPoolGroupCount(session->GetTransportSocketPool( |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2246 SSLConfig ssl_config; | 2249 SSLConfig ssl_config; |
2247 HttpRequestInfo request_info; | 2250 HttpRequestInfo request_info; |
2248 request_info.method = "GET"; | 2251 request_info.method = "GET"; |
2249 request_info.url = default_url_; | 2252 request_info.url = default_url_; |
2250 request_info.load_flags = 0; | 2253 request_info.load_flags = 0; |
2251 | 2254 |
2252 StreamRequestWaiter waiter; | 2255 StreamRequestWaiter waiter; |
2253 std::unique_ptr<HttpStreamRequest> request( | 2256 std::unique_ptr<HttpStreamRequest> request( |
2254 session()->http_stream_factory()->RequestBidirectionalStreamImpl( | 2257 session()->http_stream_factory()->RequestBidirectionalStreamImpl( |
2255 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 2258 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
2256 NetLogWithSource())); | 2259 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
2257 | 2260 |
2258 waiter.WaitForStream(); | 2261 waiter.WaitForStream(); |
2259 EXPECT_TRUE(waiter.stream_done()); | 2262 EXPECT_TRUE(waiter.stream_done()); |
2260 EXPECT_FALSE(waiter.websocket_stream()); | 2263 EXPECT_FALSE(waiter.websocket_stream()); |
2261 ASSERT_FALSE(waiter.stream()); | 2264 ASSERT_FALSE(waiter.stream()); |
2262 ASSERT_TRUE(waiter.bidirectional_stream_impl()); | 2265 ASSERT_TRUE(waiter.bidirectional_stream_impl()); |
2263 BidirectionalStreamImpl* stream_impl = waiter.bidirectional_stream_impl(); | 2266 BidirectionalStreamImpl* stream_impl = waiter.bidirectional_stream_impl(); |
2264 | 2267 |
2265 BidirectionalStreamRequestInfo bidi_request_info; | 2268 BidirectionalStreamRequestInfo bidi_request_info; |
2266 bidi_request_info.method = "GET"; | 2269 bidi_request_info.method = "GET"; |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2311 SSLConfig ssl_config; | 2314 SSLConfig ssl_config; |
2312 HttpRequestInfo request_info; | 2315 HttpRequestInfo request_info; |
2313 request_info.method = "GET"; | 2316 request_info.method = "GET"; |
2314 request_info.url = default_url_; | 2317 request_info.url = default_url_; |
2315 request_info.load_flags = 0; | 2318 request_info.load_flags = 0; |
2316 | 2319 |
2317 StreamRequestWaiter waiter; | 2320 StreamRequestWaiter waiter; |
2318 std::unique_ptr<HttpStreamRequest> request( | 2321 std::unique_ptr<HttpStreamRequest> request( |
2319 session()->http_stream_factory()->RequestBidirectionalStreamImpl( | 2322 session()->http_stream_factory()->RequestBidirectionalStreamImpl( |
2320 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 2323 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
2321 NetLogWithSource())); | 2324 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
2322 | 2325 |
2323 waiter.WaitForStream(); | 2326 waiter.WaitForStream(); |
2324 EXPECT_TRUE(waiter.stream_done()); | 2327 EXPECT_TRUE(waiter.stream_done()); |
2325 EXPECT_FALSE(waiter.websocket_stream()); | 2328 EXPECT_FALSE(waiter.websocket_stream()); |
2326 ASSERT_FALSE(waiter.stream()); | 2329 ASSERT_FALSE(waiter.stream()); |
2327 ASSERT_FALSE(waiter.bidirectional_stream_impl()); | 2330 ASSERT_FALSE(waiter.bidirectional_stream_impl()); |
2328 // Since the alternative service job is not started, we will get the error | 2331 // Since the alternative service job is not started, we will get the error |
2329 // from the http job. | 2332 // from the http job. |
2330 ASSERT_THAT(waiter.error_status(), IsError(ERR_CONNECTION_REFUSED)); | 2333 ASSERT_THAT(waiter.error_status(), IsError(ERR_CONNECTION_REFUSED)); |
2331 } | 2334 } |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2373 SSLConfig ssl_config; | 2376 SSLConfig ssl_config; |
2374 HttpRequestInfo request_info; | 2377 HttpRequestInfo request_info; |
2375 request_info.method = "GET"; | 2378 request_info.method = "GET"; |
2376 request_info.url = default_url_; | 2379 request_info.url = default_url_; |
2377 request_info.load_flags = 0; | 2380 request_info.load_flags = 0; |
2378 | 2381 |
2379 StreamRequestWaiter waiter; | 2382 StreamRequestWaiter waiter; |
2380 std::unique_ptr<HttpStreamRequest> request( | 2383 std::unique_ptr<HttpStreamRequest> request( |
2381 session()->http_stream_factory()->RequestBidirectionalStreamImpl( | 2384 session()->http_stream_factory()->RequestBidirectionalStreamImpl( |
2382 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 2385 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
2383 NetLogWithSource())); | 2386 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
2384 | 2387 |
2385 waiter.WaitForStream(); | 2388 waiter.WaitForStream(); |
2386 EXPECT_TRUE(waiter.stream_done()); | 2389 EXPECT_TRUE(waiter.stream_done()); |
2387 EXPECT_FALSE(waiter.websocket_stream()); | 2390 EXPECT_FALSE(waiter.websocket_stream()); |
2388 ASSERT_FALSE(waiter.stream()); | 2391 ASSERT_FALSE(waiter.stream()); |
2389 ASSERT_TRUE(waiter.bidirectional_stream_impl()); | 2392 ASSERT_TRUE(waiter.bidirectional_stream_impl()); |
2390 BidirectionalStreamImpl* stream_impl = waiter.bidirectional_stream_impl(); | 2393 BidirectionalStreamImpl* stream_impl = waiter.bidirectional_stream_impl(); |
2391 | 2394 |
2392 BidirectionalStreamRequestInfo bidi_request_info; | 2395 BidirectionalStreamRequestInfo bidi_request_info; |
2393 bidi_request_info.method = "GET"; | 2396 bidi_request_info.method = "GET"; |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2440 HttpRequestInfo request_info; | 2443 HttpRequestInfo request_info; |
2441 request_info.method = "GET"; | 2444 request_info.method = "GET"; |
2442 request_info.url = GURL("https://www.google.com"); | 2445 request_info.url = GURL("https://www.google.com"); |
2443 request_info.load_flags = 0; | 2446 request_info.load_flags = 0; |
2444 | 2447 |
2445 SSLConfig ssl_config; | 2448 SSLConfig ssl_config; |
2446 StreamRequestWaiter waiter; | 2449 StreamRequestWaiter waiter; |
2447 std::unique_ptr<HttpStreamRequest> request( | 2450 std::unique_ptr<HttpStreamRequest> request( |
2448 session->http_stream_factory()->RequestBidirectionalStreamImpl( | 2451 session->http_stream_factory()->RequestBidirectionalStreamImpl( |
2449 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 2452 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
2450 NetLogWithSource())); | 2453 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
2451 waiter.WaitForStream(); | 2454 waiter.WaitForStream(); |
2452 EXPECT_TRUE(waiter.stream_done()); | 2455 EXPECT_TRUE(waiter.stream_done()); |
2453 ASSERT_THAT(waiter.error_status(), IsError(ERR_FAILED)); | 2456 ASSERT_THAT(waiter.error_status(), IsError(ERR_FAILED)); |
2454 EXPECT_FALSE(waiter.websocket_stream()); | 2457 EXPECT_FALSE(waiter.websocket_stream()); |
2455 ASSERT_FALSE(waiter.stream()); | 2458 ASSERT_FALSE(waiter.stream()); |
2456 ASSERT_FALSE(waiter.bidirectional_stream_impl()); | 2459 ASSERT_FALSE(waiter.bidirectional_stream_impl()); |
2457 EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetTransportSocketPool( | 2460 EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetTransportSocketPool( |
2458 HttpNetworkSession::NORMAL_SOCKET_POOL))); | 2461 HttpNetworkSession::NORMAL_SOCKET_POOL))); |
2459 EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetSSLSocketPool( | 2462 EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetSSLSocketPool( |
2460 HttpNetworkSession::NORMAL_SOCKET_POOL))); | 2463 HttpNetworkSession::NORMAL_SOCKET_POOL))); |
(...skipping 27 matching lines...) Expand all Loading... |
2488 request_info.url = GURL("wss://www.google.com"); | 2491 request_info.url = GURL("wss://www.google.com"); |
2489 request_info.load_flags = 0; | 2492 request_info.load_flags = 0; |
2490 | 2493 |
2491 SSLConfig ssl_config; | 2494 SSLConfig ssl_config; |
2492 StreamRequestWaiter waiter1; | 2495 StreamRequestWaiter waiter1; |
2493 WebSocketStreamCreateHelper create_helper; | 2496 WebSocketStreamCreateHelper create_helper; |
2494 std::unique_ptr<HttpStreamRequest> request1( | 2497 std::unique_ptr<HttpStreamRequest> request1( |
2495 session->http_stream_factory_for_websocket() | 2498 session->http_stream_factory_for_websocket() |
2496 ->RequestWebSocketHandshakeStream( | 2499 ->RequestWebSocketHandshakeStream( |
2497 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter1, | 2500 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter1, |
2498 &create_helper, NetLogWithSource())); | 2501 &create_helper, |
| 2502 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
2499 waiter1.WaitForStream(); | 2503 waiter1.WaitForStream(); |
2500 EXPECT_TRUE(waiter1.stream_done()); | 2504 EXPECT_TRUE(waiter1.stream_done()); |
2501 ASSERT_TRUE(nullptr != waiter1.websocket_stream()); | 2505 ASSERT_TRUE(nullptr != waiter1.websocket_stream()); |
2502 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeBasic, | 2506 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeBasic, |
2503 waiter1.websocket_stream()->type()); | 2507 waiter1.websocket_stream()->type()); |
2504 EXPECT_TRUE(nullptr == waiter1.stream()); | 2508 EXPECT_TRUE(nullptr == waiter1.stream()); |
2505 | 2509 |
2506 EXPECT_EQ(0, GetSocketPoolGroupCount( | 2510 EXPECT_EQ(0, GetSocketPoolGroupCount( |
2507 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 2511 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
2508 EXPECT_EQ(0, GetSocketPoolGroupCount( | 2512 EXPECT_EQ(0, GetSocketPoolGroupCount( |
(...skipping 26 matching lines...) Expand all Loading... |
2535 request_info.url = GURL("wss://www.google.com"); | 2539 request_info.url = GURL("wss://www.google.com"); |
2536 request_info.load_flags = 0; | 2540 request_info.load_flags = 0; |
2537 | 2541 |
2538 SSLConfig ssl_config; | 2542 SSLConfig ssl_config; |
2539 StreamRequestWaiter waiter1; | 2543 StreamRequestWaiter waiter1; |
2540 WebSocketStreamCreateHelper create_helper; | 2544 WebSocketStreamCreateHelper create_helper; |
2541 std::unique_ptr<HttpStreamRequest> request1( | 2545 std::unique_ptr<HttpStreamRequest> request1( |
2542 session->http_stream_factory_for_websocket() | 2546 session->http_stream_factory_for_websocket() |
2543 ->RequestWebSocketHandshakeStream( | 2547 ->RequestWebSocketHandshakeStream( |
2544 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter1, | 2548 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter1, |
2545 &create_helper, NetLogWithSource())); | 2549 &create_helper, |
| 2550 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
2546 waiter1.WaitForStream(); | 2551 waiter1.WaitForStream(); |
2547 EXPECT_TRUE(waiter1.stream_done()); | 2552 EXPECT_TRUE(waiter1.stream_done()); |
2548 ASSERT_TRUE(nullptr != waiter1.websocket_stream()); | 2553 ASSERT_TRUE(nullptr != waiter1.websocket_stream()); |
2549 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeSpdy, | 2554 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeSpdy, |
2550 waiter1.websocket_stream()->type()); | 2555 waiter1.websocket_stream()->type()); |
2551 EXPECT_TRUE(nullptr == waiter1.stream()); | 2556 EXPECT_TRUE(nullptr == waiter1.stream()); |
2552 | 2557 |
2553 StreamRequestWaiter waiter2; | 2558 StreamRequestWaiter waiter2; |
2554 std::unique_ptr<HttpStreamRequest> request2( | 2559 std::unique_ptr<HttpStreamRequest> request2( |
2555 session->http_stream_factory_for_websocket() | 2560 session->http_stream_factory_for_websocket() |
2556 ->RequestWebSocketHandshakeStream( | 2561 ->RequestWebSocketHandshakeStream( |
2557 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter2, | 2562 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter2, |
2558 &create_helper, NetLogWithSource())); | 2563 &create_helper, |
| 2564 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
2559 waiter2.WaitForStream(); | 2565 waiter2.WaitForStream(); |
2560 EXPECT_TRUE(waiter2.stream_done()); | 2566 EXPECT_TRUE(waiter2.stream_done()); |
2561 ASSERT_TRUE(nullptr != waiter2.websocket_stream()); | 2567 ASSERT_TRUE(nullptr != waiter2.websocket_stream()); |
2562 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeSpdy, | 2568 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeSpdy, |
2563 waiter2.websocket_stream()->type()); | 2569 waiter2.websocket_stream()->type()); |
2564 EXPECT_TRUE(nullptr == waiter2.stream()); | 2570 EXPECT_TRUE(nullptr == waiter2.stream()); |
2565 EXPECT_NE(waiter2.websocket_stream(), waiter1.websocket_stream()); | 2571 EXPECT_NE(waiter2.websocket_stream(), waiter1.websocket_stream()); |
2566 EXPECT_EQ(static_cast<WebSocketSpdyHandshakeStream*>( | 2572 EXPECT_EQ(static_cast<WebSocketSpdyHandshakeStream*>( |
2567 waiter2.websocket_stream())->spdy_session(), | 2573 waiter2.websocket_stream())->spdy_session(), |
2568 static_cast<WebSocketSpdyHandshakeStream*>( | 2574 static_cast<WebSocketSpdyHandshakeStream*>( |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2614 host_port_pair.port()), | 2620 host_port_pair.port()), |
2615 AlternativeService(kProtoHTTP2, "www.google.com", 9999), expiration); | 2621 AlternativeService(kProtoHTTP2, "www.google.com", 9999), expiration); |
2616 | 2622 |
2617 SSLConfig ssl_config; | 2623 SSLConfig ssl_config; |
2618 StreamRequestWaiter waiter; | 2624 StreamRequestWaiter waiter; |
2619 WebSocketStreamCreateHelper create_helper; | 2625 WebSocketStreamCreateHelper create_helper; |
2620 std::unique_ptr<HttpStreamRequest> request( | 2626 std::unique_ptr<HttpStreamRequest> request( |
2621 session->http_stream_factory_for_websocket() | 2627 session->http_stream_factory_for_websocket() |
2622 ->RequestWebSocketHandshakeStream( | 2628 ->RequestWebSocketHandshakeStream( |
2623 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, | 2629 request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter, |
2624 &create_helper, NetLogWithSource())); | 2630 &create_helper, |
| 2631 /* enable_ip_based_pooling = */ true, NetLogWithSource())); |
2625 waiter.WaitForStream(); | 2632 waiter.WaitForStream(); |
2626 EXPECT_TRUE(waiter.stream_done()); | 2633 EXPECT_TRUE(waiter.stream_done()); |
2627 EXPECT_TRUE(nullptr == waiter.stream()); | 2634 EXPECT_TRUE(nullptr == waiter.stream()); |
2628 ASSERT_TRUE(nullptr != waiter.websocket_stream()); | 2635 ASSERT_TRUE(nullptr != waiter.websocket_stream()); |
2629 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeSpdy, | 2636 EXPECT_EQ(MockWebSocketHandshakeStream::kStreamTypeSpdy, |
2630 waiter.websocket_stream()->type()); | 2637 waiter.websocket_stream()->type()); |
2631 | 2638 |
2632 // Make sure that there was an alternative connection | 2639 // Make sure that there was an alternative connection |
2633 // which consumes extra connections. | 2640 // which consumes extra connections. |
2634 EXPECT_EQ(0, GetSocketPoolGroupCount( | 2641 EXPECT_EQ(0, GetSocketPoolGroupCount( |
2635 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 2642 session->GetTransportSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
2636 EXPECT_EQ(0, GetSocketPoolGroupCount( | 2643 EXPECT_EQ(0, GetSocketPoolGroupCount( |
2637 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); | 2644 session->GetSSLSocketPool(HttpNetworkSession::NORMAL_SOCKET_POOL))); |
2638 EXPECT_EQ(2, GetSocketPoolGroupCount( | 2645 EXPECT_EQ(2, GetSocketPoolGroupCount( |
2639 session->GetTransportSocketPool( | 2646 session->GetTransportSocketPool( |
2640 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); | 2647 HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); |
2641 EXPECT_EQ(1, GetSocketPoolGroupCount( | 2648 EXPECT_EQ(1, GetSocketPoolGroupCount( |
2642 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); | 2649 session->GetSSLSocketPool(HttpNetworkSession::WEBSOCKET_SOCKET_POOL))); |
2643 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); | 2650 EXPECT_TRUE(waiter.used_proxy_info().is_direct()); |
2644 } | 2651 } |
2645 | 2652 |
2646 } // namespace | 2653 } // namespace |
2647 | 2654 |
2648 } // namespace net | 2655 } // namespace net |
OLD | NEW |