Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: net/http/http_stream_factory_impl_unittest.cc

Issue 2771263002: Retry upon 421 status code without IP pooling. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698