Update QUIC transport parameters to draft 20

This CL updates from draft-18 to draft-19/20. The only changes are idle_timeout being in milliseconds instead of seconds, and the removal of the versions before the parameters. We've kept the versions in a custom Google-specific extension for now. This extension will eventually evolve into the IETF compatible version negotiation extension.

gfe-relnote: protected by disabled flag quic_supports_tls_handshake
PiperOrigin-RevId: 246043673
Change-Id: I35929d0f381f506e2275e639af41e840ab16b8ca
diff --git a/quic/core/quic_config.cc b/quic/core/quic_config.cc
index cad98db..b106f41 100644
--- a/quic/core/quic_config.cc
+++ b/quic/core/quic_config.cc
@@ -750,8 +750,8 @@
 }
 
 bool QuicConfig::FillTransportParameters(TransportParameters* params) const {
-  params->idle_timeout_seconds.set_value(
-      idle_network_timeout_seconds_.GetUint32());
+  params->idle_timeout_milliseconds.set_value(
+      idle_network_timeout_seconds_.GetUint32() * kNumMillisPerSecond);
 
   if (stateless_reset_token_.HasSendValue()) {
     QuicUint128 stateless_reset_token = stateless_reset_token_.GetSendValue();
@@ -807,7 +807,9 @@
     const TransportParameters& params,
     HelloType hello_type,
     std::string* error_details) {
-  uint64_t idle_timeout_seconds = params.idle_timeout_seconds.value();
+  // Intentionally round down to probe too often rather than not often enough.
+  uint64_t idle_timeout_seconds =
+      params.idle_timeout_milliseconds.value() / kNumMillisPerSecond;
   if (idle_timeout_seconds > kMaximumIdleTimeoutSecs) {
     idle_timeout_seconds = kMaximumIdleTimeoutSecs;
   }