summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/io_thread.cc10
-rw-r--r--chrome/browser/io_thread.h4
-rw-r--r--chrome/browser/io_thread_unittest.cc10
3 files changed, 24 insertions, 0 deletions
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
index 42bbf7c..67f2619 100644
--- a/chrome/browser/io_thread.cc
+++ b/chrome/browser/io_thread.cc
@@ -1174,6 +1174,7 @@ void IOThread::InitializeNetworkSessionParamsFromGlobals(
&params->quic_enable_connection_racing);
globals.quic_enable_non_blocking_io.CopyToIfSet(
&params->quic_enable_non_blocking_io);
+ globals.quic_prefer_aes.CopyToIfSet(&params->quic_prefer_aes);
globals.quic_disable_disk_cache.CopyToIfSet(
&params->quic_disable_disk_cache);
globals.quic_max_number_of_lossy_connections.CopyToIfSet(
@@ -1321,6 +1322,8 @@ void IOThread::ConfigureQuicGlobals(
ShouldQuicEnableNonBlockingIO(quic_trial_params));
globals->quic_disable_disk_cache.set(
ShouldQuicDisableDiskCache(quic_trial_params));
+ globals->quic_prefer_aes.set(
+ ShouldQuicPreferAes(quic_trial_params));
int max_number_of_lossy_connections = GetQuicMaxNumberOfLossyConnections(
quic_trial_params);
if (max_number_of_lossy_connections != 0) {
@@ -1532,6 +1535,13 @@ bool IOThread::ShouldQuicDisableDiskCache(
}
// static
+bool IOThread::ShouldQuicPreferAes(
+ const VariationParameters& quic_trial_params) {
+ return base::LowerCaseEqualsASCII(
+ GetVariationParam(quic_trial_params, "prefer_aes"), "true");
+}
+
+// static
int IOThread::GetQuicMaxNumberOfLossyConnections(
const VariationParameters& quic_trial_params) {
int value;
diff --git a/chrome/browser/io_thread.h b/chrome/browser/io_thread.h
index 7a02c5b..aefdc97 100644
--- a/chrome/browser/io_thread.h
+++ b/chrome/browser/io_thread.h
@@ -189,6 +189,7 @@ class IOThread : public content::BrowserThreadDelegate {
Optional<bool> quic_enable_connection_racing;
Optional<bool> quic_enable_non_blocking_io;
Optional<bool> quic_disable_disk_cache;
+ Optional<bool> quic_prefer_aes;
Optional<int> quic_max_number_of_lossy_connections;
Optional<float> quic_packet_loss_threshold;
Optional<int> quic_socket_receive_buffer_size;
@@ -375,6 +376,9 @@ class IOThread : public content::BrowserThreadDelegate {
static bool ShouldQuicDisableDiskCache(
const VariationParameters& quic_trial_params);
+ // Returns true if QUIC should prefer AES-GCN even without hardware support.
+ static bool ShouldQuicPreferAes(const VariationParameters& quic_trial_params);
+
// Returns the maximum number of QUIC connections with high packet loss in a
// row after which QUIC should be disabled. Returns 0 if the default value
// should be used.
diff --git a/chrome/browser/io_thread_unittest.cc b/chrome/browser/io_thread_unittest.cc
index 03e3dc4..6f460bd 100644
--- a/chrome/browser/io_thread_unittest.cc
+++ b/chrome/browser/io_thread_unittest.cc
@@ -188,6 +188,7 @@ TEST_F(IOThreadTest, EnableQuicFromFieldTrialGroup) {
EXPECT_FALSE(params.quic_enable_connection_racing);
EXPECT_FALSE(params.quic_enable_non_blocking_io);
EXPECT_FALSE(params.quic_disable_disk_cache);
+ EXPECT_FALSE(params.quic_prefer_aes);
EXPECT_EQ(0, params.quic_max_number_of_lossy_connections);
EXPECT_EQ(1.0f, params.quic_packet_loss_threshold);
EXPECT_FALSE(IOThread::ShouldEnableQuicForDataReductionProxy());
@@ -363,6 +364,15 @@ TEST_F(IOThreadTest, QuicDisableDiskCache) {
EXPECT_TRUE(params.quic_disable_disk_cache);
}
+TEST_F(IOThreadTest, QuicPreferAes) {
+ field_trial_group_ = "Enabled";
+ field_trial_params_["prefer_aes"] = "true";
+ ConfigureQuicGlobals();
+ net::HttpNetworkSession::Params params;
+ InitializeNetworkSessionParams(&params);
+ EXPECT_TRUE(params.quic_prefer_aes);
+}
+
TEST_F(IOThreadTest, QuicMaxNumberOfLossyConnectionsFieldTrialParams) {
field_trial_group_ = "Enabled";
field_trial_params_["max_number_of_lossy_connections"] = "5";