| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "chrome/browser/io_thread.h" | 6 #include "chrome/browser/io_thread.h" |
| 7 #include "net/http/http_network_session.h" | 7 #include "net/http/http_network_session.h" |
| 8 #include "net/http/http_server_properties_impl.h" | 8 #include "net/http/http_server_properties_impl.h" |
| 9 #include "net/quic/quic_protocol.h" | 9 #include "net/quic/quic_protocol.h" |
| 10 #include "testing/gmock/include/gmock/gmock.h" | 10 #include "testing/gmock/include/gmock/gmock.h" |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 EXPECT_FALSE(params.quic_enable_truncated_connection_ids); | 137 EXPECT_FALSE(params.quic_enable_truncated_connection_ids); |
| 138 } | 138 } |
| 139 | 139 |
| 140 TEST_F(IOThreadTest, EnableQuicFromCommandLine) { | 140 TEST_F(IOThreadTest, EnableQuicFromCommandLine) { |
| 141 command_line_.AppendSwitch("enable-quic"); | 141 command_line_.AppendSwitch("enable-quic"); |
| 142 | 142 |
| 143 ConfigureQuicGlobals(); | 143 ConfigureQuicGlobals(); |
| 144 net::HttpNetworkSession::Params params; | 144 net::HttpNetworkSession::Params params; |
| 145 InitializeNetworkSessionParams(¶ms); | 145 InitializeNetworkSessionParams(¶ms); |
| 146 EXPECT_TRUE(params.enable_quic); | 146 EXPECT_TRUE(params.enable_quic); |
| 147 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); | |
| 148 } | 147 } |
| 149 | 148 |
| 150 TEST_F(IOThreadTest, EnablePacingFromCommandLine) { | 149 TEST_F(IOThreadTest, EnablePacingFromCommandLine) { |
| 151 command_line_.AppendSwitch("enable-quic"); | 150 command_line_.AppendSwitch("enable-quic"); |
| 152 command_line_.AppendSwitch("enable-quic-pacing"); | 151 command_line_.AppendSwitch("enable-quic-pacing"); |
| 153 | 152 |
| 154 ConfigureQuicGlobals(); | 153 ConfigureQuicGlobals(); |
| 155 net::HttpNetworkSession::Params params; | 154 net::HttpNetworkSession::Params params; |
| 156 InitializeNetworkSessionParams(¶ms); | 155 InitializeNetworkSessionParams(¶ms); |
| 157 net::QuicTagVector options; | 156 net::QuicTagVector options; |
| 158 options.push_back(net::kPACE); | 157 options.push_back(net::kPACE); |
| 159 EXPECT_EQ(options, params.quic_connection_options); | 158 EXPECT_EQ(options, params.quic_connection_options); |
| 160 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); | |
| 161 } | 159 } |
| 162 | 160 |
| 163 TEST_F(IOThreadTest, EnablePacingFromFieldTrialParams) { | 161 TEST_F(IOThreadTest, EnablePacingFromFieldTrialParams) { |
| 164 field_trial_group_ = "Enabled"; | 162 field_trial_group_ = "Enabled"; |
| 165 field_trial_params_["enable_pacing"] = "true"; | 163 field_trial_params_["enable_pacing"] = "true"; |
| 166 | 164 |
| 167 ConfigureQuicGlobals(); | 165 ConfigureQuicGlobals(); |
| 168 net::HttpNetworkSession::Params params; | 166 net::HttpNetworkSession::Params params; |
| 169 InitializeNetworkSessionParams(¶ms); | 167 InitializeNetworkSessionParams(¶ms); |
| 170 net::QuicTagVector options; | 168 net::QuicTagVector options; |
| 171 options.push_back(net::kPACE); | 169 options.push_back(net::kPACE); |
| 172 EXPECT_EQ(options, params.quic_connection_options); | 170 EXPECT_EQ(options, params.quic_connection_options); |
| 173 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); | |
| 174 } | 171 } |
| 175 | 172 |
| 176 TEST_F(IOThreadTest, PacketLengthFromCommandLine) { | 173 TEST_F(IOThreadTest, PacketLengthFromCommandLine) { |
| 177 command_line_.AppendSwitch("enable-quic"); | 174 command_line_.AppendSwitch("enable-quic"); |
| 178 command_line_.AppendSwitchASCII("quic-max-packet-length", "1450"); | 175 command_line_.AppendSwitchASCII("quic-max-packet-length", "1450"); |
| 179 | 176 |
| 180 ConfigureQuicGlobals(); | 177 ConfigureQuicGlobals(); |
| 181 net::HttpNetworkSession::Params params; | 178 net::HttpNetworkSession::Params params; |
| 182 InitializeNetworkSessionParams(¶ms); | 179 InitializeNetworkSessionParams(¶ms); |
| 183 EXPECT_EQ(1450u, params.quic_max_packet_length); | 180 EXPECT_EQ(1450u, params.quic_max_packet_length); |
| 184 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); | |
| 185 } | 181 } |
| 186 | 182 |
| 187 TEST_F(IOThreadTest, PacketLengthFromFieldTrialParams) { | 183 TEST_F(IOThreadTest, PacketLengthFromFieldTrialParams) { |
| 188 field_trial_group_ = "Enabled"; | 184 field_trial_group_ = "Enabled"; |
| 189 field_trial_params_["max_packet_length"] = "1450"; | 185 field_trial_params_["max_packet_length"] = "1450"; |
| 190 | 186 |
| 191 ConfigureQuicGlobals(); | 187 ConfigureQuicGlobals(); |
| 192 net::HttpNetworkSession::Params params; | 188 net::HttpNetworkSession::Params params; |
| 193 InitializeNetworkSessionParams(¶ms); | 189 InitializeNetworkSessionParams(¶ms); |
| 194 EXPECT_EQ(1450u, params.quic_max_packet_length); | 190 EXPECT_EQ(1450u, params.quic_max_packet_length); |
| 195 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); | |
| 196 } | 191 } |
| 197 | 192 |
| 198 TEST_F(IOThreadTest, QuicVersionFromCommandLine) { | 193 TEST_F(IOThreadTest, QuicVersionFromCommandLine) { |
| 199 command_line_.AppendSwitch("enable-quic"); | 194 command_line_.AppendSwitch("enable-quic"); |
| 200 std::string version = | 195 std::string version = |
| 201 net::QuicVersionToString(net::QuicSupportedVersions().back()); | 196 net::QuicVersionToString(net::QuicSupportedVersions().back()); |
| 202 command_line_.AppendSwitchASCII("quic-version", version); | 197 command_line_.AppendSwitchASCII("quic-version", version); |
| 203 | 198 |
| 204 ConfigureQuicGlobals(); | 199 ConfigureQuicGlobals(); |
| 205 net::HttpNetworkSession::Params params; | 200 net::HttpNetworkSession::Params params; |
| 206 InitializeNetworkSessionParams(¶ms); | 201 InitializeNetworkSessionParams(¶ms); |
| 207 net::QuicVersionVector supported_versions; | 202 net::QuicVersionVector supported_versions; |
| 208 supported_versions.push_back(net::QuicSupportedVersions().back()); | 203 supported_versions.push_back(net::QuicSupportedVersions().back()); |
| 209 EXPECT_EQ(supported_versions, params.quic_supported_versions); | 204 EXPECT_EQ(supported_versions, params.quic_supported_versions); |
| 210 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); | |
| 211 } | 205 } |
| 212 | 206 |
| 213 TEST_F(IOThreadTest, QuicVersionFromFieldTrialParams) { | 207 TEST_F(IOThreadTest, QuicVersionFromFieldTrialParams) { |
| 214 field_trial_group_ = "Enabled"; | 208 field_trial_group_ = "Enabled"; |
| 215 field_trial_params_["quic_version"] = | 209 field_trial_params_["quic_version"] = |
| 216 net::QuicVersionToString(net::QuicSupportedVersions().back()); | 210 net::QuicVersionToString(net::QuicSupportedVersions().back()); |
| 217 | 211 |
| 218 ConfigureQuicGlobals(); | 212 ConfigureQuicGlobals(); |
| 219 net::HttpNetworkSession::Params params; | 213 net::HttpNetworkSession::Params params; |
| 220 InitializeNetworkSessionParams(¶ms); | 214 InitializeNetworkSessionParams(¶ms); |
| 221 net::QuicVersionVector supported_versions; | 215 net::QuicVersionVector supported_versions; |
| 222 supported_versions.push_back(net::QuicSupportedVersions().back()); | 216 supported_versions.push_back(net::QuicSupportedVersions().back()); |
| 223 EXPECT_EQ(supported_versions, params.quic_supported_versions); | 217 EXPECT_EQ(supported_versions, params.quic_supported_versions); |
| 224 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); | |
| 225 } | 218 } |
| 226 | 219 |
| 227 TEST_F(IOThreadTest, QuicConnectionOptionsFromCommandLine) { | 220 TEST_F(IOThreadTest, QuicConnectionOptionsFromCommandLine) { |
| 228 command_line_.AppendSwitch("enable-quic"); | 221 command_line_.AppendSwitch("enable-quic"); |
| 229 command_line_.AppendSwitchASCII("quic-connection-options", | 222 command_line_.AppendSwitchASCII("quic-connection-options", |
| 230 "PACE,TIME,TBBR,REJ"); | 223 "PACE,TIME,TBBR,REJ"); |
| 231 | 224 |
| 232 ConfigureQuicGlobals(); | 225 ConfigureQuicGlobals(); |
| 233 net::HttpNetworkSession::Params params; | 226 net::HttpNetworkSession::Params params; |
| 234 InitializeNetworkSessionParams(¶ms); | 227 InitializeNetworkSessionParams(¶ms); |
| 235 | 228 |
| 236 net::QuicTagVector options; | 229 net::QuicTagVector options; |
| 237 options.push_back(net::kPACE); | 230 options.push_back(net::kPACE); |
| 238 options.push_back(net::kTIME); | 231 options.push_back(net::kTIME); |
| 239 options.push_back(net::kTBBR); | 232 options.push_back(net::kTBBR); |
| 240 options.push_back(net::kREJ); | 233 options.push_back(net::kREJ); |
| 241 EXPECT_EQ(options, params.quic_connection_options); | 234 EXPECT_EQ(options, params.quic_connection_options); |
| 242 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); | |
| 243 } | 235 } |
| 244 | 236 |
| 245 TEST_F(IOThreadTest, QuicConnectionOptionsFromFieldTrialParams) { | 237 TEST_F(IOThreadTest, QuicConnectionOptionsFromFieldTrialParams) { |
| 246 field_trial_group_ = "Enabled"; | 238 field_trial_group_ = "Enabled"; |
| 247 field_trial_params_["connection_options"] = "PACE,TIME,TBBR,REJ"; | 239 field_trial_params_["connection_options"] = "PACE,TIME,TBBR,REJ"; |
| 248 | 240 |
| 249 ConfigureQuicGlobals(); | 241 ConfigureQuicGlobals(); |
| 250 net::HttpNetworkSession::Params params; | 242 net::HttpNetworkSession::Params params; |
| 251 InitializeNetworkSessionParams(¶ms); | 243 InitializeNetworkSessionParams(¶ms); |
| 252 | 244 |
| 253 net::QuicTagVector options; | 245 net::QuicTagVector options; |
| 254 options.push_back(net::kPACE); | 246 options.push_back(net::kPACE); |
| 255 options.push_back(net::kTIME); | 247 options.push_back(net::kTIME); |
| 256 options.push_back(net::kTBBR); | 248 options.push_back(net::kTBBR); |
| 257 options.push_back(net::kREJ); | 249 options.push_back(net::kREJ); |
| 258 EXPECT_EQ(options, params.quic_connection_options); | 250 EXPECT_EQ(options, params.quic_connection_options); |
| 259 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); | |
| 260 } | |
| 261 | |
| 262 TEST_F(IOThreadTest, QuicConnectionOptionsFromDeprecatedFieldTrialParams) { | |
| 263 field_trial_group_ = "Enabled"; | |
| 264 field_trial_params_["congestion_options"] = "PACE,TIME,TBBR,REJ"; | |
| 265 | |
| 266 ConfigureQuicGlobals(); | |
| 267 net::HttpNetworkSession::Params params; | |
| 268 InitializeNetworkSessionParams(¶ms); | |
| 269 | |
| 270 net::QuicTagVector options; | |
| 271 options.push_back(net::kPACE); | |
| 272 options.push_back(net::kTIME); | |
| 273 options.push_back(net::kTBBR); | |
| 274 options.push_back(net::kREJ); | |
| 275 EXPECT_EQ(options, params.quic_connection_options); | |
| 276 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); | |
| 277 } | 251 } |
| 278 | 252 |
| 279 TEST_F(IOThreadTest, | 253 TEST_F(IOThreadTest, |
| 280 QuicAlwaysRequireHandshakeConfirmationFromFieldTrialParams) { | 254 QuicAlwaysRequireHandshakeConfirmationFromFieldTrialParams) { |
| 281 field_trial_group_ = "Enabled"; | 255 field_trial_group_ = "Enabled"; |
| 282 field_trial_params_["always_require_handshake_confirmation"] = "true"; | 256 field_trial_params_["always_require_handshake_confirmation"] = "true"; |
| 283 ConfigureQuicGlobals(); | 257 ConfigureQuicGlobals(); |
| 284 net::HttpNetworkSession::Params params; | 258 net::HttpNetworkSession::Params params; |
| 285 InitializeNetworkSessionParams(¶ms); | 259 InitializeNetworkSessionParams(¶ms); |
| 286 EXPECT_TRUE(params.quic_always_require_handshake_confirmation); | 260 EXPECT_TRUE(params.quic_always_require_handshake_confirmation); |
| 287 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); | |
| 288 } | 261 } |
| 289 | 262 |
| 290 TEST_F(IOThreadTest, | 263 TEST_F(IOThreadTest, |
| 291 QuicDisableConnectionPoolingFromFieldTrialParams) { | 264 QuicDisableConnectionPoolingFromFieldTrialParams) { |
| 292 field_trial_group_ = "Enabled"; | 265 field_trial_group_ = "Enabled"; |
| 293 field_trial_params_["disable_connection_pooling"] = "true"; | 266 field_trial_params_["disable_connection_pooling"] = "true"; |
| 294 ConfigureQuicGlobals(); | 267 ConfigureQuicGlobals(); |
| 295 net::HttpNetworkSession::Params params; | 268 net::HttpNetworkSession::Params params; |
| 296 InitializeNetworkSessionParams(¶ms); | 269 InitializeNetworkSessionParams(¶ms); |
| 297 EXPECT_TRUE(params.quic_disable_connection_pooling); | 270 EXPECT_TRUE(params.quic_disable_connection_pooling); |
| 298 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); | |
| 299 } | 271 } |
| 300 | 272 |
| 301 TEST_F(IOThreadTest, QuicLoadServerInfoTimeoutFromFieldTrialParams) { | 273 TEST_F(IOThreadTest, QuicLoadServerInfoTimeoutFromFieldTrialParams) { |
| 302 field_trial_group_ = "Enabled"; | 274 field_trial_group_ = "Enabled"; |
| 303 field_trial_params_["load_server_info_timeout"] = "50"; | 275 field_trial_params_["load_server_info_timeout"] = "50"; |
| 304 ConfigureQuicGlobals(); | 276 ConfigureQuicGlobals(); |
| 305 net::HttpNetworkSession::Params params; | 277 net::HttpNetworkSession::Params params; |
| 306 InitializeNetworkSessionParams(¶ms); | 278 InitializeNetworkSessionParams(¶ms); |
| 307 EXPECT_EQ(50, params.quic_load_server_info_timeout_ms); | 279 EXPECT_EQ(50, params.quic_load_server_info_timeout_ms); |
| 308 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); | |
| 309 } | 280 } |
| 310 | 281 |
| 311 TEST_F(IOThreadTest, QuicDisableLoadingServerInfoForNewServers) { | 282 TEST_F(IOThreadTest, QuicDisableLoadingServerInfoForNewServers) { |
| 312 field_trial_group_ = "Enabled"; | 283 field_trial_group_ = "Enabled"; |
| 313 field_trial_params_["disable_loading_server_info_for_new_servers"] = "true"; | 284 field_trial_params_["disable_loading_server_info_for_new_servers"] = "true"; |
| 314 ConfigureQuicGlobals(); | 285 ConfigureQuicGlobals(); |
| 315 net::HttpNetworkSession::Params params; | 286 net::HttpNetworkSession::Params params; |
| 316 InitializeNetworkSessionParams(¶ms); | 287 InitializeNetworkSessionParams(¶ms); |
| 317 EXPECT_TRUE(params.quic_disable_loading_server_info_for_new_servers); | 288 EXPECT_TRUE(params.quic_disable_loading_server_info_for_new_servers); |
| 318 } | 289 } |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 field_trial_group_ = "Enabled"; | 332 field_trial_group_ = "Enabled"; |
| 362 field_trial_params_["alternate_protocol_probability_threshold"] = ".5"; | 333 field_trial_params_["alternate_protocol_probability_threshold"] = ".5"; |
| 363 | 334 |
| 364 ConfigureQuicGlobals(); | 335 ConfigureQuicGlobals(); |
| 365 net::HttpNetworkSession::Params params; | 336 net::HttpNetworkSession::Params params; |
| 366 InitializeNetworkSessionParams(¶ms); | 337 InitializeNetworkSessionParams(¶ms); |
| 367 EXPECT_EQ(.5, params.alternate_protocol_probability_threshold); | 338 EXPECT_EQ(.5, params.alternate_protocol_probability_threshold); |
| 368 } | 339 } |
| 369 | 340 |
| 370 } // namespace test | 341 } // namespace test |
| OLD | NEW |