| 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 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 InitializeNetworkSessionParams(¶ms); | 126 InitializeNetworkSessionParams(¶ms); |
| 127 EXPECT_TRUE(params.enable_quic); | 127 EXPECT_TRUE(params.enable_quic); |
| 128 EXPECT_EQ(1350u, params.quic_max_packet_length); | 128 EXPECT_EQ(1350u, params.quic_max_packet_length); |
| 129 EXPECT_EQ(1.0, params.alternate_protocol_probability_threshold); | 129 EXPECT_EQ(1.0, params.alternate_protocol_probability_threshold); |
| 130 EXPECT_EQ(default_params.quic_supported_versions, | 130 EXPECT_EQ(default_params.quic_supported_versions, |
| 131 params.quic_supported_versions); | 131 params.quic_supported_versions); |
| 132 EXPECT_EQ(net::QuicTagVector(), params.quic_connection_options); | 132 EXPECT_EQ(net::QuicTagVector(), params.quic_connection_options); |
| 133 EXPECT_FALSE(params.quic_always_require_handshake_confirmation); | 133 EXPECT_FALSE(params.quic_always_require_handshake_confirmation); |
| 134 EXPECT_FALSE(params.quic_disable_connection_pooling); | 134 EXPECT_FALSE(params.quic_disable_connection_pooling); |
| 135 EXPECT_EQ(0, params.quic_load_server_info_timeout_ms); | 135 EXPECT_EQ(0, params.quic_load_server_info_timeout_ms); |
| 136 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 136 } | 137 } |
| 137 | 138 |
| 138 TEST_F(IOThreadTest, EnableQuicFromCommandLine) { | 139 TEST_F(IOThreadTest, EnableQuicFromCommandLine) { |
| 139 command_line_.AppendSwitch("enable-quic"); | 140 command_line_.AppendSwitch("enable-quic"); |
| 140 | 141 |
| 141 ConfigureQuicGlobals(); | 142 ConfigureQuicGlobals(); |
| 142 net::HttpNetworkSession::Params params; | 143 net::HttpNetworkSession::Params params; |
| 143 InitializeNetworkSessionParams(¶ms); | 144 InitializeNetworkSessionParams(¶ms); |
| 144 EXPECT_TRUE(params.enable_quic); | 145 EXPECT_TRUE(params.enable_quic); |
| 146 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 145 } | 147 } |
| 146 | 148 |
| 147 TEST_F(IOThreadTest, EnablePacingFromCommandLine) { | 149 TEST_F(IOThreadTest, EnablePacingFromCommandLine) { |
| 148 command_line_.AppendSwitch("enable-quic"); | 150 command_line_.AppendSwitch("enable-quic"); |
| 149 command_line_.AppendSwitch("enable-quic-pacing"); | 151 command_line_.AppendSwitch("enable-quic-pacing"); |
| 150 | 152 |
| 151 ConfigureQuicGlobals(); | 153 ConfigureQuicGlobals(); |
| 152 net::HttpNetworkSession::Params params; | 154 net::HttpNetworkSession::Params params; |
| 153 InitializeNetworkSessionParams(¶ms); | 155 InitializeNetworkSessionParams(¶ms); |
| 154 net::QuicTagVector options; | 156 net::QuicTagVector options; |
| 155 options.push_back(net::kPACE); | 157 options.push_back(net::kPACE); |
| 156 EXPECT_EQ(options, params.quic_connection_options); | 158 EXPECT_EQ(options, params.quic_connection_options); |
| 159 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 157 } | 160 } |
| 158 | 161 |
| 159 TEST_F(IOThreadTest, EnablePacingFromFieldTrialParams) { | 162 TEST_F(IOThreadTest, EnablePacingFromFieldTrialParams) { |
| 160 field_trial_group_ = "Enabled"; | 163 field_trial_group_ = "Enabled"; |
| 161 field_trial_params_["enable_pacing"] = "true"; | 164 field_trial_params_["enable_pacing"] = "true"; |
| 162 | 165 |
| 163 ConfigureQuicGlobals(); | 166 ConfigureQuicGlobals(); |
| 164 net::HttpNetworkSession::Params params; | 167 net::HttpNetworkSession::Params params; |
| 165 InitializeNetworkSessionParams(¶ms); | 168 InitializeNetworkSessionParams(¶ms); |
| 166 net::QuicTagVector options; | 169 net::QuicTagVector options; |
| 167 options.push_back(net::kPACE); | 170 options.push_back(net::kPACE); |
| 168 EXPECT_EQ(options, params.quic_connection_options); | 171 EXPECT_EQ(options, params.quic_connection_options); |
| 172 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 169 } | 173 } |
| 170 | 174 |
| 171 TEST_F(IOThreadTest, PacketLengthFromCommandLine) { | 175 TEST_F(IOThreadTest, PacketLengthFromCommandLine) { |
| 172 command_line_.AppendSwitch("enable-quic"); | 176 command_line_.AppendSwitch("enable-quic"); |
| 173 command_line_.AppendSwitchASCII("quic-max-packet-length", "1450"); | 177 command_line_.AppendSwitchASCII("quic-max-packet-length", "1450"); |
| 174 | 178 |
| 175 ConfigureQuicGlobals(); | 179 ConfigureQuicGlobals(); |
| 176 net::HttpNetworkSession::Params params; | 180 net::HttpNetworkSession::Params params; |
| 177 InitializeNetworkSessionParams(¶ms); | 181 InitializeNetworkSessionParams(¶ms); |
| 178 EXPECT_EQ(1450u, params.quic_max_packet_length); | 182 EXPECT_EQ(1450u, params.quic_max_packet_length); |
| 183 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 179 } | 184 } |
| 180 | 185 |
| 181 TEST_F(IOThreadTest, PacketLengthFromFieldTrialParams) { | 186 TEST_F(IOThreadTest, PacketLengthFromFieldTrialParams) { |
| 182 field_trial_group_ = "Enabled"; | 187 field_trial_group_ = "Enabled"; |
| 183 field_trial_params_["max_packet_length"] = "1450"; | 188 field_trial_params_["max_packet_length"] = "1450"; |
| 184 | 189 |
| 185 ConfigureQuicGlobals(); | 190 ConfigureQuicGlobals(); |
| 186 net::HttpNetworkSession::Params params; | 191 net::HttpNetworkSession::Params params; |
| 187 InitializeNetworkSessionParams(¶ms); | 192 InitializeNetworkSessionParams(¶ms); |
| 188 EXPECT_EQ(1450u, params.quic_max_packet_length); | 193 EXPECT_EQ(1450u, params.quic_max_packet_length); |
| 194 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 189 } | 195 } |
| 190 | 196 |
| 191 TEST_F(IOThreadTest, QuicVersionFromCommandLine) { | 197 TEST_F(IOThreadTest, QuicVersionFromCommandLine) { |
| 192 command_line_.AppendSwitch("enable-quic"); | 198 command_line_.AppendSwitch("enable-quic"); |
| 193 std::string version = | 199 std::string version = |
| 194 net::QuicVersionToString(net::QuicSupportedVersions().back()); | 200 net::QuicVersionToString(net::QuicSupportedVersions().back()); |
| 195 command_line_.AppendSwitchASCII("quic-version", version); | 201 command_line_.AppendSwitchASCII("quic-version", version); |
| 196 | 202 |
| 197 ConfigureQuicGlobals(); | 203 ConfigureQuicGlobals(); |
| 198 net::HttpNetworkSession::Params params; | 204 net::HttpNetworkSession::Params params; |
| 199 InitializeNetworkSessionParams(¶ms); | 205 InitializeNetworkSessionParams(¶ms); |
| 200 net::QuicVersionVector supported_versions; | 206 net::QuicVersionVector supported_versions; |
| 201 supported_versions.push_back(net::QuicSupportedVersions().back()); | 207 supported_versions.push_back(net::QuicSupportedVersions().back()); |
| 202 EXPECT_EQ(supported_versions, | 208 EXPECT_EQ(supported_versions, params.quic_supported_versions); |
| 203 params.quic_supported_versions); | 209 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 204 } | 210 } |
| 205 | 211 |
| 206 TEST_F(IOThreadTest, QuicVersionFromFieldTrialParams) { | 212 TEST_F(IOThreadTest, QuicVersionFromFieldTrialParams) { |
| 207 field_trial_group_ = "Enabled"; | 213 field_trial_group_ = "Enabled"; |
| 208 field_trial_params_["quic_version"] = | 214 field_trial_params_["quic_version"] = |
| 209 net::QuicVersionToString(net::QuicSupportedVersions().back()); | 215 net::QuicVersionToString(net::QuicSupportedVersions().back()); |
| 210 | 216 |
| 211 ConfigureQuicGlobals(); | 217 ConfigureQuicGlobals(); |
| 212 net::HttpNetworkSession::Params params; | 218 net::HttpNetworkSession::Params params; |
| 213 InitializeNetworkSessionParams(¶ms); | 219 InitializeNetworkSessionParams(¶ms); |
| 214 net::QuicVersionVector supported_versions; | 220 net::QuicVersionVector supported_versions; |
| 215 supported_versions.push_back(net::QuicSupportedVersions().back()); | 221 supported_versions.push_back(net::QuicSupportedVersions().back()); |
| 216 EXPECT_EQ(supported_versions, | 222 EXPECT_EQ(supported_versions, params.quic_supported_versions); |
| 217 params.quic_supported_versions); | 223 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 218 } | 224 } |
| 219 | 225 |
| 220 TEST_F(IOThreadTest, QuicConnectionOptionsFromCommandLine) { | 226 TEST_F(IOThreadTest, QuicConnectionOptionsFromCommandLine) { |
| 221 command_line_.AppendSwitch("enable-quic"); | 227 command_line_.AppendSwitch("enable-quic"); |
| 222 command_line_.AppendSwitchASCII("quic-connection-options", | 228 command_line_.AppendSwitchASCII("quic-connection-options", |
| 223 "PACE,TIME,TBBR,REJ"); | 229 "PACE,TIME,TBBR,REJ"); |
| 224 | 230 |
| 225 ConfigureQuicGlobals(); | 231 ConfigureQuicGlobals(); |
| 226 net::HttpNetworkSession::Params params; | 232 net::HttpNetworkSession::Params params; |
| 227 InitializeNetworkSessionParams(¶ms); | 233 InitializeNetworkSessionParams(¶ms); |
| 228 | 234 |
| 229 net::QuicTagVector options; | 235 net::QuicTagVector options; |
| 230 options.push_back(net::kPACE); | 236 options.push_back(net::kPACE); |
| 231 options.push_back(net::kTIME); | 237 options.push_back(net::kTIME); |
| 232 options.push_back(net::kTBBR); | 238 options.push_back(net::kTBBR); |
| 233 options.push_back(net::kREJ); | 239 options.push_back(net::kREJ); |
| 234 EXPECT_EQ(options, params.quic_connection_options); | 240 EXPECT_EQ(options, params.quic_connection_options); |
| 241 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 235 } | 242 } |
| 236 | 243 |
| 237 TEST_F(IOThreadTest, QuicConnectionOptionsFromFieldTrialParams) { | 244 TEST_F(IOThreadTest, QuicConnectionOptionsFromFieldTrialParams) { |
| 238 field_trial_group_ = "Enabled"; | 245 field_trial_group_ = "Enabled"; |
| 239 field_trial_params_["connection_options"] = "PACE,TIME,TBBR,REJ"; | 246 field_trial_params_["connection_options"] = "PACE,TIME,TBBR,REJ"; |
| 240 | 247 |
| 241 ConfigureQuicGlobals(); | 248 ConfigureQuicGlobals(); |
| 242 net::HttpNetworkSession::Params params; | 249 net::HttpNetworkSession::Params params; |
| 243 InitializeNetworkSessionParams(¶ms); | 250 InitializeNetworkSessionParams(¶ms); |
| 244 | 251 |
| 245 net::QuicTagVector options; | 252 net::QuicTagVector options; |
| 246 options.push_back(net::kPACE); | 253 options.push_back(net::kPACE); |
| 247 options.push_back(net::kTIME); | 254 options.push_back(net::kTIME); |
| 248 options.push_back(net::kTBBR); | 255 options.push_back(net::kTBBR); |
| 249 options.push_back(net::kREJ); | 256 options.push_back(net::kREJ); |
| 250 EXPECT_EQ(options, params.quic_connection_options); | 257 EXPECT_EQ(options, params.quic_connection_options); |
| 258 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 251 } | 259 } |
| 252 | 260 |
| 253 TEST_F(IOThreadTest, QuicConnectionOptionsFromDeprecatedFieldTrialParams) { | 261 TEST_F(IOThreadTest, QuicConnectionOptionsFromDeprecatedFieldTrialParams) { |
| 254 field_trial_group_ = "Enabled"; | 262 field_trial_group_ = "Enabled"; |
| 255 field_trial_params_["congestion_options"] = "PACE,TIME,TBBR,REJ"; | 263 field_trial_params_["congestion_options"] = "PACE,TIME,TBBR,REJ"; |
| 256 | 264 |
| 257 ConfigureQuicGlobals(); | 265 ConfigureQuicGlobals(); |
| 258 net::HttpNetworkSession::Params params; | 266 net::HttpNetworkSession::Params params; |
| 259 InitializeNetworkSessionParams(¶ms); | 267 InitializeNetworkSessionParams(¶ms); |
| 260 | 268 |
| 261 net::QuicTagVector options; | 269 net::QuicTagVector options; |
| 262 options.push_back(net::kPACE); | 270 options.push_back(net::kPACE); |
| 263 options.push_back(net::kTIME); | 271 options.push_back(net::kTIME); |
| 264 options.push_back(net::kTBBR); | 272 options.push_back(net::kTBBR); |
| 265 options.push_back(net::kREJ); | 273 options.push_back(net::kREJ); |
| 266 EXPECT_EQ(options, params.quic_connection_options); | 274 EXPECT_EQ(options, params.quic_connection_options); |
| 275 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 267 } | 276 } |
| 268 | 277 |
| 269 TEST_F(IOThreadTest, | 278 TEST_F(IOThreadTest, |
| 270 QuicAlwaysRequireHandshakeConfirmationFromFieldTrialParams) { | 279 QuicAlwaysRequireHandshakeConfirmationFromFieldTrialParams) { |
| 271 field_trial_group_ = "Enabled"; | 280 field_trial_group_ = "Enabled"; |
| 272 field_trial_params_["always_require_handshake_confirmation"] = "true"; | 281 field_trial_params_["always_require_handshake_confirmation"] = "true"; |
| 273 ConfigureQuicGlobals(); | 282 ConfigureQuicGlobals(); |
| 274 net::HttpNetworkSession::Params params; | 283 net::HttpNetworkSession::Params params; |
| 275 InitializeNetworkSessionParams(¶ms); | 284 InitializeNetworkSessionParams(¶ms); |
| 276 EXPECT_TRUE(params.quic_always_require_handshake_confirmation); | 285 EXPECT_TRUE(params.quic_always_require_handshake_confirmation); |
| 286 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 277 } | 287 } |
| 278 | 288 |
| 279 TEST_F(IOThreadTest, | 289 TEST_F(IOThreadTest, |
| 280 QuicDisableConnectionPoolingFromFieldTrialParams) { | 290 QuicDisableConnectionPoolingFromFieldTrialParams) { |
| 281 field_trial_group_ = "Enabled"; | 291 field_trial_group_ = "Enabled"; |
| 282 field_trial_params_["disable_connection_pooling"] = "true"; | 292 field_trial_params_["disable_connection_pooling"] = "true"; |
| 283 ConfigureQuicGlobals(); | 293 ConfigureQuicGlobals(); |
| 284 net::HttpNetworkSession::Params params; | 294 net::HttpNetworkSession::Params params; |
| 285 InitializeNetworkSessionParams(¶ms); | 295 InitializeNetworkSessionParams(¶ms); |
| 286 EXPECT_TRUE(params.quic_disable_connection_pooling); | 296 EXPECT_TRUE(params.quic_disable_connection_pooling); |
| 297 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 287 } | 298 } |
| 288 | 299 |
| 289 TEST_F(IOThreadTest, QuicLoadServerInfoTimeoutFromFieldTrialParams) { | 300 TEST_F(IOThreadTest, QuicLoadServerInfoTimeoutFromFieldTrialParams) { |
| 290 field_trial_group_ = "Enabled"; | 301 field_trial_group_ = "Enabled"; |
| 291 field_trial_params_["load_server_info_timeout"] = "50"; | 302 field_trial_params_["load_server_info_timeout"] = "50"; |
| 292 ConfigureQuicGlobals(); | 303 ConfigureQuicGlobals(); |
| 293 net::HttpNetworkSession::Params params; | 304 net::HttpNetworkSession::Params params; |
| 294 InitializeNetworkSessionParams(¶ms); | 305 InitializeNetworkSessionParams(¶ms); |
| 295 EXPECT_EQ(50, params.quic_load_server_info_timeout_ms); | 306 EXPECT_EQ(50, params.quic_load_server_info_timeout_ms); |
| 307 EXPECT_FALSE(params.quic_disable_loading_server_info_for_new_servers); |
| 308 } |
| 309 |
| 310 TEST_F(IOThreadTest, QuicDisableLoadingServerInfoForNewServers) { |
| 311 field_trial_group_ = "Enabled"; |
| 312 field_trial_params_["disable_loading_server_info_for_new_servers"] = "true"; |
| 313 ConfigureQuicGlobals(); |
| 314 net::HttpNetworkSession::Params params; |
| 315 InitializeNetworkSessionParams(¶ms); |
| 316 EXPECT_TRUE(params.quic_disable_loading_server_info_for_new_servers); |
| 296 } | 317 } |
| 297 | 318 |
| 298 TEST_F(IOThreadTest, | 319 TEST_F(IOThreadTest, |
| 299 AlternateProtocolProbabilityThresholdFromFlag) { | 320 AlternateProtocolProbabilityThresholdFromFlag) { |
| 300 command_line_.AppendSwitchASCII("alternate-protocol-probability-threshold", | 321 command_line_.AppendSwitchASCII("alternate-protocol-probability-threshold", |
| 301 ".5"); | 322 ".5"); |
| 302 | 323 |
| 303 ConfigureQuicGlobals(); | 324 ConfigureQuicGlobals(); |
| 304 net::HttpNetworkSession::Params params; | 325 net::HttpNetworkSession::Params params; |
| 305 InitializeNetworkSessionParams(¶ms); | 326 InitializeNetworkSessionParams(¶ms); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 321 field_trial_group_ = "Enabled"; | 342 field_trial_group_ = "Enabled"; |
| 322 field_trial_params_["alternate_protocol_probability_threshold"] = ".5"; | 343 field_trial_params_["alternate_protocol_probability_threshold"] = ".5"; |
| 323 | 344 |
| 324 ConfigureQuicGlobals(); | 345 ConfigureQuicGlobals(); |
| 325 net::HttpNetworkSession::Params params; | 346 net::HttpNetworkSession::Params params; |
| 326 InitializeNetworkSessionParams(¶ms); | 347 InitializeNetworkSessionParams(¶ms); |
| 327 EXPECT_EQ(.5, params.alternate_protocol_probability_threshold); | 348 EXPECT_EQ(.5, params.alternate_protocol_probability_threshold); |
| 328 } | 349 } |
| 329 | 350 |
| 330 } // namespace test | 351 } // namespace test |
| OLD | NEW |