| 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 "chrome/browser/io_thread.h" | 5 #include "chrome/browser/io_thread.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/base64.h" | 9 #include "base/base64.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 875 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 886 globals->next_protos.push_back(net::kProtoQUIC1SPDY3); | 886 globals->next_protos.push_back(net::kProtoQUIC1SPDY3); |
| 887 } | 887 } |
| 888 | 888 |
| 889 // No SPDY command-line flags have been specified. Examine trial groups. | 889 // No SPDY command-line flags have been specified. Examine trial groups. |
| 890 if (spdy_trial_group.starts_with(kSpdyFieldTrialHoldbackGroupNamePrefix)) { | 890 if (spdy_trial_group.starts_with(kSpdyFieldTrialHoldbackGroupNamePrefix)) { |
| 891 net::HttpStreamFactory::set_spdy_enabled(false); | 891 net::HttpStreamFactory::set_spdy_enabled(false); |
| 892 return; | 892 return; |
| 893 } | 893 } |
| 894 if (spdy_trial_group.starts_with(kSpdyFieldTrialSpdy31GroupNamePrefix)) { | 894 if (spdy_trial_group.starts_with(kSpdyFieldTrialSpdy31GroupNamePrefix)) { |
| 895 globals->next_protos.push_back(net::kProtoSPDY31); | 895 globals->next_protos.push_back(net::kProtoSPDY31); |
| 896 globals->use_alternative_services.set(true); | |
| 897 return; | 896 return; |
| 898 } | 897 } |
| 899 if (spdy_trial_group.starts_with(kSpdyFieldTrialSpdy4GroupNamePrefix)) { | 898 if (spdy_trial_group.starts_with(kSpdyFieldTrialSpdy4GroupNamePrefix)) { |
| 900 globals->next_protos.push_back(net::kProtoSPDY31); | 899 globals->next_protos.push_back(net::kProtoSPDY31); |
| 901 globals->next_protos.push_back(net::kProtoHTTP2); | 900 globals->next_protos.push_back(net::kProtoHTTP2); |
| 902 globals->use_alternative_services.set(true); | |
| 903 return; | 901 return; |
| 904 } | 902 } |
| 905 if (spdy_trial_group.starts_with(kSpdyFieldTrialParametrizedPrefix)) { | 903 if (spdy_trial_group.starts_with(kSpdyFieldTrialParametrizedPrefix)) { |
| 906 bool spdy_enabled = false; | 904 bool spdy_enabled = false; |
| 907 if (base::LowerCaseEqualsASCII( | 905 if (base::LowerCaseEqualsASCII( |
| 908 GetVariationParam(spdy_trial_params, "enable_spdy31"), "true")) { | 906 GetVariationParam(spdy_trial_params, "enable_spdy31"), "true")) { |
| 909 globals->next_protos.push_back(net::kProtoSPDY31); | 907 globals->next_protos.push_back(net::kProtoSPDY31); |
| 910 spdy_enabled = true; | 908 spdy_enabled = true; |
| 911 } | 909 } |
| 912 if (base::LowerCaseEqualsASCII( | 910 if (base::LowerCaseEqualsASCII( |
| 913 GetVariationParam(spdy_trial_params, "enable_http2"), "true")) { | 911 GetVariationParam(spdy_trial_params, "enable_http2"), "true")) { |
| 914 globals->next_protos.push_back(net::kProtoHTTP2); | 912 globals->next_protos.push_back(net::kProtoHTTP2); |
| 915 spdy_enabled = true; | 913 spdy_enabled = true; |
| 916 } | 914 } |
| 917 // TODO(bnc): HttpStreamFactory::spdy_enabled_ is redundant with | 915 // TODO(bnc): HttpStreamFactory::spdy_enabled_ is redundant with |
| 918 // globals->next_protos, can it be eliminated? | 916 // globals->next_protos, can it be eliminated? |
| 919 net::HttpStreamFactory::set_spdy_enabled(spdy_enabled); | 917 net::HttpStreamFactory::set_spdy_enabled(spdy_enabled); |
| 920 globals->use_alternative_services.set(true); | |
| 921 return; | 918 return; |
| 922 } | 919 } |
| 923 | 920 |
| 924 // By default, enable HTTP/2. | 921 // By default, enable HTTP/2. |
| 925 globals->next_protos.push_back(net::kProtoSPDY31); | 922 globals->next_protos.push_back(net::kProtoSPDY31); |
| 926 globals->next_protos.push_back(net::kProtoHTTP2); | 923 globals->next_protos.push_back(net::kProtoHTTP2); |
| 927 globals->use_alternative_services.set(true); | |
| 928 } | 924 } |
| 929 | 925 |
| 930 void IOThread::RegisterPrefs(PrefRegistrySimple* registry) { | 926 void IOThread::RegisterPrefs(PrefRegistrySimple* registry) { |
| 931 registry->RegisterStringPref(prefs::kAuthSchemes, | 927 registry->RegisterStringPref(prefs::kAuthSchemes, |
| 932 "basic,digest,ntlm,negotiate"); | 928 "basic,digest,ntlm,negotiate"); |
| 933 registry->RegisterBooleanPref(prefs::kDisableAuthNegotiateCnameLookup, false); | 929 registry->RegisterBooleanPref(prefs::kDisableAuthNegotiateCnameLookup, false); |
| 934 registry->RegisterBooleanPref(prefs::kEnableAuthNegotiatePort, false); | 930 registry->RegisterBooleanPref(prefs::kEnableAuthNegotiatePort, false); |
| 935 registry->RegisterStringPref(prefs::kAuthServerWhitelist, std::string()); | 931 registry->RegisterStringPref(prefs::kAuthServerWhitelist, std::string()); |
| 936 registry->RegisterStringPref(prefs::kAuthNegotiateDelegateWhitelist, | 932 registry->RegisterStringPref(prefs::kAuthNegotiateDelegateWhitelist, |
| 937 std::string()); | 933 std::string()); |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1156 load_server_info_timeout_srtt_multiplier); | 1152 load_server_info_timeout_srtt_multiplier); |
| 1157 } | 1153 } |
| 1158 globals->quic_enable_connection_racing.set( | 1154 globals->quic_enable_connection_racing.set( |
| 1159 ShouldQuicEnableConnectionRacing(quic_trial_params)); | 1155 ShouldQuicEnableConnectionRacing(quic_trial_params)); |
| 1160 globals->quic_enable_non_blocking_io.set( | 1156 globals->quic_enable_non_blocking_io.set( |
| 1161 ShouldQuicEnableNonBlockingIO(quic_trial_params)); | 1157 ShouldQuicEnableNonBlockingIO(quic_trial_params)); |
| 1162 globals->quic_disable_disk_cache.set( | 1158 globals->quic_disable_disk_cache.set( |
| 1163 ShouldQuicDisableDiskCache(quic_trial_params)); | 1159 ShouldQuicDisableDiskCache(quic_trial_params)); |
| 1164 globals->quic_prefer_aes.set( | 1160 globals->quic_prefer_aes.set( |
| 1165 ShouldQuicPreferAes(quic_trial_params)); | 1161 ShouldQuicPreferAes(quic_trial_params)); |
| 1162 globals->use_alternative_services.set( |
| 1163 ShouldQuicEnableAlternativeServices(quic_trial_params)); |
| 1166 int max_number_of_lossy_connections = GetQuicMaxNumberOfLossyConnections( | 1164 int max_number_of_lossy_connections = GetQuicMaxNumberOfLossyConnections( |
| 1167 quic_trial_params); | 1165 quic_trial_params); |
| 1168 if (max_number_of_lossy_connections != 0) { | 1166 if (max_number_of_lossy_connections != 0) { |
| 1169 globals->quic_max_number_of_lossy_connections.set( | 1167 globals->quic_max_number_of_lossy_connections.set( |
| 1170 max_number_of_lossy_connections); | 1168 max_number_of_lossy_connections); |
| 1171 } | 1169 } |
| 1172 float packet_loss_threshold = GetQuicPacketLossThreshold(quic_trial_params); | 1170 float packet_loss_threshold = GetQuicPacketLossThreshold(quic_trial_params); |
| 1173 if (packet_loss_threshold != 0) | 1171 if (packet_loss_threshold != 0) |
| 1174 globals->quic_packet_loss_threshold.set(packet_loss_threshold); | 1172 globals->quic_packet_loss_threshold.set(packet_loss_threshold); |
| 1175 globals->enable_quic_port_selection.set( | 1173 globals->enable_quic_port_selection.set( |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1366 return base::LowerCaseEqualsASCII( | 1364 return base::LowerCaseEqualsASCII( |
| 1367 GetVariationParam(quic_trial_params, "disable_disk_cache"), "true"); | 1365 GetVariationParam(quic_trial_params, "disable_disk_cache"), "true"); |
| 1368 } | 1366 } |
| 1369 | 1367 |
| 1370 bool IOThread::ShouldQuicPreferAes( | 1368 bool IOThread::ShouldQuicPreferAes( |
| 1371 const VariationParameters& quic_trial_params) { | 1369 const VariationParameters& quic_trial_params) { |
| 1372 return base::LowerCaseEqualsASCII( | 1370 return base::LowerCaseEqualsASCII( |
| 1373 GetVariationParam(quic_trial_params, "prefer_aes"), "true"); | 1371 GetVariationParam(quic_trial_params, "prefer_aes"), "true"); |
| 1374 } | 1372 } |
| 1375 | 1373 |
| 1374 bool IOThread::ShouldQuicEnableAlternativeServices( |
| 1375 const VariationParameters& quic_trial_params) { |
| 1376 return base::LowerCaseEqualsASCII( |
| 1377 GetVariationParam(quic_trial_params, "use_alternative_services"), "true"); |
| 1378 } |
| 1379 |
| 1376 int IOThread::GetQuicMaxNumberOfLossyConnections( | 1380 int IOThread::GetQuicMaxNumberOfLossyConnections( |
| 1377 const VariationParameters& quic_trial_params) { | 1381 const VariationParameters& quic_trial_params) { |
| 1378 int value; | 1382 int value; |
| 1379 if (base::StringToInt(GetVariationParam(quic_trial_params, | 1383 if (base::StringToInt(GetVariationParam(quic_trial_params, |
| 1380 "max_number_of_lossy_connections"), | 1384 "max_number_of_lossy_connections"), |
| 1381 &value)) { | 1385 &value)) { |
| 1382 return value; | 1386 return value; |
| 1383 } | 1387 } |
| 1384 return 0; | 1388 return 0; |
| 1385 } | 1389 } |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1574 globals->proxy_script_fetcher_url_request_job_factory = job_factory.Pass(); | 1578 globals->proxy_script_fetcher_url_request_job_factory = job_factory.Pass(); |
| 1575 | 1579 |
| 1576 context->set_job_factory( | 1580 context->set_job_factory( |
| 1577 globals->proxy_script_fetcher_url_request_job_factory.get()); | 1581 globals->proxy_script_fetcher_url_request_job_factory.get()); |
| 1578 | 1582 |
| 1579 // TODO(rtenneti): We should probably use HttpServerPropertiesManager for the | 1583 // TODO(rtenneti): We should probably use HttpServerPropertiesManager for the |
| 1580 // system URLRequestContext too. There's no reason this should be tied to a | 1584 // system URLRequestContext too. There's no reason this should be tied to a |
| 1581 // profile. | 1585 // profile. |
| 1582 return context; | 1586 return context; |
| 1583 } | 1587 } |
| OLD | NEW |