Replace QuicheStringPiece with absl::string_view
PiperOrigin-RevId: 336334623
Change-Id: If24102f4c28ed976948e6d9b8b40538cadf00d4f
diff --git a/quic/quic_transport/quic_transport_client_session.cc b/quic/quic_transport/quic_transport_client_session.cc
index 4d5da07..f38d6b3 100644
--- a/quic/quic_transport/quic_transport_client_session.cc
+++ b/quic/quic_transport/quic_transport_client_session.cc
@@ -10,6 +10,7 @@
#include <string>
#include <utility>
+#include "absl/strings/string_view.h"
#include "url/gurl.h"
#include "net/third_party/quiche/src/quic/core/quic_constants.h"
#include "net/third_party/quiche/src/quic/core/quic_crypto_client_stream.h"
@@ -22,7 +23,6 @@
#include "net/third_party/quiche/src/quic/platform/api/quic_logging.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 {
@@ -53,8 +53,7 @@
/*proof_handler=*/this, /*has_application_state = */ true);
}
-void QuicTransportClientSession::OnAlpnSelected(
- quiche::QuicheStringPiece alpn) {
+void QuicTransportClientSession::OnAlpnSelected(absl::string_view alpn) {
// Defense in-depth: ensure the ALPN selected is the desired one.
if (alpn != QuicTransportAlpn()) {
QUIC_BUG << "QuicTransport negotiated non-QuicTransport ALPN: " << alpn;
@@ -237,8 +236,7 @@
visitor_->OnSessionReady();
}
-void QuicTransportClientSession::OnMessageReceived(
- quiche::QuicheStringPiece message) {
+void QuicTransportClientSession::OnMessageReceived(absl::string_view message) {
visitor_->OnDatagramReceived(message);
}
diff --git a/quic/quic_transport/quic_transport_client_session.h b/quic/quic_transport/quic_transport_client_session.h
index 6fe2619..c4f417f 100644
--- a/quic/quic_transport/quic_transport_client_session.h
+++ b/quic/quic_transport/quic_transport_client_session.h
@@ -8,6 +8,7 @@
#include <cstdint>
#include <memory>
+#include "absl/strings/string_view.h"
#include "url/gurl.h"
#include "url/origin.h"
#include "net/third_party/quiche/src/quic/core/crypto/quic_crypto_client_config.h"
@@ -24,7 +25,6 @@
#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 {
@@ -49,7 +49,7 @@
virtual void OnIncomingUnidirectionalStreamAvailable() = 0;
// Notifies the visitor when a new datagram has been received.
- virtual void OnDatagramReceived(quiche::QuicheStringPiece datagram) = 0;
+ virtual void OnDatagramReceived(absl::string_view datagram) = 0;
// Notifies the visitor that a new outgoing stream can now be created.
virtual void OnCanCreateNewOutgoingBidirectionalStream() = 0;
@@ -68,7 +68,7 @@
std::vector<std::string> GetAlpnsToOffer() const override {
return std::vector<std::string>({QuicTransportAlpn()});
}
- void OnAlpnSelected(quiche::QuicheStringPiece alpn) override;
+ void OnAlpnSelected(absl::string_view alpn) override;
bool alpn_received() const { return alpn_received_; }
void CryptoConnect() { crypto_stream_->CryptoConnect(); }
@@ -97,7 +97,7 @@
void SetDefaultEncryptionLevel(EncryptionLevel level) override;
void OnTlsHandshakeComplete() override;
- void OnMessageReceived(quiche::QuicheStringPiece message) override;
+ void OnMessageReceived(absl::string_view message) override;
// Return the earliest incoming stream that has been received by the session
// but has not been accepted. Returns nullptr if there are no incoming
diff --git a/quic/quic_transport/quic_transport_integration_test.cc b/quic/quic_transport/quic_transport_integration_test.cc
index 4a99724..1965c6d 100644
--- a/quic/quic_transport/quic_transport_integration_test.cc
+++ b/quic/quic_transport/quic_transport_integration_test.cc
@@ -8,6 +8,7 @@
#include <memory>
#include <vector>
+#include "absl/strings/string_view.h"
#include "url/gurl.h"
#include "url/origin.h"
#include "net/third_party/quiche/src/quic/core/crypto/quic_crypto_client_config.h"
@@ -31,7 +32,6 @@
#include "net/third_party/quiche/src/quic/test_tools/simulator/simulator.h"
#include "net/third_party/quiche/src/quic/test_tools/simulator/switch.h"
#include "net/third_party/quiche/src/quic/tools/quic_transport_simple_server_session.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
namespace quic {
namespace test {
@@ -377,7 +377,7 @@
size_t received = 0;
EXPECT_CALL(*client_->visitor(), OnDatagramReceived(_))
.WillRepeatedly(
- [&received](quiche::QuicheStringPiece /*datagram*/) { received++; });
+ [&received](absl::string_view /*datagram*/) { received++; });
ASSERT_TRUE(simulator_.RunUntilOrTimeout(
[this]() { return client_->session()->datagram_queue()->empty(); },
3 * kServerBandwidth.TransferTime(1000 * kMaxOutgoingPacketSize)));
diff --git a/quic/quic_transport/quic_transport_server_session.cc b/quic/quic_transport/quic_transport_server_session.cc
index c2de659..083e6fc 100644
--- a/quic/quic_transport/quic_transport_server_session.cc
+++ b/quic/quic_transport/quic_transport_server_session.cc
@@ -8,6 +8,7 @@
#include <memory>
#include <string>
+#include "absl/strings/string_view.h"
#include "url/gurl.h"
#include "url/url_constants.h"
#include "net/third_party/quiche/src/quic/core/quic_error_codes.h"
@@ -16,7 +17,6 @@
#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 {
@@ -109,7 +109,7 @@
return false;
}
- quiche::QuicheStringPiece value;
+ absl::string_view value;
if (!reader_.ReadStringPiece16(&value)) {
ParseError(quiche::QuicheStrCat("Failed to read value for key ", key));
return false;
@@ -160,7 +160,7 @@
}
bool QuicTransportServerSession::ClientIndicationParser::ProcessPath(
- quiche::QuicheStringPiece path) {
+ absl::string_view 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 '/'");
@@ -193,13 +193,13 @@
}
void QuicTransportServerSession::ClientIndicationParser::ParseError(
- quiche::QuicheStringPiece error_message) {
+ absl::string_view error_message) {
Error(quiche::QuicheStrCat("Failed to parse the client indication stream: ",
error_message, reader_.DebugString()));
}
void QuicTransportServerSession::ProcessClientIndication(
- quiche::QuicheStringPiece indication) {
+ absl::string_view 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 1b9dda0..4085998 100644
--- a/quic/quic_transport/quic_transport_server_session.h
+++ b/quic/quic_transport/quic_transport_server_session.h
@@ -5,6 +5,7 @@
#ifndef QUICHE_QUIC_QUIC_TRANSPORT_QUIC_TRANSPORT_SERVER_SESSION_H_
#define QUICHE_QUIC_QUIC_TRANSPORT_QUIC_TRANSPORT_SERVER_SESSION_H_
+#include "absl/strings/string_view.h"
#include "url/gurl.h"
#include "url/origin.h"
#include "net/third_party/quiche/src/quic/core/quic_connection.h"
@@ -13,7 +14,6 @@
#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<quiche::QuicheStringPiece>::const_iterator SelectAlpn(
- const std::vector<quiche::QuicheStringPiece>& alpns) const override {
+ std::vector<absl::string_view>::const_iterator SelectAlpn(
+ const std::vector<absl::string_view>& alpns) const override {
return std::find(alpns.cbegin(), alpns.cend(), QuicTransportAlpn());
}
@@ -86,7 +86,7 @@
class QUIC_EXPORT_PRIVATE ClientIndicationParser {
public:
ClientIndicationParser(QuicTransportServerSession* session,
- quiche::QuicheStringPiece indication)
+ absl::string_view 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(quiche::QuicheStringPiece error_message);
+ void ParseError(absl::string_view error_message);
// Processes the path portion of the client indication.
- bool ProcessPath(quiche::QuicheStringPiece path);
+ bool ProcessPath(absl::string_view 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(quiche::QuicheStringPiece indication);
+ void ProcessClientIndication(absl::string_view 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 8176b03..c4e40d5 100644
--- a/quic/quic_transport/quic_transport_server_session_test.cc
+++ b/quic/quic_transport/quic_transport_server_session_test.cc
@@ -8,6 +8,7 @@
#include <memory>
#include <string>
+#include "absl/strings/string_view.h"
#include "url/gurl.h"
#include "url/origin.h"
#include "net/third_party/quiche/src/quic/core/crypto/quic_compressed_certs_cache.h"
@@ -20,7 +21,6 @@
#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 {
@@ -88,7 +88,7 @@
QuicServerId("test.example.com", 443), options, QuicTransportAlpn());
}
- void ReceiveIndication(quiche::QuicheStringPiece indication) {
+ void ReceiveIndication(absl::string_view indication) {
QUIC_LOG(INFO) << "Receiving indication: "
<< quiche::QuicheTextUtils::HexDump(indication);
constexpr size_t kChunkSize = 1024;
@@ -101,10 +101,10 @@
}
session_->OnStreamFrame(QuicStreamFrame(ClientIndicationStream(),
/*fin=*/true, indication.size(),
- quiche::QuicheStringPiece()));
+ absl::string_view()));
}
- void ReceiveIndicationWithPath(quiche::QuicheStringPiece path) {
+ void ReceiveIndicationWithPath(absl::string_view path) {
constexpr char kTestOriginClientIndicationPrefix[] =
"\0\0" // key (0x0000, origin)
"\0\x18" // length
@@ -149,14 +149,14 @@
for (; i < sizeof(kTestOriginClientIndication) - 2; i++) {
QuicStreamFrame frame(
ClientIndicationStream(), false, i,
- quiche::QuicheStringPiece(&kTestOriginClientIndication[i], 1));
+ absl::string_view(&kTestOriginClientIndication[i], 1));
session_->OnStreamFrame(frame);
}
EXPECT_CALL(visitor_, CheckOrigin(_)).WillOnce(Return(true));
QuicStreamFrame last_frame(
ClientIndicationStream(), true, i,
- quiche::QuicheStringPiece(&kTestOriginClientIndication[i], 1));
+ absl::string_view(&kTestOriginClientIndication[i], 1));
session_->OnStreamFrame(last_frame);
EXPECT_TRUE(session_->IsSessionReady());
}
@@ -170,7 +170,7 @@
EXPECT_FALSE(session_->IsSessionReady());
}
-std::string MakeUnknownField(quiche::QuicheStringPiece payload) {
+std::string MakeUnknownField(absl::string_view 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 0fb988a..38614e1 100644
--- a/quic/quic_transport/quic_transport_stream.cc
+++ b/quic/quic_transport/quic_transport_stream.cc
@@ -6,11 +6,11 @@
#include <sys/types.h>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/quic/core/quic_buffer_allocator.h"
#include "net/third_party/quiche/src/quic/core/quic_error_codes.h"
#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/common/platform/api/quiche_string_piece.h"
namespace quic {
@@ -52,7 +52,7 @@
return bytes_read;
}
-bool QuicTransportStream::Write(quiche::QuicheStringPiece data) {
+bool QuicTransportStream::Write(absl::string_view data) {
if (!CanWrite()) {
return false;
}
diff --git a/quic/quic_transport/quic_transport_stream.h b/quic/quic_transport/quic_transport_stream.h
index f2bac88..0b98ac5 100644
--- a/quic/quic_transport/quic_transport_stream.h
+++ b/quic/quic_transport/quic_transport_stream.h
@@ -8,12 +8,12 @@
#include <cstddef>
#include <memory>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/quic/core/quic_session.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_macros.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(quiche::QuicheStringPiece data);
+ QUIC_MUST_USE_RESULT bool Write(absl::string_view 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 0f0d770..e6c244b 100644
--- a/quic/quic_transport/quic_transport_stream_test.cc
+++ b/quic/quic_transport/quic_transport_stream_test.cc
@@ -6,6 +6,7 @@
#include <memory>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/quic/core/frames/quic_window_update_frame.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_expect_bug.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
@@ -14,7 +15,6 @@
#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 {
@@ -51,8 +51,7 @@
stream_->set_visitor(std::move(visitor));
}
- void ReceiveStreamData(quiche::QuicheStringPiece data,
- QuicStreamOffset offset) {
+ void ReceiveStreamData(absl::string_view data, QuicStreamOffset offset) {
QuicStreamFrame frame(0, false, offset, data);
stream_->OnStreamFrame(frame);
}
diff --git a/quic/quic_transport/web_transport_fingerprint_proof_verifier.cc b/quic/quic_transport/web_transport_fingerprint_proof_verifier.cc
index 81466de..2ea1e44 100644
--- a/quic/quic_transport/web_transport_fingerprint_proof_verifier.cc
+++ b/quic/quic_transport/web_transport_fingerprint_proof_verifier.cc
@@ -7,13 +7,13 @@
#include <cstdint>
#include <memory>
+#include "absl/strings/string_view.h"
#include "third_party/boringssl/src/include/openssl/sha.h"
#include "net/third_party/quiche/src/quic/core/crypto/certificate_view.h"
#include "net/third_party/quiche/src/quic/core/quic_time.h"
#include "net/third_party/quiche/src/quic/core/quic_types.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_string_piece.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_text_utils.h"
namespace quic {
@@ -39,7 +39,7 @@
constexpr char CertificateFingerprint::kSha256[];
-std::string ComputeSha256Fingerprint(quiche::QuicheStringPiece input) {
+std::string ComputeSha256Fingerprint(absl::string_view input) {
std::vector<uint8_t> raw_hash;
raw_hash.resize(SHA256_DIGEST_LENGTH);
SHA256(reinterpret_cast<const uint8_t*>(input.data()), input.size(),
@@ -114,7 +114,7 @@
const uint16_t /*port*/,
const std::string& /*server_config*/,
QuicTransportVersion /*transport_version*/,
- quiche::QuicheStringPiece /*chlo_hash*/,
+ absl::string_view /*chlo_hash*/,
const std::vector<std::string>& /*certs*/,
const std::string& /*cert_sct*/,
const std::string& /*signature*/,
@@ -185,7 +185,7 @@
}
bool WebTransportFingerprintProofVerifier::HasKnownFingerprint(
- quiche::QuicheStringPiece der_certificate) {
+ absl::string_view der_certificate) {
// https://wicg.github.io/web-transport/#verify-a-certificate-fingerprint
const std::string fingerprint = ComputeSha256Fingerprint(der_certificate);
for (const CertificateFingerprint& reference : fingerprints_) {
diff --git a/quic/quic_transport/web_transport_fingerprint_proof_verifier.h b/quic/quic_transport/web_transport_fingerprint_proof_verifier.h
index 7e4358d..fba1f83 100644
--- a/quic/quic_transport/web_transport_fingerprint_proof_verifier.h
+++ b/quic/quic_transport/web_transport_fingerprint_proof_verifier.h
@@ -7,10 +7,10 @@
#include <vector>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/quic/core/crypto/certificate_view.h"
#include "net/third_party/quiche/src/quic/core/crypto/proof_verifier.h"
#include "net/third_party/quiche/src/quic/core/quic_clock.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
namespace quic {
@@ -30,7 +30,7 @@
// Computes a SHA-256 fingerprint of the specified input formatted in the same
// format as CertificateFingerprint::fingerprint would contain.
QUIC_EXPORT_PRIVATE std::string ComputeSha256Fingerprint(
- quiche::QuicheStringPiece input);
+ absl::string_view input);
// WebTransportFingerprintProofVerifier verifies the server leaf certificate
// against a supplied list of certificate fingerprints following the procedure
@@ -83,7 +83,7 @@
const uint16_t port,
const std::string& server_config,
QuicTransportVersion transport_version,
- quiche::QuicheStringPiece chlo_hash,
+ absl::string_view chlo_hash,
const std::vector<std::string>& certs,
const std::string& cert_sct,
const std::string& signature,
@@ -104,7 +104,7 @@
std::unique_ptr<ProofVerifyContext> CreateDefaultContext() override;
private:
- bool HasKnownFingerprint(quiche::QuicheStringPiece der_certificate);
+ bool HasKnownFingerprint(absl::string_view der_certificate);
bool HasValidExpiry(const CertificateView& certificate);
bool IsWithinValidityPeriod(const CertificateView& certificate);
diff --git a/quic/quic_transport/web_transport_fingerprint_proof_verifier_test.cc b/quic/quic_transport/web_transport_fingerprint_proof_verifier_test.cc
index f9f27e5..b527ae6 100644
--- a/quic/quic_transport/web_transport_fingerprint_proof_verifier_test.cc
+++ b/quic/quic_transport/web_transport_fingerprint_proof_verifier_test.cc
@@ -6,11 +6,11 @@
#include <memory>
+#include "absl/strings/string_view.h"
#include "net/third_party/quiche/src/quic/core/quic_types.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
#include "net/third_party/quiche/src/quic/test_tools/mock_clock.h"
#include "net/third_party/quiche/src/quic/test_tools/test_certificates.h"
-#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
namespace quic {
namespace test {
@@ -37,7 +37,7 @@
}
protected:
- VerifyResult Verify(quiche::QuicheStringPiece certificate) {
+ VerifyResult Verify(absl::string_view certificate) {
VerifyResult result;
std::unique_ptr<ProofVerifyDetails> details;
result.status = verifier_->VerifyCertChain(
@@ -136,7 +136,7 @@
}
TEST_F(WebTransportFingerprintProofVerifierTest, InvalidCertificate) {
- constexpr quiche::QuicheStringPiece kInvalidCertificate = "Hello, world!";
+ constexpr absl::string_view kInvalidCertificate = "Hello, world!";
ASSERT_TRUE(verifier_->AddFingerprint(
{CertificateFingerprint::kSha256,
ComputeSha256Fingerprint(kInvalidCertificate)}));