gfe-relnote: Add kSupportedVersions to quic_versions.h, no behavior change

PiperOrigin-RevId: 289758796
Change-Id: Iaea196d5a8d8fb15c6c4b4b871f0d92959b12515
diff --git a/quic/core/quic_versions.cc b/quic/core/quic_versions.cc
index 6daac15..f8acb5b 100644
--- a/quic/core/quic_versions.cc
+++ b/quic/core/quic_versions.cc
@@ -275,16 +275,8 @@
 }
 
 ParsedQuicVersionVector AllSupportedVersions() {
-  ParsedQuicVersionVector supported_versions;
-  for (HandshakeProtocol handshake_protocol : kSupportedHandshakeProtocols) {
-    for (QuicTransportVersion transport_version : kSupportedTransportVersions) {
-      if (ParsedQuicVersionIsValid(handshake_protocol, transport_version)) {
-        supported_versions.push_back(
-            ParsedQuicVersion(handshake_protocol, transport_version));
-      }
-    }
-  }
-  return supported_versions;
+  return ParsedQuicVersionVector(kSupportedVersions.begin(),
+                                 kSupportedVersions.end());
 }
 
 ParsedQuicVersionVector CurrentSupportedVersions() {
diff --git a/quic/core/quic_versions.h b/quic/core/quic_versions.h
index 6adf748..6d6456f 100644
--- a/quic/core/quic_versions.h
+++ b/quic/core/quic_versions.h
@@ -290,6 +290,17 @@
 static const HandshakeProtocol kSupportedHandshakeProtocols[] = {
     PROTOCOL_QUIC_CRYPTO, PROTOCOL_TLS1_3};
 
+static const std::array<ParsedQuicVersion, 8> kSupportedVersions = {
+    ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_99),
+    ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_50),
+    ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_49),
+    ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_48),
+    ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_46),
+    ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, QUIC_VERSION_43),
+    ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_99),
+    ParsedQuicVersion(PROTOCOL_TLS1_3, QUIC_VERSION_50),
+};
+
 typedef std::vector<QuicTransportVersion> QuicTransportVersionVector;
 
 // Returns a vector of QUIC versions in kSupportedTransportVersions.
diff --git a/quic/core/quic_versions_test.cc b/quic/core/quic_versions_test.cc
index 81f9940..cbaab95 100644
--- a/quic/core/quic_versions_test.cc
+++ b/quic/core/quic_versions_test.cc
@@ -478,6 +478,21 @@
   }
 }
 
+TEST_F(QuicVersionsTest, SupportedVersionsHasCorrectList) {
+  size_t index = 0;
+  for (HandshakeProtocol handshake_protocol : kSupportedHandshakeProtocols) {
+    for (QuicTransportVersion transport_version : kSupportedTransportVersions) {
+      SCOPED_TRACE(index);
+      if (ParsedQuicVersionIsValid(handshake_protocol, transport_version)) {
+        EXPECT_EQ(kSupportedVersions[index],
+                  ParsedQuicVersion(handshake_protocol, transport_version));
+        index++;
+      }
+    }
+  }
+  EXPECT_EQ(kSupportedVersions.size(), index);
+}
+
 }  // namespace
 }  // namespace test
 }  // namespace quic