diff --git a/quic/quic_transport/quic_transport_client_session.cc b/quic/quic_transport/quic_transport_client_session.cc
index 51e20b9..b093026 100644
--- a/quic/quic_transport/quic_transport_client_session.cc
+++ b/quic/quic_transport/quic_transport_client_session.cc
@@ -21,9 +21,6 @@
 
 namespace quic {
 
-const char* kQuicTransportAlpn = "wq-vvv-01";
-const QuicStreamId kClientIndicationStream = 2;
-
 namespace {
 // ProofHandler is primarily used by QUIC crypto to persist QUIC server configs
 // and perform some of related debug logging.  QuicTransport does not support
@@ -115,7 +112,7 @@
   }
 
   auto client_indication_owned = std::make_unique<ClientIndication>(
-      /*stream_id=*/kClientIndicationStream, this, /*is_static=*/false,
+      /*stream_id=*/ClientIndicationStream(), this, /*is_static=*/false,
       WRITE_UNIDIRECTIONAL);
   ClientIndication* client_indication = client_indication_owned.get();
   ActivateStream(std::move(client_indication_owned));
diff --git a/quic/quic_transport/quic_transport_client_session.h b/quic/quic_transport/quic_transport_client_session.h
index 9ae8500..69e7d8e 100644
--- a/quic/quic_transport/quic_transport_client_session.h
+++ b/quic/quic_transport/quic_transport_client_session.h
@@ -20,18 +20,10 @@
 #include "net/third_party/quiche/src/quic/core/quic_versions.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_string_piece.h"
+#include "net/third_party/quiche/src/quic/quic_transport/quic_transport_protocol.h"
 
 namespace quic {
 
-// The ALPN used by QuicTransport.
-QUIC_EXPORT extern const char* kQuicTransportAlpn;
-
-QUIC_EXPORT extern const QuicStreamId kClientIndicationStream;
-
-enum class QuicTransportClientIndicationKeys : uint16_t {
-  kOrigin = 0x0000,
-};
-
 // A client session for the QuicTransport protocol.
 class QUIC_EXPORT QuicTransportClientSession : public QuicSession {
  public:
@@ -44,7 +36,7 @@
                              url::Origin origin);
 
   std::vector<std::string> GetAlpnsToOffer() const override {
-    return std::vector<std::string>({kQuicTransportAlpn});
+    return std::vector<std::string>({QuicTransportAlpn()});
   }
 
   void CryptoConnect() { crypto_stream_->CryptoConnect(); }
diff --git a/quic/quic_transport/quic_transport_client_session_test.cc b/quic/quic_transport/quic_transport_client_session_test.cc
index a6af854..41b6816 100644
--- a/quic/quic_transport/quic_transport_client_session_test.cc
+++ b/quic/quic_transport/quic_transport_client_session_test.cc
@@ -102,7 +102,7 @@
     QuicConfig server_config = DefaultQuicConfig();
     crypto_test_utils::HandshakeWithFakeServer(
         &server_config, &helper_, &alarm_factory_, &connection_, crypto_stream_,
-        kQuicTransportAlpn);
+        QuicTransportAlpn());
   }
 
   MockAlarmFactory alarm_factory_;
@@ -116,7 +116,7 @@
 };
 
 TEST_F(QuicTransportClientSessionTest, HasValidAlpn) {
-  EXPECT_THAT(session_->GetAlpnsToOffer(), ElementsAre(kQuicTransportAlpn));
+  EXPECT_THAT(session_->GetAlpnsToOffer(), ElementsAre(QuicTransportAlpn()));
 }
 
 TEST_F(QuicTransportClientSessionTest, SuccessfulConnection) {
@@ -124,7 +124,7 @@
   EXPECT_TRUE(session_->IsSessionReady());
 
   QuicStream* client_indication_stream =
-      QuicSessionPeer::zombie_streams(session_.get())[kClientIndicationStream]
+      QuicSessionPeer::zombie_streams(session_.get())[ClientIndicationStream()]
           .get();
   ASSERT_TRUE(client_indication_stream != nullptr);
   const std::string client_indication = DataInStream(client_indication_stream);
diff --git a/quic/quic_transport/quic_transport_protocol.h b/quic/quic_transport/quic_transport_protocol.h
new file mode 100644
index 0000000..bef5f8d
--- /dev/null
+++ b/quic/quic_transport/quic_transport_protocol.h
@@ -0,0 +1,31 @@
+// Copyright (c) 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef QUICHE_QUIC_QUIC_TRANSPORT_QUIC_TRANSPORT_PROTOCOL_H_
+#define QUICHE_QUIC_QUIC_TRANSPORT_QUIC_TRANSPORT_PROTOCOL_H_
+
+#include "net/third_party/quiche/src/quic/core/quic_types.h"
+#include "net/third_party/quiche/src/quic/platform/api/quic_export.h"
+#include "net/third_party/quiche/src/quic/platform/api/quic_string_piece.h"
+
+namespace quic {
+
+// The ALPN used by QuicTransport.
+QUIC_EXPORT inline const char* QuicTransportAlpn() {
+  return "wq-vvv-01";
+}
+
+// The stream ID on which the client indication is sent.
+QUIC_EXPORT constexpr QuicStreamId ClientIndicationStream() {
+  return 2;
+}
+
+// The keys of the fields in the client indication.
+enum class QuicTransportClientIndicationKeys : uint16_t {
+  kOrigin = 0x0000,
+};
+
+}  // namespace quic
+
+#endif  // QUICHE_QUIC_QUIC_TRANSPORT_QUIC_TRANSPORT_PROTOCOL_H_
