Replace QuicheStrCat() with absl::StrCat()

PiperOrigin-RevId: 345546830
Change-Id: Ia05b89070965c2fd3322f45ae8498f2d7d72de42
diff --git a/quic/core/crypto/certificate_view.cc b/quic/core/crypto/certificate_view.cc
index 6042b9e..e609b96 100644
--- a/quic/core/crypto/certificate_view.cc
+++ b/quic/core/crypto/certificate_view.cc
@@ -11,6 +11,7 @@
 
 #include "absl/strings/escaping.h"
 #include "absl/strings/match.h"
+#include "absl/strings/str_cat.h"
 #include "absl/strings/str_join.h"
 #include "absl/strings/string_view.h"
 #include "absl/types/optional.h"
@@ -29,7 +30,6 @@
 #include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_ip_address.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_text_utils.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_time_utils.h"
 #include "net/third_party/quiche/src/common/quiche_data_reader.h"
@@ -123,7 +123,7 @@
 
   bssl::UniquePtr<char> oid_representation(CBS_asn1_oid_to_text(&oid_cbs));
   if (oid_representation == nullptr) {
-    return quiche::QuicheStrCat("(", absl::BytesToHexString(oid), ")");
+    return absl::StrCat("(", absl::BytesToHexString(oid), ")");
   }
   return std::string(oid_representation.get());
 }
@@ -139,8 +139,8 @@
   }
   // Note that this does not process encoding of |input| in any way.  This works
   // fine for the most cases.
-  return quiche::QuicheStrCat(AttributeNameToString(name), "=",
-                              absl::CHexEscape(CbsToStringPiece(value)));
+  return absl::StrCat(AttributeNameToString(name), "=",
+                      absl::CHexEscape(CbsToStringPiece(value)));
 }
 
 namespace {
@@ -227,7 +227,7 @@
       result.type = std::string(
           line.substr(kPemBegin.size(),
                       line.size() - kPemDashes.size() - kPemBegin.size()));
-      expected_end = quiche::QuicheStrCat(kPemEnd, result.type, kPemDashes);
+      expected_end = absl::StrCat(kPemEnd, result.type, kPemDashes);
       pending_message = true;
       continue;
     }
diff --git a/quic/core/crypto/crypto_framer.cc b/quic/core/crypto/crypto_framer.cc
index 2a3f795..7f94089 100644
--- a/quic/core/crypto/crypto_framer.cc
+++ b/quic/core/crypto/crypto_framer.cc
@@ -8,13 +8,13 @@
 #include <utility>
 
 #include "absl/base/attributes.h"
+#include "absl/strings/str_cat.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_protocol.h"
 #include "net/third_party/quiche/src/quic/core/quic_data_reader.h"
 #include "net/third_party/quiche/src/quic/core/quic_data_writer.h"
 #include "net/third_party/quiche/src/quic/core/quic_packets.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
 #include "net/third_party/quiche/src/common/quiche_endian.h"
 
 namespace quic {
@@ -265,7 +265,7 @@
       }
       reader.ReadUInt16(&num_entries_);
       if (num_entries_ > kMaxEntries) {
-        error_detail_ = quiche::QuicheStrCat(num_entries_, " entries");
+        error_detail_ = absl::StrCat(num_entries_, " entries");
         return QUIC_CRYPTO_TOO_MANY_ENTRIES;
       }
       uint16_t padding;
@@ -287,10 +287,10 @@
         reader.ReadTag(&tag);
         if (i > 0 && tag <= tags_and_lengths_[i - 1].first) {
           if (tag == tags_and_lengths_[i - 1].first) {
-            error_detail_ = quiche::QuicheStrCat("Duplicate tag:", tag);
+            error_detail_ = absl::StrCat("Duplicate tag:", tag);
             return QUIC_CRYPTO_DUPLICATE_TAG;
           }
-          error_detail_ = quiche::QuicheStrCat("Tag ", tag, " out of order");
+          error_detail_ = absl::StrCat("Tag ", tag, " out of order");
           return QUIC_CRYPTO_TAGS_OUT_OF_ORDER;
         }
 
