Refactor how TLS versions get enabled

This brings it closer in line to how QUIC_VERSION_99 is handled and sets up the
flag to be switched to a reloadable flag (blocked on being enabled). In particular,
AllSupportedVersions() now returns versions that include PROTOCOL_TLS1_3 for the
handshake_protocol.

When a TLS version is in use, it is safe to assume that
ParsedQuicVersion::KnowsWhichDecrypterToUse always returns true. This is because
KnowsWhichDecrypterToUse is enabled for QUIC_VERSION_47 and above, while TLS versions
only exist when CRYPTO frames are in use, which is currently only transport version 99.

gfe-relnote: refactor of TLS version code; protected by quic_supports_tls_handshake
PiperOrigin-RevId: 250599516
Change-Id: Ibfe68d74089ce29edeee219671c81e1643702000
diff --git a/quic/core/quic_version_manager.cc b/quic/core/quic_version_manager.cc
index 5874f92..a184314 100644
--- a/quic/core/quic_version_manager.cc
+++ b/quic/core/quic_version_manager.cc
@@ -19,6 +19,7 @@
       enable_version_46_(GetQuicReloadableFlag(quic_enable_version_46)),
       enable_version_44_(GetQuicReloadableFlag(quic_enable_version_44)),
       disable_version_39_(GetQuicReloadableFlag(quic_disable_version_39)),
+      enable_tls_(GetQuicFlag(FLAGS_quic_supports_tls_handshake)),
       allowed_supported_versions_(std::move(supported_versions)) {
   RefilterSupportedVersions();
 }
@@ -41,12 +42,14 @@
       enable_version_47_ != GetQuicReloadableFlag(quic_enable_version_47) ||
       enable_version_46_ != GetQuicReloadableFlag(quic_enable_version_46) ||
       enable_version_44_ != GetQuicReloadableFlag(quic_enable_version_44) ||
-      disable_version_39_ != GetQuicReloadableFlag(quic_disable_version_39)) {
+      disable_version_39_ != GetQuicReloadableFlag(quic_disable_version_39) ||
+      enable_tls_ != GetQuicFlag(FLAGS_quic_supports_tls_handshake)) {
     enable_version_99_ = GetQuicReloadableFlag(quic_enable_version_99);
     enable_version_47_ = GetQuicReloadableFlag(quic_enable_version_47);
     enable_version_46_ = GetQuicReloadableFlag(quic_enable_version_46);
     enable_version_44_ = GetQuicReloadableFlag(quic_enable_version_44);
     disable_version_39_ = GetQuicReloadableFlag(quic_disable_version_39);
+    enable_tls_ = GetQuicFlag(FLAGS_quic_supports_tls_handshake);
     RefilterSupportedVersions();
   }
 }