diff --git a/quic/quic_transport/quic_transport_client_session.cc b/quic/quic_transport/quic_transport_client_session.cc
index f316813..7bc0473 100644
--- a/quic/quic_transport/quic_transport_client_session.cc
+++ b/quic/quic_transport/quic_transport_client_session.cc
@@ -18,10 +18,9 @@
 #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_logging.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_string_piece.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_text_utils.h"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_protocol.h"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_stream.h"
+#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 
@@ -67,7 +66,8 @@
       proof_handler);
 }
 
-void QuicTransportClientSession::OnAlpnSelected(QuicStringPiece alpn) {
+void QuicTransportClientSession::OnAlpnSelected(
+    quiche::QuicheStringPiece alpn) {
   // Defense in-depth: ensure the ALPN selected is the desired one.
   if (alpn != QuicTransportAlpn()) {
     QUIC_BUG << "QuicTransport negotiated non-QuicTransport ALPN: " << alpn;
diff --git a/quic/quic_transport/quic_transport_client_session.h b/quic/quic_transport/quic_transport_client_session.h
index c09b076..d9c794d 100644
--- a/quic/quic_transport/quic_transport_client_session.h
+++ b/quic/quic_transport/quic_transport_client_session.h
@@ -21,10 +21,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_containers.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"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_session_interface.h"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_stream.h"
+#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 
@@ -60,7 +60,7 @@
   std::vector<std::string> GetAlpnsToOffer() const override {
     return std::vector<std::string>({QuicTransportAlpn()});
   }
-  void OnAlpnSelected(QuicStringPiece alpn) override;
+  void OnAlpnSelected(quiche::QuicheStringPiece alpn) override;
   bool alpn_received() const { return alpn_received_; }
 
   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 1225352..a1f9e28 100644
--- a/quic/quic_transport/quic_transport_client_session_test.cc
+++ b/quic/quic_transport/quic_transport_client_session_test.cc
@@ -14,7 +14,6 @@
 #include "net/third_party/quiche/src/quic/core/quic_utils.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_arraysize.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_expect_bug.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_str_cat.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
 #include "net/third_party/quiche/src/quic/test_tools/crypto_test_utils.h"
 #include "net/third_party/quiche/src/quic/test_tools/quic_session_peer.h"
diff --git a/quic/quic_transport/quic_transport_protocol.h b/quic/quic_transport/quic_transport_protocol.h
index f97b8e7..23f0d8d 100644
--- a/quic/quic_transport/quic_transport_protocol.h
+++ b/quic/quic_transport/quic_transport_protocol.h
@@ -7,7 +7,6 @@
 
 #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 {
 
diff --git a/quic/quic_transport/quic_transport_server_session.cc b/quic/quic_transport/quic_transport_server_session.cc
index a6d7c21..21ffa2b 100644
--- a/quic/quic_transport/quic_transport_server_session.cc
+++ b/quic/quic_transport/quic_transport_server_session.cc
@@ -13,10 +13,10 @@
 #include "net/third_party/quiche/src/quic/core/quic_error_codes.h"
 #include "net/third_party/quiche/src/quic/core/quic_stream.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_str_cat.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"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_stream.h"
+#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
+#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 
@@ -87,8 +87,8 @@
   if (buffer_.size() > ClientIndicationMaxSize()) {
     session_->connection()->CloseConnection(
         QUIC_TRANSPORT_INVALID_CLIENT_INDICATION,
-        QuicStrCat("Client indication size exceeds ", ClientIndicationMaxSize(),
-                   " bytes"),
+        quiche::QuicheStrCat("Client indication size exceeds ",
+                             ClientIndicationMaxSize(), " bytes"),
         ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
     return;
   }
@@ -108,9 +108,9 @@
       return false;
     }
 
-    QuicStringPiece value;
+    quiche::QuicheStringPiece value;
     if (!reader_.ReadStringPiece16(&value)) {
-      ParseError(QuicStrCat("Failed to read value for key ", key));
+      ParseError(quiche::QuicheStrCat("Failed to read value for key ", key));
       return false;
     }
 
@@ -159,7 +159,7 @@
 }
 
 bool QuicTransportServerSession::ClientIndicationParser::ProcessPath(
-    QuicStringPiece path) {
+    quiche::QuicheStringPiece path) {
   if (path.empty() || path[0] != '/') {
     // https://tools.ietf.org/html/draft-vvv-webtransport-quic-01#section-3.2.2
     Error("Path must begin with a '/'");
@@ -168,9 +168,9 @@
 
   // TODO(b/145674008): use the SNI value from the handshake instead of the IP
   // address.
-  std::string url_text =
-      QuicStrCat(url::kQuicTransportScheme, url::kStandardSchemeSeparator,
-                 session_->self_address().ToString(), path);
+  std::string url_text = quiche::QuicheStrCat(
+      url::kQuicTransportScheme, url::kStandardSchemeSeparator,
+      session_->self_address().ToString(), path);
   GURL url{url_text};
   if (!url.is_valid()) {
     Error("Invalid path specified");
@@ -192,13 +192,13 @@
 }
 
 void QuicTransportServerSession::ClientIndicationParser::ParseError(
-    QuicStringPiece error_message) {
-  Error(QuicStrCat("Failed to parse the client indication stream: ",
-                   error_message, reader_.DebugString()));
+    quiche::QuicheStringPiece error_message) {
+  Error(quiche::QuicheStrCat("Failed to parse the client indication stream: ",
+                             error_message, reader_.DebugString()));
 }
 
 void QuicTransportServerSession::ProcessClientIndication(
-    QuicStringPiece indication) {
+    quiche::QuicheStringPiece indication) {
   ClientIndicationParser parser(this, indication);
   if (!parser.Parse()) {
     return;
diff --git a/quic/quic_transport/quic_transport_server_session.h b/quic/quic_transport/quic_transport_server_session.h
index 8b0c063..4630e22 100644
--- a/quic/quic_transport/quic_transport_server_session.h
+++ b/quic/quic_transport/quic_transport_server_session.h
@@ -10,10 +10,10 @@
 #include "net/third_party/quiche/src/quic/core/quic_connection.h"
 #include "net/third_party/quiche/src/quic/core/quic_crypto_server_stream.h"
 #include "net/third_party/quiche/src/quic/core/quic_session.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"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_session_interface.h"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_stream.h"
+#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 
@@ -44,8 +44,8 @@
                              QuicCompressedCertsCache* compressed_certs_cache,
                              ServerVisitor* visitor);
 
-  std::vector<QuicStringPiece>::const_iterator SelectAlpn(
-      const std::vector<QuicStringPiece>& alpns) const override {
+  std::vector<quiche::QuicheStringPiece>::const_iterator SelectAlpn(
+      const std::vector<quiche::QuicheStringPiece>& alpns) const override {
     return std::find(alpns.cbegin(), alpns.cend(), QuicTransportAlpn());
   }
 
@@ -86,7 +86,7 @@
   class QUIC_EXPORT_PRIVATE ClientIndicationParser {
    public:
     ClientIndicationParser(QuicTransportServerSession* session,
-                           QuicStringPiece indication)
+                           quiche::QuicheStringPiece indication)
         : session_(session), reader_(indication) {}
 
     // Parses the specified indication.  Automatically closes the connection
@@ -96,10 +96,10 @@
 
    private:
     void Error(const std::string& error_message);
-    void ParseError(QuicStringPiece error_message);
+    void ParseError(quiche::QuicheStringPiece error_message);
 
     // Processes the path portion of the client indication.
-    bool ProcessPath(QuicStringPiece path);
+    bool ProcessPath(quiche::QuicheStringPiece path);
 
     QuicTransportServerSession* session_;
     QuicDataReader reader_;
@@ -107,7 +107,7 @@
 
   // Parses and processes the client indication as described in
   // https://vasilvv.github.io/webtransport/draft-vvv-webtransport-quic.html#rfc.section.3.2
-  void ProcessClientIndication(QuicStringPiece indication);
+  void ProcessClientIndication(quiche::QuicheStringPiece indication);
 
   virtual void OnIncomingDataStream(QuicTransportStream* /*stream*/) {}
 
diff --git a/quic/quic_transport/quic_transport_server_session_test.cc b/quic/quic_transport/quic_transport_server_session_test.cc
index f99997a..f74fb53 100644
--- a/quic/quic_transport/quic_transport_server_session_test.cc
+++ b/quic/quic_transport/quic_transport_server_session_test.cc
@@ -15,13 +15,13 @@
 #include "net/third_party/quiche/src/quic/core/frames/quic_stream_frame.h"
 #include "net/third_party/quiche/src/quic/core/quic_data_writer.h"
 #include "net/third_party/quiche/src/quic/core/quic_versions.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_string_piece.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_text_utils.h"
 #include "net/third_party/quiche/src/quic/quic_transport/quic_transport_protocol.h"
 #include "net/third_party/quiche/src/quic/test_tools/crypto_test_utils.h"
 #include "net/third_party/quiche/src/quic/test_tools/quic_test_utils.h"
 #include "net/third_party/quiche/src/quic/test_tools/quic_transport_test_tools.h"
+#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
+#include "net/third_party/quiche/src/common/platform/api/quiche_text_utils.h"
 
 namespace quic {
 namespace test {
@@ -91,9 +91,9 @@
         QuicServerId("test.example.com", 443), options, QuicTransportAlpn());
   }
 
-  void ReceiveIndication(QuicStringPiece indication) {
+  void ReceiveIndication(quiche::QuicheStringPiece indication) {
     QUIC_LOG(INFO) << "Receiving indication: "
-                   << QuicTextUtils::HexDump(indication);
+                   << quiche::QuicheTextUtils::HexDump(indication);
     constexpr size_t kChunkSize = 1024;
     // Shard the indication, since some of the tests cause it to not fit into a
     // single frame.
@@ -104,10 +104,10 @@
     }
     session_->OnStreamFrame(QuicStreamFrame(ClientIndicationStream(),
                                             /*fin=*/true, indication.size(),
-                                            QuicStringPiece()));
+                                            quiche::QuicheStringPiece()));
   }
 
-  void ReceiveIndicationWithPath(QuicStringPiece path) {
+  void ReceiveIndicationWithPath(quiche::QuicheStringPiece path) {
     constexpr char kTestOriginClientIndicationPrefix[] =
         "\0\0"                      // key (0x0000, origin)
         "\0\x18"                    // length
@@ -150,15 +150,16 @@
   Connect();
   size_t i = 0;
   for (; i < sizeof(kTestOriginClientIndication) - 2; i++) {
-    QuicStreamFrame frame(ClientIndicationStream(), false, i,
-                          QuicStringPiece(&kTestOriginClientIndication[i], 1));
+    QuicStreamFrame frame(
+        ClientIndicationStream(), false, i,
+        quiche::QuicheStringPiece(&kTestOriginClientIndication[i], 1));
     session_->OnStreamFrame(frame);
   }
 
   EXPECT_CALL(visitor_, CheckOrigin(_)).WillOnce(Return(true));
   QuicStreamFrame last_frame(
       ClientIndicationStream(), true, i,
-      QuicStringPiece(&kTestOriginClientIndication[i], 1));
+      quiche::QuicheStringPiece(&kTestOriginClientIndication[i], 1));
   session_->OnStreamFrame(last_frame);
   EXPECT_TRUE(session_->IsSessionReady());
 }
@@ -172,7 +173,7 @@
   EXPECT_FALSE(session_->IsSessionReady());
 }
 
-std::string MakeUnknownField(QuicStringPiece payload) {
+std::string MakeUnknownField(quiche::QuicheStringPiece payload) {
   std::string buffer;
   buffer.resize(payload.size() + 4);
   QuicDataWriter writer(buffer.size(), &buffer[0]);
diff --git a/quic/quic_transport/quic_transport_stream.cc b/quic/quic_transport/quic_transport_stream.cc
index 61f4345..ac54fa3 100644
--- a/quic/quic_transport/quic_transport_stream.cc
+++ b/quic/quic_transport/quic_transport_stream.cc
@@ -8,7 +8,7 @@
 
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/core/quic_utils.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_string_piece.h"
+#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 
@@ -49,7 +49,7 @@
   return bytes_read;
 }
 
-bool QuicTransportStream::Write(QuicStringPiece data) {
+bool QuicTransportStream::Write(quiche::QuicheStringPiece data) {
   if (!CanWrite()) {
     return false;
   }
@@ -64,7 +64,7 @@
     return false;
   }
 
-  WriteOrBufferData(QuicStringPiece(), /*fin=*/true, nullptr);
+  WriteOrBufferData(quiche::QuicheStringPiece(), /*fin=*/true, nullptr);
   return true;
 }
 
diff --git a/quic/quic_transport/quic_transport_stream.h b/quic/quic_transport/quic_transport_stream.h
index 1651a1c..d558cdb 100644
--- a/quic/quic_transport/quic_transport_stream.h
+++ b/quic/quic_transport/quic_transport_stream.h
@@ -12,8 +12,8 @@
 #include "net/third_party/quiche/src/quic/core/quic_stream.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_macros.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_session_interface.h"
+#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 
@@ -40,7 +40,7 @@
   // Reads all available data and appends it to the end of |output|.
   size_t Read(std::string* output);
   // Writes |data| into the stream.  Returns true on success.
-  QUIC_MUST_USE_RESULT bool Write(QuicStringPiece data);
+  QUIC_MUST_USE_RESULT bool Write(quiche::QuicheStringPiece data);
   // Sends the FIN on the stream.  Returns true on success.
   QUIC_MUST_USE_RESULT bool SendFin();
 
diff --git a/quic/quic_transport/quic_transport_stream_test.cc b/quic/quic_transport/quic_transport_stream_test.cc
index c291b54..eda6af6 100644
--- a/quic/quic_transport/quic_transport_stream_test.cc
+++ b/quic/quic_transport/quic_transport_stream_test.cc
@@ -14,6 +14,7 @@
 #include "net/third_party/quiche/src/quic/test_tools/quic_config_peer.h"
 #include "net/third_party/quiche/src/quic/test_tools/quic_test_utils.h"
 #include "net/third_party/quiche/src/quic/test_tools/quic_transport_test_tools.h"
+#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
 
 namespace quic {
 namespace test {
@@ -48,7 +49,8 @@
     stream_->set_visitor(std::move(visitor));
   }
 
-  void ReceiveStreamData(QuicStringPiece data, QuicStreamOffset offset) {
+  void ReceiveStreamData(quiche::QuicheStringPiece data,
+                         QuicStreamOffset offset) {
     QuicStreamFrame frame(0, false, offset, data);
     stream_->OnStreamFrame(frame);
   }