@@ -298,8 +298,8 @@
         reader.ReadUInt32(&end_offset);
 
         if (end_offset < last_end_offset) {
-          error_detail_ = quiche::QuicheStrCat("End offset: ", end_offset,
-                                               " vs ", last_end_offset);
+          error_detail_ =
+              absl::StrCat("End offset: ", end_offset, " vs ", last_end_offset);
           return QUIC_CRYPTO_TAGS_OUT_OF_ORDER;
         }
         tags_and_lengths_.push_back(std::make_pair(
diff --git a/quic/core/crypto/crypto_utils.cc b/quic/core/crypto/crypto_utils.cc
index 27c8ba8..5c0c851 100644
--- a/quic/core/crypto/crypto_utils.cc
+++ b/quic/core/crypto/crypto_utils.cc
@@ -9,6 +9,7 @@
 #include <utility>
 
 #include "absl/base/macros.h"
+#include "absl/strings/str_cat.h"
 #include "absl/strings/string_view.h"
 #include "third_party/boringssl/src/include/openssl/bytestring.h"
 #include "third_party/boringssl/src/include/openssl/hkdf.h"
@@ -34,7 +35,6 @@
 #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/common/platform/api/quiche_str_cat.h"
 #include "net/third_party/quiche/src/common/quiche_endian.h"
 
 namespace quic {
@@ -584,7 +584,7 @@
     // reports that there was a version negotiation during the handshake.
     // Ensure that these two lists are identical.
     if (mismatch) {
-      *error_details = quiche::QuicheStrCat(
+      *error_details = absl::StrCat(
           "Downgrade attack detected: ServerVersions(", server_versions.size(),
           ")[", QuicVersionLabelVectorToString(server_versions, ",", 30),
           "] NegotiatedVersions(", negotiated_versions.size(), ")[",
@@ -630,7 +630,7 @@
     // downgrade attack.
     for (size_t i = 0; i < supported_versions.size(); ++i) {
       if (client_version == CreateQuicVersionLabel(supported_versions[i])) {
-        *error_details = quiche::QuicheStrCat(
+        *error_details = absl::StrCat(
             "Downgrade attack detected: ClientVersion[",
             QuicVersionLabelToString(client_version), "] ConnectionVersion[",
             ParsedQuicVersionToString(connection_version),
diff --git a/quic/core/crypto/proof_source_x509.cc b/quic/core/crypto/proof_source_x509.cc
index 530f9d5..f228a0c 100644
--- a/quic/core/crypto/proof_source_x509.cc
+++ b/quic/core/crypto/proof_source_x509.cc
@@ -6,13 +6,13 @@
 
 #include <memory>
 
+#include "absl/strings/str_cat.h"
 #include "absl/strings/string_view.h"
 #include "third_party/boringssl/src/include/openssl/ssl.h"
 #include "net/third_party/quiche/src/quic/core/crypto/certificate_view.h"
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_protocol.h"
 #include "net/third_party/quiche/src/quic/core/quic_data_writer.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
 #include "net/third_party/quiche/src/common/quiche_endian.h"
 
 namespace quic {
@@ -123,7 +123,7 @@
   }
   auto dot_pos = hostname.find('.');
   if (dot_pos != std::string::npos) {
-    std::string wildcard = quiche::QuicheStrCat("*", hostname.substr(dot_pos));
+    std::string wildcard = absl::StrCat("*", hostname.substr(dot_pos));
     it = certificate_map_.find(wildcard);
     if (it != certificate_map_.end()) {
       return it->second;
diff --git a/quic/core/crypto/transport_parameters.cc b/quic/core/crypto/transport_parameters.cc
index c047e0f..a3a3d0e 100644
--- a/quic/core/crypto/transport_parameters.cc
+++ b/quic/core/crypto/transport_parameters.cc
@@ -11,6 +11,7 @@
 #include <utility>
 
 #include "absl/strings/escaping.h"
+#include "absl/strings/str_cat.h"
 #include "absl/strings/string_view.h"
 #include "third_party/boringssl/src/include/openssl/digest.h"
 #include "third_party/boringssl/src/include/openssl/sha.h"
@@ -21,7 +22,6 @@
 #include "net/third_party/quiche/src/quic/core/quic_utils.h"
 #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/common/platform/api/quiche_str_cat.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_text_utils.h"
 
 namespace quic {
@@ -336,8 +336,8 @@
   }
   if (!reader->IsDoneReading()) {
     *error_details =
-        quiche::QuicheStrCat("Received unexpected ", reader->BytesRemaining(),
-                             " bytes after parsing ", this->ToString(false));
+        absl::StrCat("Received unexpected ", reader->BytesRemaining(),
+                     " bytes after parsing ", this->ToString(false));
     return false;
   }
   return true;
@@ -489,8 +489,8 @@
       rv += absl::BytesToHexString(kv.second);
     } else {
       absl::string_view truncated(kv.second.data(), kMaxPrintableLength);
-      rv += quiche::QuicheStrCat(absl::BytesToHexString(truncated),
-                                 "...(length ", kv.second.length(), ")");
+      rv += absl::StrCat(absl::BytesToHexString(truncated), "...(length ",
+                         kv.second.length(), ")");
     }
   }
   rv += "]";
@@ -643,8 +643,8 @@
   }
   if (!stateless_reset_token.empty() &&
       stateless_reset_token.size() != kStatelessResetTokenLength) {
-    *error_details = quiche::QuicheStrCat(
-        "Stateless reset token has bad length ", stateless_reset_token.size());
+    *error_details = absl::StrCat("Stateless reset token has bad length ",
+                                  stateless_reset_token.size());
     return false;
   }
   if (perspective == Perspective::IS_CLIENT && preferred_address) {
@@ -653,9 +653,9 @@
   }
   if (preferred_address && preferred_address->stateless_reset_token.size() !=
                                kStatelessResetTokenLength) {
-    *error_details = quiche::QuicheStrCat(
-        "Preferred address stateless reset token has bad length ",
-        preferred_address->stateless_reset_token.size());
+    *error_details =
+        absl::StrCat("Preferred address stateless reset token has bad length ",
+                     preferred_address->stateless_reset_token.size());
     return false;
   }
   if (preferred_address &&
@@ -672,9 +672,9 @@
   }
   for (const auto& kv : custom_parameters) {
     if (TransportParameterIdIsKnown(kv.first)) {
-      *error_details = quiche::QuicheStrCat(
-          "Using custom_parameters with known ID ",
-          TransportParameterIdToString(kv.first), " is not allowed");
+      *error_details = absl::StrCat("Using custom_parameters with known ID ",
+                                    TransportParameterIdToString(kv.first),
+                                    " is not allowed");
       return false;
     }
   }
@@ -1127,8 +1127,8 @@
     }
     if (full_length != reader.BytesRemaining()) {
       *error_details =
-          quiche::QuicheStrCat("Invalid transport parameter full length ",
-                               full_length, " != ", reader.BytesRemaining());
+          absl::StrCat("Invalid transport parameter full length ", full_length,
+                       " != ", reader.BytesRemaining());
       return false;
     }
   }
@@ -1158,7 +1158,7 @@
         const size_t connection_id_length = value_reader.BytesRemaining();
         if (!QuicUtils::IsConnectionIdLengthValidForVersion(
                 connection_id_length, version.transport_version)) {
-          *error_details = quiche::QuicheStrCat(
+          *error_details = absl::StrCat(
               "Received original_destination_connection_id of invalid length ",
               connection_id_length);
           return false;
@@ -1184,9 +1184,9 @@
         absl::string_view stateless_reset_token =
             value_reader.ReadRemainingPayload();
         if (stateless_reset_token.length() != kStatelessResetTokenLength) {
-          *error_details = quiche::QuicheStrCat(
-              "Received stateless_reset_token of invalid length ",
-              stateless_reset_token.length());
+          *error_details =
+              absl::StrCat("Received stateless_reset_token of invalid length ",
+                           stateless_reset_token.length());
           return false;
         }
         out->stateless_reset_token.assign(
@@ -1285,7 +1285,7 @@
         const size_t connection_id_length = value_reader.BytesRemaining();
         if (!QuicUtils::IsConnectionIdLengthValidForVersion(
                 connection_id_length, version.transport_version)) {
-          *error_details = quiche::QuicheStrCat(
+          *error_details = absl::StrCat(
               "Received initial_source_connection_id of invalid length ",
               connection_id_length);
           return false;
@@ -1306,7 +1306,7 @@
         const size_t connection_id_length = value_reader.BytesRemaining();
         if (!QuicUtils::IsConnectionIdLengthValidForVersion(
                 connection_id_length, version.transport_version)) {
-          *error_details = quiche::QuicheStrCat(
+          *error_details = absl::StrCat(
               "Received retry_source_connection_id of invalid length ",
               connection_id_length);
           return false;
@@ -1405,7 +1405,7 @@
       return false;
     }
     if (!value_reader.IsDoneReading()) {
-      *error_details = quiche::QuicheStrCat(
+      *error_details = absl::StrCat(
           "Received unexpected ", value_reader.BytesRemaining(),
           " bytes after parsing ", TransportParameterIdToString(param_id));
       return false;
diff --git a/quic/tools/quic_client_interop_test_bin.cc b/quic/tools/quic_client_interop_test_bin.cc
index e16afe6..4ca2a50 100644
--- a/quic/tools/quic_client_interop_test_bin.cc
+++ b/quic/tools/quic_client_interop_test_bin.cc
@@ -7,6 +7,7 @@
 #include <string>
 #include <utility>
 
+#include "absl/strings/str_cat.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/core/quic_versions.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_epoll.h"
@@ -18,7 +19,6 @@
 #include "net/third_party/quiche/src/quic/tools/fake_proof_verifier.h"
 #include "net/third_party/quiche/src/quic/tools/quic_client.h"
 #include "net/third_party/quiche/src/quic/tools/quic_url.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
 
 DEFINE_QUIC_COMMAND_LINE_FLAG(std::string,
                               host,
@@ -382,14 +382,13 @@
   QuicEnableVersion(version);
 
   // Build the client, and try to connect.
-  QuicSocketAddress addr =
-      tools::LookupAddress(dns_host, quiche::QuicheStrCat(port));
+  QuicSocketAddress addr = tools::LookupAddress(dns_host, absl::StrCat(port));
   if (!addr.IsInitialized()) {
     QUIC_LOG(ERROR) << "Failed to resolve " << dns_host;
     return std::set<Feature>();
   }
   QuicServerId server_id(url_host, port, false);
-  std::string authority = quiche::QuicheStrCat(url_host, ":", port);
+  std::string authority = absl::StrCat(url_host, ":", port);
 
   QuicClientInteropRunner runner;
 
diff --git a/quic/tools/quic_client_test.cc b/quic/tools/quic_client_test.cc
index 034c4dd..454efa3 100644
--- a/quic/tools/quic_client_test.cc
+++ b/quic/tools/quic_client_test.cc
@@ -46,7 +46,7 @@
       continue;
     }
 
-    std::string fd_path = ReadLink(quiche::QuicheStrCat(kPathToFds, "/", name));
+    std::string fd_path = ReadLink(absl::StrCat(kPathToFds, "/", name));
     if (absl::StartsWith(fd_path, "socket:")) {
       socket_count++;
     }
diff --git a/quic/tools/quic_epoll_client_factory.cc b/quic/tools/quic_epoll_client_factory.cc
index b7dbb07..a7a2385 100644
--- a/quic/tools/quic_epoll_client_factory.cc
+++ b/quic/tools/quic_epoll_client_factory.cc
@@ -10,10 +10,10 @@
 
 #include <utility>
 
+#include "absl/strings/str_cat.h"
 #include "net/third_party/quiche/src/quic/core/quic_server_id.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_socket_address.h"
 #include "net/third_party/quiche/src/quic/tools/quic_client.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
 
 namespace quic {
 
@@ -26,7 +26,7 @@
     const QuicConfig& config,
     std::unique_ptr<ProofVerifier> verifier) {
   QuicSocketAddress addr = tools::LookupAddress(
-      address_family_for_lookup, host_for_lookup, quiche::QuicheStrCat(port));
+      address_family_for_lookup, host_for_lookup, absl::StrCat(port));
   if (!addr.IsInitialized()) {
     QUIC_LOG(ERROR) << "Unable to resolve address: " << host_for_lookup;
     return nullptr;
diff --git a/quic/tools/quic_memory_cache_backend_test.cc b/quic/tools/quic_memory_cache_backend_test.cc
index 5940baa..c3b93ab 100644
--- a/quic/tools/quic_memory_cache_backend_test.cc
+++ b/quic/tools/quic_memory_cache_backend_test.cc
@@ -5,11 +5,11 @@
 #include "net/third_party/quiche/src/quic/tools/quic_memory_cache_backend.h"
 
 #include "absl/strings/match.h"
+#include "absl/strings/str_cat.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_file_utils.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_map_util.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
 #include "net/third_party/quiche/src/quic/tools/quic_backend_response.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_text_utils.h"
 
 namespace quic {
@@ -189,7 +189,7 @@
     std::string url = scheme + "://" + request_host + path;
     QuicUrl resource_url(url);
     std::string body =
-        quiche::QuicheStrCat("This is server push response body for ", path);
+        absl::StrCat("This is server push response body for ", path);
     spdy::Http2HeaderBlock response_headers;
     response_headers[":status"] = "200";
     response_headers["content-length"] =
diff --git a/quic/tools/quic_url.cc b/quic/tools/quic_url.cc
index 9f9e98a..e9265f0 100644
--- a/quic/tools/quic_url.cc
+++ b/quic/tools/quic_url.cc
@@ -4,8 +4,8 @@
 
 #include "net/third_party/quiche/src/quic/tools/quic_url.h"
 
+#include "absl/strings/str_cat.h"
 #include "absl/strings/string_view.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
 
 namespace quic {
 
@@ -19,7 +19,7 @@
     return;
   }
 
-  url_ = GURL(quiche::QuicheStrCat(default_scheme, "://", url));
+  url_ = GURL(absl::StrCat(default_scheme, "://", url));
 }
 
 std::string QuicUrl::ToString() const {
@@ -51,7 +51,7 @@
   if (port == url::PORT_UNSPECIFIED) {
     return host;
   }
-  return quiche::QuicheStrCat(host, ":", port);
+  return absl::StrCat(host, ":", port);
 }
 
 std::string QuicUrl::PathParamsQuery() const {
diff --git a/spdy/core/fifo_write_scheduler.h b/spdy/core/fifo_write_scheduler.h
index 7b31891..026699f 100644
--- a/spdy/core/fifo_write_scheduler.h
+++ b/spdy/core/fifo_write_scheduler.h
@@ -9,7 +9,7 @@
 #include <set>
 #include <string>
 
-#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
+#include "absl/strings/str_cat.h"
 #include "net/third_party/quiche/src/spdy/core/write_scheduler.h"
 #include "net/third_party/quiche/src/spdy/platform/api/spdy_string_utils.h"
 
@@ -232,7 +232,7 @@
 
 template <typename StreamIdType>
 std::string FifoWriteScheduler<StreamIdType>::DebugString() const {
-  return quiche::QuicheStrCat(
+  return absl::StrCat(
       "FifoWriteScheduler {num_streams=", registered_streams_.size(),
       " num_ready_streams=", NumReadyStreams(), "}");
 }
diff --git a/spdy/core/http2_priority_write_scheduler.h b/spdy/core/http2_priority_write_scheduler.h
index a58e224..ae65474 100644
--- a/spdy/core/http2_priority_write_scheduler.h
+++ b/spdy/core/http2_priority_write_scheduler.h
@@ -17,7 +17,7 @@
 #include <utility>
 #include <vector>
 
-#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
+#include "absl/strings/str_cat.h"
 #include "net/third_party/quiche/src/spdy/core/spdy_intrusive_list.h"
 #include "net/third_party/quiche/src/spdy/core/spdy_protocol.h"
 #include "net/third_party/quiche/src/spdy/core/write_scheduler.h"
@@ -713,9 +713,9 @@
 
 template <typename StreamIdType>
 std::string Http2PriorityWriteScheduler<StreamIdType>::DebugString() const {
-  return quiche::QuicheStrCat(
-      "Http2PriorityWriteScheduler {num_registered_streams=",
-      NumRegisteredStreams(), " num_ready_streams=", NumReadyStreams(), "}");
+  return absl::StrCat("Http2PriorityWriteScheduler {num_registered_streams=",
+                      NumRegisteredStreams(),
+                      " num_ready_streams=", NumReadyStreams(), "}");
 }
 
 template <typename StreamIdType>
diff --git a/spdy/core/lifo_write_scheduler.h b/spdy/core/lifo_write_scheduler.h
index d2e7fcf..20f485b 100644
--- a/spdy/core/lifo_write_scheduler.h
+++ b/spdy/core/lifo_write_scheduler.h
@@ -10,7 +10,7 @@
 #include <set>
 #include <string>
 
-#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
+#include "absl/strings/str_cat.h"
 #include "net/third_party/quiche/src/spdy/core/write_scheduler.h"
 #include "net/third_party/quiche/src/spdy/platform/api/spdy_containers.h"
 
@@ -228,7 +228,7 @@
 
 template <typename StreamIdType>
 std::string LifoWriteScheduler<StreamIdType>::DebugString() const {
-  return quiche::QuicheStrCat(
+  return absl::StrCat(
       "LifoWriteScheduler {num_streams=", registered_streams_.size(),
       " num_ready_streams=", NumReadyStreams(), "}");
 }
diff --git a/spdy/core/priority_write_scheduler.h b/spdy/core/priority_write_scheduler.h
index 72e3d18..687f3da 100644
--- a/spdy/core/priority_write_scheduler.h
+++ b/spdy/core/priority_write_scheduler.h
@@ -14,8 +14,8 @@
 #include <utility>
 #include <vector>
 
+#include "absl/strings/str_cat.h"
 #include "net/third_party/quiche/src/http2/platform/api/http2_containers.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
 #include "net/third_party/quiche/src/spdy/core/spdy_protocol.h"
 #include "net/third_party/quiche/src/spdy/core/write_scheduler.h"
 #include "net/third_party/quiche/src/spdy/platform/api/spdy_bug_tracker.h"
@@ -261,7 +261,7 @@
   size_t NumRegisteredStreams() const override { return stream_infos_.size(); }
 
   std::string DebugString() const override {
-    return quiche::QuicheStrCat(
+    return absl::StrCat(
         "PriorityWriteScheduler {num_streams=", stream_infos_.size(),
         " num_ready_streams=", NumReadyStreams(), "}");
   }
diff --git a/spdy/core/spdy_alt_svc_wire_format.cc b/spdy/core/spdy_alt_svc_wire_format.cc
index ac85b9c..c0f8558 100644
--- a/spdy/core/spdy_alt_svc_wire_format.cc
+++ b/spdy/core/spdy_alt_svc_wire_format.cc
@@ -8,7 +8,7 @@
 #include <cctype>
 #include <limits>
 
-#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
+#include "absl/strings/str_cat.h"
 #include "net/third_party/quiche/src/spdy/platform/api/spdy_logging.h"
 #include "net/third_party/quiche/src/spdy/platform/api/spdy_string_utils.h"
 
@@ -265,9 +265,9 @@
       }
       value.push_back(c);
     }
-    value.append(quiche::QuicheStrCat(":", altsvc.port, "\""));
+    value.append(absl::StrCat(":", altsvc.port, "\""));
     if (altsvc.max_age != 86400) {
-      value.append(quiche::QuicheStrCat("; ma=", altsvc.max_age));
+      value.append(absl::StrCat("; ma=", altsvc.max_age));
     }
     if (!altsvc.version.empty()) {
       if (is_ietf_format_quic) {
@@ -282,7 +282,7 @@
           if (it != altsvc.version.begin()) {
             value.append(",");
           }
-          value.append(quiche::QuicheStrCat(*it));
+          value.append(absl::StrCat(*it));
         }
         value.append("\"");
       }
diff --git a/spdy/core/spdy_protocol.cc b/spdy/core/spdy_protocol.cc
index f9a1800..cb4b9b8 100644
--- a/spdy/core/spdy_protocol.cc
+++ b/spdy/core/spdy_protocol.cc
@@ -7,7 +7,7 @@
 #include <limits>
 #include <ostream>
 
-#include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
+#include "absl/strings/str_cat.h"
 #include "net/third_party/quiche/src/spdy/platform/api/spdy_bug_tracker.h"
 #include "net/third_party/quiche/src/spdy/platform/api/spdy_string_utils.h"
 
@@ -160,8 +160,8 @@
 std::string SettingsIdToString(SpdySettingsId id) {
   SpdyKnownSettingsId known_id;
   if (!ParseSettingsId(id, &known_id)) {
-    return quiche::QuicheStrCat("SETTINGS_UNKNOWN_",
-                                SpdyHexEncodeUInt32AndTrim(uint32_t{id}));
+    return absl::StrCat("SETTINGS_UNKNOWN_",
+                        SpdyHexEncodeUInt32AndTrim(uint32_t{id}));
   }
 
   switch (known_id) {
@@ -183,8 +183,8 @@
       return "SETTINGS_EXPERIMENT_SCHEDULER";
   }
 
-  return quiche::QuicheStrCat("SETTINGS_UNKNOWN_",
-                              SpdyHexEncodeUInt32AndTrim(uint32_t{id}));
+  return absl::StrCat("SETTINGS_UNKNOWN_",
+                      SpdyHexEncodeUInt32AndTrim(uint32_t{id}));
 }
 
 SpdyErrorCode ParseErrorCode(uint32_t wire_error_code) {