diff options
author | rtenneti <rtenneti@chromium.org> | 2016-01-15 12:12:10 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-15 20:13:08 +0000 |
commit | 6971c17d82c972e7bd26eb2e463e89b1f4922047 (patch) | |
tree | fd07eb2498615c6adfe1f58862e73b44d6b6fbf9 /components/cronet | |
parent | b27b563bf2f716a7757eb90626b029cc16047847 (diff) | |
download | chromium_src-6971c17d82c972e7bd26eb2e463e89b1f4922047.zip chromium_src-6971c17d82c972e7bd26eb2e463e89b1f4922047.tar.gz chromium_src-6971c17d82c972e7bd26eb2e463e89b1f4922047.tar.bz2 |
QUIC - Allow cronet apps to specify how many server configs are to be
persisted in prefs file (local_prefs.json).
Added "max_server_configs_stored_in_properties" cronet
experiment options.
Will delete support for "store_server_configs_in_properties",
after all cronet apps stop using it. Added backward
compatibility code that sets
number_of_server_configs_stored_in_properties to 5
when this option is enabled.
R=rch@chromium.org, mef@chromium.org
Review URL: https://codereview.chromium.org/1572753003
Cr-Commit-Position: refs/heads/master@{#369825}
Diffstat (limited to 'components/cronet')
3 files changed, 18 insertions, 6 deletions
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java index 4854cb5..fa9c5d0 100644 --- a/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java +++ b/components/cronet/android/test/javatests/src/org/chromium/net/QuicTest.java @@ -43,7 +43,7 @@ public class QuicTest extends CronetTestBase { JSONObject quicParams = new JSONObject() .put("connection_options", "PACE,IW10,FOO,DEADBEEF") .put("host_whitelist", "test.example.com") - .put("store_server_configs_in_properties", true) + .put("max_server_configs_stored_in_properties", 2) .put("delay_tcp_race", true) .put("max_number_of_lossy_connections", 10) .put("packet_loss_threshold", 0.5) diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc index cb19efc..ca88279 100644 --- a/components/cronet/url_request_context_config.cc +++ b/components/cronet/url_request_context_config.cc @@ -15,6 +15,7 @@ #include "base/values.h" #include "net/cert/cert_verifier.h" #include "net/dns/host_resolver.h" +#include "net/http/http_server_properties.h" #include "net/quic/quic_protocol.h" #include "net/quic/quic_utils.h" #include "net/url_request/url_request_context_builder.h" @@ -28,6 +29,8 @@ const char kQuicFieldTrialName[] = "QUIC"; const char kQuicConnectionOptions[] = "connection_options"; const char kQuicStoreServerConfigsInProperties[] = "store_server_configs_in_properties"; +const char kQuicMaxServerConfigsStoredInProperties[] = + "max_server_configs_stored_in_properties"; const char kQuicDelayTcpRace[] = "delay_tcp_race"; const char kQuicMaxNumberOfLossyConnections[] = "max_number_of_lossy_connections"; @@ -76,11 +79,20 @@ void ParseAndSetExperimentalOptions( net::QuicUtils::ParseQuicConnectionOptions(quic_connection_options)); } + // TODO(rtenneti): Delete this option after apps stop using it. + // Added this for backward compatibility. bool quic_store_server_configs_in_properties = false; if (quic_args->GetBoolean(kQuicStoreServerConfigsInProperties, &quic_store_server_configs_in_properties)) { - context_builder->set_quic_store_server_configs_in_properties( - quic_store_server_configs_in_properties); + context_builder->set_quic_max_server_configs_stored_in_properties( + net::kMaxQuicServersToPersist); + } + + int quic_max_server_configs_stored_in_properties = 0; + if (quic_args->GetInteger(kQuicMaxServerConfigsStoredInProperties, + &quic_max_server_configs_stored_in_properties)) { + context_builder->set_quic_max_server_configs_stored_in_properties( + static_cast<size_t>(quic_max_server_configs_stored_in_properties)); } bool quic_delay_tcp_race = false; diff --git a/components/cronet/url_request_context_config_unittest.cc b/components/cronet/url_request_context_config_unittest.cc index e360f55..d14c32e 100644 --- a/components/cronet/url_request_context_config_unittest.cc +++ b/components/cronet/url_request_context_config_unittest.cc @@ -35,7 +35,7 @@ TEST(URLRequestContextConfigTest, SetQuicExperimentalOptions) { // User-Agent request header field. "fake agent", // JSON encoded experimental options. - "{\"QUIC\":{\"store_server_configs_in_properties\":true," + "{\"QUIC\":{\"max_server_configs_stored_in_properties\":2," "\"delay_tcp_race\":true," "\"max_number_of_lossy_connections\":10," "\"packet_loss_threshold\":0.5," @@ -69,8 +69,8 @@ TEST(URLRequestContextConfigTest, SetQuicExperimentalOptions) { quic_connection_options.push_back(net::kREJ); EXPECT_EQ(quic_connection_options, params->quic_connection_options); - // Check store_server_configs_in_properties. - EXPECT_TRUE(params->quic_store_server_configs_in_properties); + // Check max_server_configs_stored_in_properties. + EXPECT_EQ(2u, params->quic_max_server_configs_stored_in_properties); // Check delay_tcp_race. EXPECT_TRUE(params->quic_delay_tcp_race); |