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/socket/transport_client_socket_pool.h" | 5 #include "net/socket/transport_client_socket_pool.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 21 matching lines...) Expand all Loading... |
32 | 32 |
33 const int kMaxSockets = 32; | 33 const int kMaxSockets = 32; |
34 const int kMaxSocketsPerGroup = 6; | 34 const int kMaxSocketsPerGroup = 6; |
35 const RequestPriority kDefaultPriority = LOW; | 35 const RequestPriority kDefaultPriority = LOW; |
36 | 36 |
37 class TransportClientSocketPoolTest : public testing::Test { | 37 class TransportClientSocketPoolTest : public testing::Test { |
38 protected: | 38 protected: |
39 TransportClientSocketPoolTest() | 39 TransportClientSocketPoolTest() |
40 : connect_backup_jobs_enabled_( | 40 : connect_backup_jobs_enabled_( |
41 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(true)), | 41 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(true)), |
42 params_( | 42 params_(new TransportSocketParams( |
43 new TransportSocketParams( | 43 HostPortPair("www.google.com", 80), |
44 HostPortPair("www.google.com", 80), | 44 false, |
45 false, | 45 OnHostResolutionCallback(), |
46 OnHostResolutionCallback(), | 46 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)), |
47 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DEFAULT)), | |
48 host_resolver_(new MockHostResolver), | 47 host_resolver_(new MockHostResolver), |
49 client_socket_factory_(&net_log_), | 48 client_socket_factory_(&net_log_), |
50 pool_(kMaxSockets, | 49 pool_(kMaxSockets, |
51 kMaxSocketsPerGroup, | 50 kMaxSocketsPerGroup, |
52 host_resolver_.get(), | 51 host_resolver_.get(), |
53 &client_socket_factory_, | 52 &client_socket_factory_, |
54 NULL) { | 53 NULL, |
55 } | 54 NULL) {} |
56 | 55 |
57 ~TransportClientSocketPoolTest() override { | 56 ~TransportClientSocketPoolTest() override { |
58 internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled( | 57 internal::ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled( |
59 connect_backup_jobs_enabled_); | 58 connect_backup_jobs_enabled_); |
60 } | 59 } |
61 | 60 |
62 scoped_refptr<TransportSocketParams> CreateParamsForTCPFastOpen() { | 61 scoped_refptr<TransportSocketParams> CreateParamsForTCPFastOpen() { |
63 return new TransportSocketParams( | 62 return new TransportSocketParams( |
64 HostPortPair("www.google.com", 80), false, OnHostResolutionCallback(), | 63 HostPortPair("www.google.com", 80), false, OnHostResolutionCallback(), |
65 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DESIRED); | 64 TransportSocketParams::COMBINE_CONNECT_AND_WRITE_DESIRED); |
(...skipping 784 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
850 | 849 |
851 // Reset for the next case. | 850 // Reset for the next case. |
852 host_resolver_->set_synchronous_mode(false); | 851 host_resolver_->set_synchronous_mode(false); |
853 } | 852 } |
854 | 853 |
855 // Test the case of the IPv6 address stalling, and falling back to the IPv4 | 854 // Test the case of the IPv6 address stalling, and falling back to the IPv4 |
856 // socket which finishes first. | 855 // socket which finishes first. |
857 TEST_F(TransportClientSocketPoolTest, IPv6FallbackSocketIPv4FinishesFirst) { | 856 TEST_F(TransportClientSocketPoolTest, IPv6FallbackSocketIPv4FinishesFirst) { |
858 // Create a pool without backup jobs. | 857 // Create a pool without backup jobs. |
859 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 858 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
860 TransportClientSocketPool pool(kMaxSockets, | 859 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup, |
861 kMaxSocketsPerGroup, | 860 host_resolver_.get(), &client_socket_factory_, |
862 host_resolver_.get(), | 861 NULL, NULL); |
863 &client_socket_factory_, | |
864 NULL); | |
865 | 862 |
866 MockTransportClientSocketFactory::ClientSocketType case_types[] = { | 863 MockTransportClientSocketFactory::ClientSocketType case_types[] = { |
867 // This is the IPv6 socket. It stalls, but presents one failed connection | 864 // This is the IPv6 socket. It stalls, but presents one failed connection |
868 // attempt on GetConnectionAttempts. | 865 // attempt on GetConnectionAttempts. |
869 MockTransportClientSocketFactory::MOCK_STALLED_FAILING_CLIENT_SOCKET, | 866 MockTransportClientSocketFactory::MOCK_STALLED_FAILING_CLIENT_SOCKET, |
870 // This is the IPv4 socket. | 867 // This is the IPv4 socket. |
871 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET}; | 868 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET}; |
872 | 869 |
873 client_socket_factory_.set_client_socket_types(case_types, 2); | 870 client_socket_factory_.set_client_socket_types(case_types, 2); |
874 | 871 |
(...skipping 26 matching lines...) Expand all Loading... |
901 | 898 |
902 EXPECT_EQ(2, client_socket_factory_.allocation_count()); | 899 EXPECT_EQ(2, client_socket_factory_.allocation_count()); |
903 } | 900 } |
904 | 901 |
905 // Test the case of the IPv6 address being slow, thus falling back to trying to | 902 // Test the case of the IPv6 address being slow, thus falling back to trying to |
906 // connect to the IPv4 address, but having the connect to the IPv6 address | 903 // connect to the IPv4 address, but having the connect to the IPv6 address |
907 // finish first. | 904 // finish first. |
908 TEST_F(TransportClientSocketPoolTest, IPv6FallbackSocketIPv6FinishesFirst) { | 905 TEST_F(TransportClientSocketPoolTest, IPv6FallbackSocketIPv6FinishesFirst) { |
909 // Create a pool without backup jobs. | 906 // Create a pool without backup jobs. |
910 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 907 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
911 TransportClientSocketPool pool(kMaxSockets, | 908 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup, |
912 kMaxSocketsPerGroup, | 909 host_resolver_.get(), &client_socket_factory_, |
913 host_resolver_.get(), | 910 NULL, NULL); |
914 &client_socket_factory_, | |
915 NULL); | |
916 | 911 |
917 MockTransportClientSocketFactory::ClientSocketType case_types[] = { | 912 MockTransportClientSocketFactory::ClientSocketType case_types[] = { |
918 // This is the IPv6 socket. | 913 // This is the IPv6 socket. |
919 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET, | 914 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET, |
920 // This is the IPv4 socket. It stalls, but presents one failed connection | 915 // This is the IPv4 socket. It stalls, but presents one failed connection |
921 // attempt on GetConnectionATtempts. | 916 // attempt on GetConnectionATtempts. |
922 MockTransportClientSocketFactory::MOCK_STALLED_FAILING_CLIENT_SOCKET}; | 917 MockTransportClientSocketFactory::MOCK_STALLED_FAILING_CLIENT_SOCKET}; |
923 | 918 |
924 client_socket_factory_.set_client_socket_types(case_types, 2); | 919 client_socket_factory_.set_client_socket_types(case_types, 2); |
925 client_socket_factory_.set_delay(base::TimeDelta::FromMilliseconds( | 920 client_socket_factory_.set_delay(base::TimeDelta::FromMilliseconds( |
(...skipping 26 matching lines...) Expand all Loading... |
952 ASSERT_EQ(1u, attempts.size()); | 947 ASSERT_EQ(1u, attempts.size()); |
953 EXPECT_EQ(ERR_CONNECTION_FAILED, attempts[0].result); | 948 EXPECT_EQ(ERR_CONNECTION_FAILED, attempts[0].result); |
954 EXPECT_EQ(kIPv4AddressSize, attempts[0].endpoint.address().size()); | 949 EXPECT_EQ(kIPv4AddressSize, attempts[0].endpoint.address().size()); |
955 | 950 |
956 EXPECT_EQ(2, client_socket_factory_.allocation_count()); | 951 EXPECT_EQ(2, client_socket_factory_.allocation_count()); |
957 } | 952 } |
958 | 953 |
959 TEST_F(TransportClientSocketPoolTest, IPv6NoIPv4AddressesToFallbackTo) { | 954 TEST_F(TransportClientSocketPoolTest, IPv6NoIPv4AddressesToFallbackTo) { |
960 // Create a pool without backup jobs. | 955 // Create a pool without backup jobs. |
961 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 956 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
962 TransportClientSocketPool pool(kMaxSockets, | 957 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup, |
963 kMaxSocketsPerGroup, | 958 host_resolver_.get(), &client_socket_factory_, |
964 host_resolver_.get(), | 959 NULL, NULL); |
965 &client_socket_factory_, | |
966 NULL); | |
967 | 960 |
968 client_socket_factory_.set_default_client_socket_type( | 961 client_socket_factory_.set_default_client_socket_type( |
969 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); | 962 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); |
970 | 963 |
971 // Resolve an AddressList with only IPv6 addresses. | 964 // Resolve an AddressList with only IPv6 addresses. |
972 host_resolver_->rules() | 965 host_resolver_->rules() |
973 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string()); | 966 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string()); |
974 | 967 |
975 TestCompletionCallback callback; | 968 TestCompletionCallback callback; |
976 ClientSocketHandle handle; | 969 ClientSocketHandle handle; |
(...skipping 10 matching lines...) Expand all Loading... |
987 IPEndPoint endpoint; | 980 IPEndPoint endpoint; |
988 handle.socket()->GetLocalAddress(&endpoint); | 981 handle.socket()->GetLocalAddress(&endpoint); |
989 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); | 982 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); |
990 EXPECT_EQ(0u, handle.connection_attempts().size()); | 983 EXPECT_EQ(0u, handle.connection_attempts().size()); |
991 EXPECT_EQ(1, client_socket_factory_.allocation_count()); | 984 EXPECT_EQ(1, client_socket_factory_.allocation_count()); |
992 } | 985 } |
993 | 986 |
994 TEST_F(TransportClientSocketPoolTest, IPv4HasNoFallback) { | 987 TEST_F(TransportClientSocketPoolTest, IPv4HasNoFallback) { |
995 // Create a pool without backup jobs. | 988 // Create a pool without backup jobs. |
996 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 989 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
997 TransportClientSocketPool pool(kMaxSockets, | 990 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup, |
998 kMaxSocketsPerGroup, | 991 host_resolver_.get(), &client_socket_factory_, |
999 host_resolver_.get(), | 992 NULL, NULL); |
1000 &client_socket_factory_, | |
1001 NULL); | |
1002 | 993 |
1003 client_socket_factory_.set_default_client_socket_type( | 994 client_socket_factory_.set_default_client_socket_type( |
1004 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); | 995 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); |
1005 | 996 |
1006 // Resolve an AddressList with only IPv4 addresses. | 997 // Resolve an AddressList with only IPv4 addresses. |
1007 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string()); | 998 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string()); |
1008 | 999 |
1009 TestCompletionCallback callback; | 1000 TestCompletionCallback callback; |
1010 ClientSocketHandle handle; | 1001 ClientSocketHandle handle; |
1011 int rv = | 1002 int rv = |
(...skipping 11 matching lines...) Expand all Loading... |
1023 EXPECT_EQ(kIPv4AddressSize, endpoint.address().size()); | 1014 EXPECT_EQ(kIPv4AddressSize, endpoint.address().size()); |
1024 EXPECT_EQ(0u, handle.connection_attempts().size()); | 1015 EXPECT_EQ(0u, handle.connection_attempts().size()); |
1025 EXPECT_EQ(1, client_socket_factory_.allocation_count()); | 1016 EXPECT_EQ(1, client_socket_factory_.allocation_count()); |
1026 } | 1017 } |
1027 | 1018 |
1028 // Test that if TCP FastOpen is enabled, it is set on the socket | 1019 // Test that if TCP FastOpen is enabled, it is set on the socket |
1029 // when we have only an IPv4 address. | 1020 // when we have only an IPv4 address. |
1030 TEST_F(TransportClientSocketPoolTest, TCPFastOpenOnIPv4WithNoFallback) { | 1021 TEST_F(TransportClientSocketPoolTest, TCPFastOpenOnIPv4WithNoFallback) { |
1031 // Create a pool without backup jobs. | 1022 // Create a pool without backup jobs. |
1032 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 1023 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
1033 TransportClientSocketPool pool(kMaxSockets, | 1024 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup, |
1034 kMaxSocketsPerGroup, | 1025 host_resolver_.get(), &client_socket_factory_, |
1035 host_resolver_.get(), | 1026 NULL, NULL); |
1036 &client_socket_factory_, | |
1037 NULL); | |
1038 client_socket_factory_.set_default_client_socket_type( | 1027 client_socket_factory_.set_default_client_socket_type( |
1039 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); | 1028 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); |
1040 // Resolve an AddressList with only IPv4 addresses. | 1029 // Resolve an AddressList with only IPv4 addresses. |
1041 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string()); | 1030 host_resolver_->rules()->AddIPLiteralRule("*", "1.1.1.1", std::string()); |
1042 | 1031 |
1043 TestCompletionCallback callback; | 1032 TestCompletionCallback callback; |
1044 ClientSocketHandle handle; | 1033 ClientSocketHandle handle; |
1045 // Enable TCP FastOpen in TransportSocketParams. | 1034 // Enable TCP FastOpen in TransportSocketParams. |
1046 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen(); | 1035 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen(); |
1047 handle.Init("a", params, LOW, ClientSocketPool::RespectLimits::ENABLED, | 1036 handle.Init("a", params, LOW, ClientSocketPool::RespectLimits::ENABLED, |
1048 callback.callback(), &pool, BoundNetLog()); | 1037 callback.callback(), &pool, BoundNetLog()); |
1049 EXPECT_EQ(OK, callback.WaitForResult()); | 1038 EXPECT_EQ(OK, callback.WaitForResult()); |
1050 EXPECT_TRUE(handle.socket()->UsingTCPFastOpen()); | 1039 EXPECT_TRUE(handle.socket()->UsingTCPFastOpen()); |
1051 } | 1040 } |
1052 | 1041 |
1053 // Test that if TCP FastOpen is enabled, it is set on the socket | 1042 // Test that if TCP FastOpen is enabled, it is set on the socket |
1054 // when we have only IPv6 addresses. | 1043 // when we have only IPv6 addresses. |
1055 TEST_F(TransportClientSocketPoolTest, TCPFastOpenOnIPv6WithNoFallback) { | 1044 TEST_F(TransportClientSocketPoolTest, TCPFastOpenOnIPv6WithNoFallback) { |
1056 // Create a pool without backup jobs. | 1045 // Create a pool without backup jobs. |
1057 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 1046 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
1058 TransportClientSocketPool pool(kMaxSockets, | 1047 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup, |
1059 kMaxSocketsPerGroup, | 1048 host_resolver_.get(), &client_socket_factory_, |
1060 host_resolver_.get(), | 1049 NULL, NULL); |
1061 &client_socket_factory_, | |
1062 NULL); | |
1063 client_socket_factory_.set_default_client_socket_type( | 1050 client_socket_factory_.set_default_client_socket_type( |
1064 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); | 1051 MockTransportClientSocketFactory::MOCK_DELAYED_CLIENT_SOCKET); |
1065 // Resolve an AddressList with only IPv6 addresses. | 1052 // Resolve an AddressList with only IPv6 addresses. |
1066 host_resolver_->rules() | 1053 host_resolver_->rules() |
1067 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string()); | 1054 ->AddIPLiteralRule("*", "2:abcd::3:4:ff,3:abcd::3:4:ff", std::string()); |
1068 | 1055 |
1069 TestCompletionCallback callback; | 1056 TestCompletionCallback callback; |
1070 ClientSocketHandle handle; | 1057 ClientSocketHandle handle; |
1071 // Enable TCP FastOpen in TransportSocketParams. | 1058 // Enable TCP FastOpen in TransportSocketParams. |
1072 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen(); | 1059 scoped_refptr<TransportSocketParams> params = CreateParamsForTCPFastOpen(); |
1073 handle.Init("a", params, LOW, ClientSocketPool::RespectLimits::ENABLED, | 1060 handle.Init("a", params, LOW, ClientSocketPool::RespectLimits::ENABLED, |
1074 callback.callback(), &pool, BoundNetLog()); | 1061 callback.callback(), &pool, BoundNetLog()); |
1075 EXPECT_EQ(OK, callback.WaitForResult()); | 1062 EXPECT_EQ(OK, callback.WaitForResult()); |
1076 EXPECT_TRUE(handle.socket()->UsingTCPFastOpen()); | 1063 EXPECT_TRUE(handle.socket()->UsingTCPFastOpen()); |
1077 } | 1064 } |
1078 | 1065 |
1079 // Test that if TCP FastOpen is enabled, it does not do anything when there | 1066 // Test that if TCP FastOpen is enabled, it does not do anything when there |
1080 // is a IPv6 address with fallback to an IPv4 address. This test tests the case | 1067 // is a IPv6 address with fallback to an IPv4 address. This test tests the case |
1081 // when the IPv6 connect fails and the IPv4 one succeeds. | 1068 // when the IPv6 connect fails and the IPv4 one succeeds. |
1082 TEST_F(TransportClientSocketPoolTest, | 1069 TEST_F(TransportClientSocketPoolTest, |
1083 NoTCPFastOpenOnIPv6FailureWithIPv4Fallback) { | 1070 NoTCPFastOpenOnIPv6FailureWithIPv4Fallback) { |
1084 // Create a pool without backup jobs. | 1071 // Create a pool without backup jobs. |
1085 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 1072 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
1086 TransportClientSocketPool pool(kMaxSockets, | 1073 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup, |
1087 kMaxSocketsPerGroup, | 1074 host_resolver_.get(), &client_socket_factory_, |
1088 host_resolver_.get(), | 1075 NULL, NULL); |
1089 &client_socket_factory_, | |
1090 NULL); | |
1091 | 1076 |
1092 MockTransportClientSocketFactory::ClientSocketType case_types[] = { | 1077 MockTransportClientSocketFactory::ClientSocketType case_types[] = { |
1093 // This is the IPv6 socket. | 1078 // This is the IPv6 socket. |
1094 MockTransportClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET, | 1079 MockTransportClientSocketFactory::MOCK_STALLED_CLIENT_SOCKET, |
1095 // This is the IPv4 socket. | 1080 // This is the IPv4 socket. |
1096 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET | 1081 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET |
1097 }; | 1082 }; |
1098 client_socket_factory_.set_client_socket_types(case_types, 2); | 1083 client_socket_factory_.set_client_socket_types(case_types, 2); |
1099 // Resolve an AddressList with a IPv6 address first and then a IPv4 address. | 1084 // Resolve an AddressList with a IPv6 address first and then a IPv4 address. |
1100 host_resolver_->rules() | 1085 host_resolver_->rules() |
(...skipping 15 matching lines...) Expand all Loading... |
1116 EXPECT_FALSE(handle.socket()->UsingTCPFastOpen()); | 1101 EXPECT_FALSE(handle.socket()->UsingTCPFastOpen()); |
1117 } | 1102 } |
1118 | 1103 |
1119 // Test that if TCP FastOpen is enabled, it does not do anything when there | 1104 // Test that if TCP FastOpen is enabled, it does not do anything when there |
1120 // is a IPv6 address with fallback to an IPv4 address. This test tests the case | 1105 // is a IPv6 address with fallback to an IPv4 address. This test tests the case |
1121 // when the IPv6 connect succeeds. | 1106 // when the IPv6 connect succeeds. |
1122 TEST_F(TransportClientSocketPoolTest, | 1107 TEST_F(TransportClientSocketPoolTest, |
1123 NoTCPFastOpenOnIPv6SuccessWithIPv4Fallback) { | 1108 NoTCPFastOpenOnIPv6SuccessWithIPv4Fallback) { |
1124 // Create a pool without backup jobs. | 1109 // Create a pool without backup jobs. |
1125 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); | 1110 ClientSocketPoolBaseHelper::set_connect_backup_jobs_enabled(false); |
1126 TransportClientSocketPool pool(kMaxSockets, | 1111 TransportClientSocketPool pool(kMaxSockets, kMaxSocketsPerGroup, |
1127 kMaxSocketsPerGroup, | 1112 host_resolver_.get(), &client_socket_factory_, |
1128 host_resolver_.get(), | 1113 NULL, NULL); |
1129 &client_socket_factory_, | |
1130 NULL); | |
1131 | 1114 |
1132 MockTransportClientSocketFactory::ClientSocketType case_types[] = { | 1115 MockTransportClientSocketFactory::ClientSocketType case_types[] = { |
1133 // This is the IPv6 socket. | 1116 // This is the IPv6 socket. |
1134 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET, | 1117 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET, |
1135 // This is the IPv4 socket. | 1118 // This is the IPv4 socket. |
1136 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET | 1119 MockTransportClientSocketFactory::MOCK_PENDING_CLIENT_SOCKET |
1137 }; | 1120 }; |
1138 client_socket_factory_.set_client_socket_types(case_types, 2); | 1121 client_socket_factory_.set_client_socket_types(case_types, 2); |
1139 // Resolve an AddressList with a IPv6 address first and then a IPv4 address. | 1122 // Resolve an AddressList with a IPv6 address first and then a IPv4 address. |
1140 host_resolver_->rules() | 1123 host_resolver_->rules() |
(...skipping 11 matching lines...) Expand all Loading... |
1152 handle.socket()->GetLocalAddress(&endpoint); | 1135 handle.socket()->GetLocalAddress(&endpoint); |
1153 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); | 1136 EXPECT_EQ(kIPv6AddressSize, endpoint.address().size()); |
1154 EXPECT_EQ(1, client_socket_factory_.allocation_count()); | 1137 EXPECT_EQ(1, client_socket_factory_.allocation_count()); |
1155 // Verify that TCP FastOpen was not turned on for the socket. | 1138 // Verify that TCP FastOpen was not turned on for the socket. |
1156 EXPECT_FALSE(handle.socket()->UsingTCPFastOpen()); | 1139 EXPECT_FALSE(handle.socket()->UsingTCPFastOpen()); |
1157 } | 1140 } |
1158 | 1141 |
1159 } // namespace | 1142 } // namespace |
1160 | 1143 |
1161 } // namespace net | 1144 } // namespace net |
OLD | NEW |