Index: chrome/browser/io_thread.cc |
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc |
index 41d8709c78e96ec25425124e14cce21aea230a9f..72a745b66e1fb87b5d77f2577e4dca699e46a4e1 100644 |
--- a/chrome/browser/io_thread.cc |
+++ b/chrome/browser/io_thread.cc |
@@ -42,6 +42,7 @@ |
#include "chrome/common/chrome_version_info.h" |
#include "chrome/common/pref_names.h" |
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_prefs.h" |
+#include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h" |
#include "components/policy/core/common/policy_service.h" |
#include "components/variations/variations_associated_data.h" |
#include "content/public/browser/browser_thread.h" |
@@ -1039,6 +1040,7 @@ void IOThread::InitializeNetworkSessionParamsFromGlobals( |
¶ms->alternate_protocol_probability_threshold); |
globals.enable_quic.CopyToIfSet(¶ms->enable_quic); |
+ globals.enable_quic_for_proxies.CopyToIfSet(¶ms->enable_quic_for_proxies); |
globals.quic_always_require_handshake_confirmation.CopyToIfSet( |
¶ms->quic_always_require_handshake_confirmation); |
globals.quic_disable_connection_pooling.CopyToIfSet( |
@@ -1168,6 +1170,9 @@ void IOThread::ConfigureQuicGlobals( |
IOThread::Globals* globals) { |
bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group); |
globals->enable_quic.set(enable_quic); |
+ bool enable_quic_for_proxies = ShouldEnableQuicForProxies(command_line, |
+ quic_trial_group); |
+ globals->enable_quic_for_proxies.set(enable_quic_for_proxies); |
if (enable_quic) { |
globals->quic_always_require_handshake_confirmation.set( |
ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params)); |
@@ -1249,6 +1254,25 @@ bool IOThread::ShouldEnableQuic(const base::CommandLine& command_line, |
quic_trial_group.starts_with(kQuicFieldTrialHttpsEnabledGroupName); |
} |
+// static |
+bool IOThread::ShouldEnableQuicForProxies(const base::CommandLine& command_line, |
+ base::StringPiece quic_trial_group) { |
+ return ShouldEnableQuic(command_line, quic_trial_group) || |
+ ShouldEnableQuicForDataReductionProxy(); |
+} |
+ |
+// static |
+bool IOThread::ShouldEnableQuicForDataReductionProxy() { |
+ const base::CommandLine& command_line = |
+ *base::CommandLine::ForCurrentProcess(); |
+ |
+ if (command_line.HasSwitch(switches::kDisableQuic)) |
+ return false; |
+ |
+ return data_reduction_proxy::DataReductionProxyParams:: |
+ IsIncludedInQuicFieldTrial(); |
+} |
+ |
bool IOThread::ShouldEnableQuicPortSelection( |
const base::CommandLine& command_line) { |
if (command_line.HasSwitch(switches::kDisableQuicPortSelection)) |