Migrates all users of spdy::Http2HeaderBlock to quiche::HttpHeaderBlock.
The former is merely an alias for the latter, so this is not a functional change.
Tested:
TAP for global presubmit queue
http://test/OCL:651173231:BASE:652852841:1721143369682:3ddd168b
Protected by refactoring, no functional change, not protected.
PiperOrigin-RevId: 652877129
diff --git a/quiche/http2/core/http2_header_block_hpack_listener.h b/quiche/http2/core/http2_header_block_hpack_listener.h
index 14bc579..07cdba4 100644
--- a/quiche/http2/core/http2_header_block_hpack_listener.h
+++ b/quiche/http2/core/http2_header_block_hpack_listener.h
@@ -6,14 +6,14 @@
#include "absl/strings/string_view.h"
#include "quiche/http2/hpack/decoder/hpack_decoder_listener.h"
+#include "quiche/common/http/http_header_block.h"
#include "quiche/common/platform/api/quiche_export.h"
#include "quiche/common/platform/api/quiche_logging.h"
-#include "quiche/spdy/core/http2_header_block.h"
namespace spdy {
// This class simply gathers the key-value pairs emitted by an HpackDecoder in
-// a Http2HeaderBlock.
+// a quiche::HttpHeaderBlock.
class QUICHE_EXPORT Http2HeaderBlockHpackListener
: public http2::HpackDecoderListener {
public:
@@ -35,15 +35,15 @@
hpack_error_ = true;
}
- Http2HeaderBlock release_header_block() {
- Http2HeaderBlock block = std::move(header_block_);
+ quiche::HttpHeaderBlock release_header_block() {
+ quiche::HttpHeaderBlock block = std::move(header_block_);
header_block_ = {};
return block;
}
bool hpack_error() const { return hpack_error_; }
private:
- Http2HeaderBlock header_block_;
+ quiche::HttpHeaderBlock header_block_;
bool hpack_error_ = false;
};
diff --git a/quiche/http2/core/http2_trace_logging.cc b/quiche/http2/core/http2_trace_logging.cc
index 7ae1fa1..4a08864 100644
--- a/quiche/http2/core/http2_trace_logging.cc
+++ b/quiche/http2/core/http2_trace_logging.cc
@@ -9,10 +9,10 @@
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "quiche/http2/core/spdy_protocol.h"
+#include "quiche/common/http/http_header_block.h"
#include "quiche/common/platform/api/quiche_bug_tracker.h"
#include "quiche/common/platform/api/quiche_logging.h"
#include "quiche/common/quiche_callbacks.h"
-#include "quiche/spdy/core/http2_header_block.h"
// Convenience macros for printing function arguments in log lines in the
// format arg_name=value.
@@ -64,7 +64,7 @@
namespace http2 {
-using spdy::Http2HeaderBlock;
+using quiche::HttpHeaderBlock;
using spdy::SettingsMap;
using spdy::SpdyAltSvcIR;
using spdy::SpdyContinuationIR;
@@ -82,10 +82,10 @@
namespace {
-// Defines how elements of Http2HeaderBlocks are logged.
+// Defines how elements of HttpHeaderBlocks are logged.
struct LogHeaderBlockEntry {
void Log(std::ostream& out,
- const Http2HeaderBlock::value_type& entry) const { // NOLINT
+ const HttpHeaderBlock::value_type& entry) const { // NOLINT
out << "\"" << entry.first << "\": \"" << entry.second << "\"";
}
};
diff --git a/quiche/http2/core/recording_headers_handler.h b/quiche/http2/core/recording_headers_handler.h
index fe3655d..46f0544 100644
--- a/quiche/http2/core/recording_headers_handler.h
+++ b/quiche/http2/core/recording_headers_handler.h
@@ -9,8 +9,8 @@
#include "absl/strings/string_view.h"
#include "quiche/http2/core/spdy_headers_handler_interface.h"
+#include "quiche/common/http/http_header_block.h"
#include "quiche/common/platform/api/quiche_export.h"
-#include "quiche/spdy/core/http2_header_block.h"
namespace spdy {
@@ -31,7 +31,7 @@
void OnHeaderBlockEnd(size_t uncompressed_header_bytes,
size_t compressed_header_bytes) override;
- const Http2HeaderBlock& decoded_block() const { return block_; }
+ const quiche::HttpHeaderBlock& decoded_block() const { return block_; }
size_t uncompressed_header_bytes() const {
return uncompressed_header_bytes_;
}
@@ -39,7 +39,7 @@
private:
SpdyHeadersHandlerInterface* wrapped_ = nullptr;
- Http2HeaderBlock block_;
+ quiche::HttpHeaderBlock block_;
size_t uncompressed_header_bytes_ = 0;
size_t compressed_header_bytes_ = 0;
};
diff --git a/quiche/http2/hpack/hpack_encoder.cc b/quiche/http2/hpack/hpack_encoder.cc
index 625ee70..4d19277 100644
--- a/quiche/http2/hpack/hpack_encoder.cc
+++ b/quiche/http2/hpack/hpack_encoder.cc
@@ -18,9 +18,9 @@
#include "quiche/http2/hpack/hpack_header_table.h"
#include "quiche/http2/hpack/hpack_output_stream.h"
#include "quiche/http2/hpack/huffman/hpack_huffman_encoder.h"
+#include "quiche/common/http/http_header_block.h"
#include "quiche/common/platform/api/quiche_bug_tracker.h"
#include "quiche/common/platform/api/quiche_logging.h"
-#include "quiche/spdy/core/http2_header_block.h"
namespace spdy {
@@ -93,7 +93,7 @@
HpackEncoder::~HpackEncoder() = default;
std::string HpackEncoder::EncodeHeaderBlock(
- const Http2HeaderBlock& header_set) {
+ const quiche::HttpHeaderBlock& header_set) {
// Separate header set into pseudo-headers and regular headers.
Representations pseudo_headers;
Representations regular_headers;
@@ -274,10 +274,10 @@
}
}
-// Iteratively encodes a Http2HeaderBlock.
+// Iteratively encodes a quiche::HttpHeaderBlock.
class HpackEncoder::Encoderator : public ProgressiveEncoder {
public:
- Encoderator(const Http2HeaderBlock& header_set, HpackEncoder* encoder);
+ Encoderator(const quiche::HttpHeaderBlock& header_set, HpackEncoder* encoder);
Encoderator(const Representations& representations, HpackEncoder* encoder);
// Encoderator is neither copyable nor movable.
@@ -298,8 +298,8 @@
bool has_next_;
};
-HpackEncoder::Encoderator::Encoderator(const Http2HeaderBlock& header_set,
- HpackEncoder* encoder)
+HpackEncoder::Encoderator::Encoderator(
+ const quiche::HttpHeaderBlock& header_set, HpackEncoder* encoder)
: encoder_(encoder), has_next_(true) {
// Separate header set into pseudo-headers and regular headers.
bool found_cookie = false;
@@ -379,7 +379,7 @@
}
std::unique_ptr<HpackEncoder::ProgressiveEncoder> HpackEncoder::EncodeHeaderSet(
- const Http2HeaderBlock& header_set) {
+ const quiche::HttpHeaderBlock& header_set) {
return std::make_unique<Encoderator>(header_set, this);
}
diff --git a/quiche/http2/hpack/hpack_encoder.h b/quiche/http2/hpack/hpack_encoder.h
index 3130ca5..efbd262 100644
--- a/quiche/http2/hpack/hpack_encoder.h
+++ b/quiche/http2/hpack/hpack_encoder.h
@@ -15,9 +15,9 @@
#include "absl/strings/string_view.h"
#include "quiche/http2/hpack/hpack_header_table.h"
#include "quiche/http2/hpack/hpack_output_stream.h"
+#include "quiche/common/http/http_header_block.h"
#include "quiche/common/platform/api/quiche_export.h"
#include "quiche/common/quiche_callbacks.h"
-#include "quiche/spdy/core/http2_header_block.h"
// An HpackEncoder encodes header sets as outlined in
// http://tools.ietf.org/html/rfc7541.
@@ -49,7 +49,7 @@
~HpackEncoder();
// Encodes and returns the given header set as a string.
- std::string EncodeHeaderBlock(const Http2HeaderBlock& header_set);
+ std::string EncodeHeaderBlock(const quiche::HttpHeaderBlock& header_set);
class QUICHE_EXPORT ProgressiveEncoder {
public:
@@ -63,9 +63,9 @@
};
// Returns a ProgressiveEncoder which must be outlived by both the given
- // Http2HeaderBlock and this object.
+ // quiche::HttpHeaderBlock and this object.
std::unique_ptr<ProgressiveEncoder> EncodeHeaderSet(
- const Http2HeaderBlock& header_set);
+ const quiche::HttpHeaderBlock& header_set);
// Returns a ProgressiveEncoder which must be outlived by this HpackEncoder.
// The encoder will not attempt to split any \0-delimited values in
// |representations|. If such splitting is desired, it must be performed by
diff --git a/quiche/http2/hpack/hpack_encoder_test.cc b/quiche/http2/hpack/hpack_encoder_test.cc
index 48373e9..5a80991 100644
--- a/quiche/http2/hpack/hpack_encoder_test.cc
+++ b/quiche/http2/hpack/hpack_encoder_test.cc
@@ -19,10 +19,10 @@
#include "quiche/http2/hpack/hpack_static_table.h"
#include "quiche/http2/hpack/huffman/hpack_huffman_encoder.h"
#include "quiche/http2/test_tools/http2_random.h"
+#include "quiche/common/http/http_header_block.h"
#include "quiche/common/platform/api/quiche_logging.h"
#include "quiche/common/platform/api/quiche_test.h"
#include "quiche/common/quiche_simple_arena.h"
-#include "quiche/spdy/core/http2_header_block.h"
namespace spdy {
@@ -82,13 +82,13 @@
// TODO(dahollings): Remove or clean up these methods when deprecating
// non-incremental encoding path.
- static std::string EncodeHeaderBlock(HpackEncoder* encoder,
- const Http2HeaderBlock& header_set) {
+ static std::string EncodeHeaderBlock(
+ HpackEncoder* encoder, const quiche::HttpHeaderBlock& header_set) {
return encoder->EncodeHeaderBlock(header_set);
}
static bool EncodeIncremental(HpackEncoder* encoder,
- const Http2HeaderBlock& header_set,
+ const quiche::HttpHeaderBlock& header_set,
std::string* output) {
std::unique_ptr<HpackEncoder::ProgressiveEncoder> encoderator =
encoder->EncodeHeaderSet(header_set);
@@ -220,14 +220,15 @@
expected_.AppendPrefix(kHeaderTableSizeUpdateOpcode);
expected_.AppendUint32(size);
}
- Representations MakeRepresentations(const Http2HeaderBlock& header_set) {
+ Representations MakeRepresentations(
+ const quiche::HttpHeaderBlock& header_set) {
Representations r;
for (const auto& header : header_set) {
r.push_back(header);
}
return r;
}
- void CompareWithExpectedEncoding(const Http2HeaderBlock& header_set) {
+ void CompareWithExpectedEncoding(const quiche::HttpHeaderBlock& header_set) {
std::string actual_out;
std::string expected_out = expected_.TakeString();
switch (strategy_) {
@@ -392,7 +393,7 @@
ExpectIndex(DynamicIndexToWireIndex(key_2_index_));
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers[key_2_->name()] = key_2_->value();
CompareWithExpectedEncoding(headers);
EXPECT_THAT(headers_observed_,
@@ -402,7 +403,7 @@
TEST_P(HpackEncoderTest, SingleStaticIndex) {
ExpectIndex(kStaticEntryIndex);
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers[static_->name()] = static_->value();
CompareWithExpectedEncoding(headers);
}
@@ -411,7 +412,7 @@
peer_.table()->SetMaxSize(1); // Also evicts all fixtures.
ExpectIndex(kStaticEntryIndex);
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers[static_->name()] = static_->value();
CompareWithExpectedEncoding(headers);
@@ -421,7 +422,7 @@
TEST_P(HpackEncoderTest, SingleLiteralWithIndexName) {
ExpectIndexedLiteral(DynamicIndexToWireIndex(key_2_index_), "value3");
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers[key_2_->name()] = "value3";
CompareWithExpectedEncoding(headers);
@@ -434,7 +435,7 @@
TEST_P(HpackEncoderTest, SingleLiteralWithLiteralName) {
ExpectIndexedLiteral("key3", "value3");
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers["key3"] = "value3";
CompareWithExpectedEncoding(headers);
@@ -450,7 +451,7 @@
// A header overflowing the header table is still emitted.
// The header table is empty.
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers["key3"] = "value3";
CompareWithExpectedEncoding(headers);
@@ -463,7 +464,7 @@
ExpectIndex(DynamicIndexToWireIndex(key_1_index_));
ExpectIndexedLiteral("key3", "value3");
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers[key_1_->name()] = key_1_->value();
headers["key3"] = "value3";
CompareWithExpectedEncoding(headers);
@@ -474,7 +475,7 @@
ExpectIndex(DynamicIndexToWireIndex(cookie_c_index_));
ExpectIndexedLiteral(peer_.table()->GetByName("cookie"), "e=ff");
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers["cookie"] = "a=bb; c=dd; e=ff";
CompareWithExpectedEncoding(headers);
}
@@ -483,14 +484,14 @@
encoder_.DisableCookieCrumbling();
ExpectIndexedLiteral(peer_.table()->GetByName("cookie"), "a=bb; c=dd; e=ff");
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers["cookie"] = "a=bb; c=dd; e=ff";
CompareWithExpectedEncoding(headers);
}
TEST_P(HpackEncoderTest, MultiValuedHeadersNotCrumbled) {
ExpectIndexedLiteral("foo", "bar, baz");
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers["foo"] = "bar, baz";
CompareWithExpectedEncoding(headers);
}
@@ -532,7 +533,7 @@
}
ExpectNonIndexedLiteral("multivalue", "value1, value2");
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers[":path"] = "/index.html";
headers["cookie"] = "foo=bar; baz=bing";
headers["hello"] = "goodbye";
@@ -567,7 +568,7 @@
// Pass 1.
{
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers["key1"] = "value1";
headers["cookie"] = "a=bb";
@@ -582,7 +583,7 @@
// 62: cookie: c=dd
// Pass 2.
{
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers["key2"] = "value2";
headers["cookie"] = "c=dd; e=ff";
@@ -603,7 +604,7 @@
// 62: cookie: e=ff
// Pass 3.
{
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers["key2"] = "value2";
headers["cookie"] = "a=bb; b=cc; c=dd";
@@ -637,7 +638,7 @@
}
TEST_P(HpackEncoderTest, PseudoHeadersFirst) {
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
// A pseudo-header that should not be indexed.
headers[":path"] = "/spam/eggs.html";
// A pseudo-header to be indexed.
@@ -725,7 +726,7 @@
// caller must crumble null-delimited values.
return;
}
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
// A header field to be crumbled: "spam: foo\0bar".
headers["spam"] = std::string("foo\0bar", 7);
@@ -743,7 +744,7 @@
ExpectHeaderTableSizeUpdate(1024);
ExpectIndexedLiteral("key3", "value3");
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers["key3"] = "value3";
CompareWithExpectedEncoding(headers);
@@ -762,7 +763,7 @@
ExpectHeaderTableSizeUpdate(starting_size - 1);
ExpectIndexedLiteral("key3", "value3");
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers["key3"] = "value3";
CompareWithExpectedEncoding(headers);
@@ -776,7 +777,7 @@
// No encoded size update.
ExpectIndexedLiteral("key3", "value3");
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers["key3"] = "value3";
CompareWithExpectedEncoding(headers);
@@ -793,7 +794,7 @@
ExpectHeaderTableSizeUpdate(starting_size + 2);
ExpectIndexedLiteral("key3", "value3");
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers["key3"] = "value3";
CompareWithExpectedEncoding(headers);
diff --git a/quiche/http2/test_tools/spdy_test_utils.h b/quiche/http2/test_tools/spdy_test_utils.h
index e59924f..ff49121 100644
--- a/quiche/http2/test_tools/spdy_test_utils.h
+++ b/quiche/http2/test_tools/spdy_test_utils.h
@@ -11,7 +11,7 @@
#include "absl/strings/string_view.h"
#include "quiche/http2/core/spdy_protocol.h"
-#include "quiche/spdy/core/http2_header_block.h"
+#include "quiche/common/http/http_header_block.h"
// TODO(b/318698478): update the namespace and file name
namespace spdy {
diff --git a/quiche/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc b/quiche/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc
index a2ca2d0..d3a616a 100644
--- a/quiche/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc
+++ b/quiche/quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc
@@ -25,8 +25,8 @@
#include "quiche/quic/core/quic_error_codes.h"
#include "quiche/quic/test_tools/qpack/qpack_decoder_test_utils.h"
#include "quiche/quic/test_tools/qpack/qpack_encoder_peer.h"
+#include "quiche/common/http/http_header_block.h"
#include "quiche/common/quiche_circular_deque.h"
-#include "quiche/spdy/core/http2_header_block.h"
namespace quic {
namespace test {
@@ -75,7 +75,7 @@
}
std::string EncodeHeaderList(QuicStreamId stream_id,
- const spdy::Http2HeaderBlock& header_list) {
+ const quiche::HttpHeaderBlock& header_list) {
return encoder_.EncodeHeaderList(stream_id, header_list, nullptr);
}
@@ -471,8 +471,8 @@
};
// Generate header list using fuzzer data.
-spdy::Http2HeaderBlock GenerateHeaderList(FuzzedDataProvider* provider) {
- spdy::Http2HeaderBlock header_list;
+quiche::HttpHeaderBlock GenerateHeaderList(FuzzedDataProvider* provider) {
+ quiche::HttpHeaderBlock header_list;
uint8_t header_count = provider->ConsumeIntegral<uint8_t>();
for (uint8_t header_index = 0; header_index < header_count; ++header_index) {
if (provider->remaining_bytes() == 0) {
@@ -572,7 +572,7 @@
}
// Splits |*header_list| header values along '\0' or ';' separators.
-QuicHeaderList SplitHeaderList(const spdy::Http2HeaderBlock& header_list) {
+QuicHeaderList SplitHeaderList(const quiche::HttpHeaderBlock& header_list) {
QuicHeaderList split_header_list;
split_header_list.OnHeaderBlockStart();
@@ -637,7 +637,7 @@
const QuicStreamId stream_id = provider.ConsumeIntegral<uint8_t>();
// Generate header list.
- spdy::Http2HeaderBlock header_list = GenerateHeaderList(&provider);
+ quiche::HttpHeaderBlock header_list = GenerateHeaderList(&provider);
// Encode header list.
std::string encoded_header_block =
diff --git a/quiche/quic/test_tools/qpack/qpack_decoder_test_utils.cc b/quiche/quic/test_tools/qpack/qpack_decoder_test_utils.cc
index ad8d4eb..ac6dea9 100644
--- a/quiche/quic/test_tools/qpack/qpack_decoder_test_utils.cc
+++ b/quiche/quic/test_tools/qpack/qpack_decoder_test_utils.cc
@@ -42,7 +42,7 @@
error_message_.assign(error_message.data(), error_message.size());
}
-spdy::Http2HeaderBlock TestHeadersHandler::ReleaseHeaderList() {
+quiche::HttpHeaderBlock TestHeadersHandler::ReleaseHeaderList() {
QUICHE_DCHECK(decoding_completed_);
QUICHE_DCHECK(!decoding_error_detected_);
diff --git a/quiche/quic/test_tools/qpack/qpack_decoder_test_utils.h b/quiche/quic/test_tools/qpack/qpack_decoder_test_utils.h
index f746550..a0101f5 100644
--- a/quiche/quic/test_tools/qpack/qpack_decoder_test_utils.h
+++ b/quiche/quic/test_tools/qpack/qpack_decoder_test_utils.h
@@ -13,7 +13,7 @@
#include "quiche/quic/core/quic_error_codes.h"
#include "quiche/quic/platform/api/quic_test.h"
#include "quiche/quic/test_tools/qpack/qpack_test_utils.h"
-#include "quiche/spdy/core/http2_header_block.h"
+#include "quiche/common/http/http_header_block.h"
namespace quic {
namespace test {
@@ -46,14 +46,14 @@
// Release decoded header list. Must only be called if decoding is complete
// and no errors have been detected.
- spdy::Http2HeaderBlock ReleaseHeaderList();
+ quiche::HttpHeaderBlock ReleaseHeaderList();
bool decoding_completed() const;
bool decoding_error_detected() const;
const std::string& error_message() const;
private:
- spdy::Http2HeaderBlock header_list_;
+ quiche::HttpHeaderBlock header_list_;
bool decoding_completed_;
bool decoding_error_detected_;
std::string error_message_;
diff --git a/quiche/quic/test_tools/qpack/qpack_offline_decoder.cc b/quiche/quic/test_tools/qpack/qpack_offline_decoder.cc
index 73d5007..a86548e 100644
--- a/quiche/quic/test_tools/qpack/qpack_offline_decoder.cc
+++ b/quiche/quic/test_tools/qpack/qpack_offline_decoder.cc
@@ -237,11 +237,11 @@
absl::string_view expected_headers_data(*expected_headers_data_storage);
while (!decoded_header_lists_.empty()) {
- spdy::Http2HeaderBlock decoded_header_list =
+ quiche::HttpHeaderBlock decoded_header_list =
std::move(decoded_header_lists_.front());
decoded_header_lists_.pop_front();
- spdy::Http2HeaderBlock expected_header_list;
+ quiche::HttpHeaderBlock expected_header_list;
if (!ReadNextExpectedHeaderList(&expected_headers_data,
&expected_header_list)) {
QUIC_LOG(ERROR)
@@ -268,7 +268,7 @@
bool QpackOfflineDecoder::ReadNextExpectedHeaderList(
absl::string_view* expected_headers_data,
- spdy::Http2HeaderBlock* expected_header_list) {
+ quiche::HttpHeaderBlock* expected_header_list) {
while (true) {
absl::string_view::size_type endline = expected_headers_data->find('\n');
@@ -299,8 +299,8 @@
}
bool QpackOfflineDecoder::CompareHeaderBlocks(
- spdy::Http2HeaderBlock decoded_header_list,
- spdy::Http2HeaderBlock expected_header_list) {
+ quiche::HttpHeaderBlock decoded_header_list,
+ quiche::HttpHeaderBlock expected_header_list) {
if (decoded_header_list == expected_header_list) {
return true;
}
@@ -311,7 +311,7 @@
// Remove such headers one by one if they match.
const char* kContentLength = "content-length";
const char* kPseudoHeaderPrefix = ":";
- for (spdy::Http2HeaderBlock::iterator decoded_it =
+ for (quiche::HttpHeaderBlock::iterator decoded_it =
decoded_header_list.begin();
decoded_it != decoded_header_list.end();) {
const absl::string_view key = decoded_it->first;
@@ -319,7 +319,7 @@
++decoded_it;
continue;
}
- spdy::Http2HeaderBlock::iterator expected_it =
+ quiche::HttpHeaderBlock::iterator expected_it =
expected_header_list.find(key);
if (expected_it == expected_header_list.end() ||
decoded_it->second != expected_it->second) {
diff --git a/quiche/quic/test_tools/qpack/qpack_offline_decoder.h b/quiche/quic/test_tools/qpack/qpack_offline_decoder.h
index 07fa276..4e78a31 100644
--- a/quiche/quic/test_tools/qpack/qpack_offline_decoder.h
+++ b/quiche/quic/test_tools/qpack/qpack_offline_decoder.h
@@ -12,7 +12,7 @@
#include "quiche/quic/core/quic_error_codes.h"
#include "quiche/quic/test_tools/qpack/qpack_decoder_test_utils.h"
#include "quiche/quic/test_tools/qpack/qpack_test_utils.h"
-#include "quiche/spdy/core/http2_header_block.h"
+#include "quiche/common/http/http_header_block.h"
namespace quic {
@@ -63,14 +63,15 @@
// Parse next header list from |*expected_headers_data| into
// |*expected_header_list|, removing consumed data from the beginning of
// |*expected_headers_data|. Returns true on success, false if parsing fails.
- bool ReadNextExpectedHeaderList(absl::string_view* expected_headers_data,
- spdy::Http2HeaderBlock* expected_header_list);
+ bool ReadNextExpectedHeaderList(
+ absl::string_view* expected_headers_data,
+ quiche::HttpHeaderBlock* expected_header_list);
// Compare two header lists. Allow for different orders of certain headers as
// described at
// https://github.com/qpackers/qifs/blob/master/encoded/qpack-03/h2o/README.md.
- bool CompareHeaderBlocks(spdy::Http2HeaderBlock decoded_header_list,
- spdy::Http2HeaderBlock expected_header_list);
+ bool CompareHeaderBlocks(quiche::HttpHeaderBlock decoded_header_list,
+ quiche::HttpHeaderBlock expected_header_list);
bool encoder_stream_error_detected_;
test::NoopQpackStreamSenderDelegate decoder_stream_sender_delegate_;
@@ -80,7 +81,7 @@
std::list<Decoder> decoders_;
// Decoded header lists.
- std::list<spdy::Http2HeaderBlock> decoded_header_lists_;
+ std::list<quiche::HttpHeaderBlock> decoded_header_lists_;
};
} // namespace quic
diff --git a/quiche/spdy/core/hpack/hpack_decoder_adapter.cc b/quiche/spdy/core/hpack/hpack_decoder_adapter.cc
index 4dcdc60..ce3dcbb 100644
--- a/quiche/spdy/core/hpack/hpack_decoder_adapter.cc
+++ b/quiche/spdy/core/hpack/hpack_decoder_adapter.cc
@@ -11,8 +11,8 @@
#include "quiche/http2/core/spdy_headers_handler_interface.h"
#include "quiche/http2/decoder/decode_buffer.h"
#include "quiche/http2/hpack/decoder/hpack_decoding_error.h"
+#include "quiche/common/http/http_header_block.h"
#include "quiche/common/platform/api/quiche_logging.h"
-#include "quiche/spdy/core/http2_header_block.h"
namespace spdy {
namespace {
diff --git a/quiche/spdy/core/hpack/hpack_decoder_adapter.h b/quiche/spdy/core/hpack/hpack_decoder_adapter.h
index ba2ef97..a675df9 100644
--- a/quiche/spdy/core/hpack/hpack_decoder_adapter.h
+++ b/quiche/spdy/core/hpack/hpack_decoder_adapter.h
@@ -18,8 +18,8 @@
#include "quiche/http2/hpack/decoder/hpack_decoder.h"
#include "quiche/http2/hpack/decoder/hpack_decoder_listener.h"
#include "quiche/http2/hpack/decoder/hpack_decoding_error.h"
+#include "quiche/common/http/http_header_block.h"
#include "quiche/common/platform/api/quiche_export.h"
-#include "quiche/spdy/core/http2_header_block.h"
namespace spdy {
namespace test {
diff --git a/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc b/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc
index 16f0eeb..8ac28ef 100644
--- a/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc
+++ b/quiche/spdy/core/hpack/hpack_decoder_adapter_test.cc
@@ -27,10 +27,10 @@
#include "quiche/http2/hpack/http2_hpack_constants.h"
#include "quiche/http2/test_tools/hpack_block_builder.h"
#include "quiche/http2/test_tools/http2_random.h"
+#include "quiche/common/http/http_header_block.h"
#include "quiche/common/platform/api/quiche_logging.h"
#include "quiche/common/platform/api/quiche_test.h"
#include "quiche/common/quiche_text_utils.h"
-#include "quiche/spdy/core/http2_header_block.h"
using ::http2::HpackEntryType;
using ::http2::HpackStringPair;
@@ -179,11 +179,11 @@
return DecodeHeaderBlock(hbb.buffer());
}
- const Http2HeaderBlock& decoded_block() const {
+ const quiche::HttpHeaderBlock& decoded_block() const {
return handler_.decoded_block();
}
- static size_t SizeOfHeaders(const Http2HeaderBlock& headers) {
+ static size_t SizeOfHeaders(const quiche::HttpHeaderBlock& headers) {
size_t size = 0;
for (const auto& kv : headers) {
if (kv.first == kCookieKey) {
@@ -199,7 +199,8 @@
return size;
}
- const Http2HeaderBlock& DecodeBlockExpectingSuccess(absl::string_view str) {
+ const quiche::HttpHeaderBlock& DecodeBlockExpectingSuccess(
+ absl::string_view str) {
EXPECT_TRUE(DecodeHeaderBlock(str));
return decoded_block();
}
@@ -212,9 +213,9 @@
EXPECT_EQ(size, entry->size());
}
- Http2HeaderBlock MakeHeaderBlock(
+ quiche::HttpHeaderBlock MakeHeaderBlock(
const std::vector<std::pair<std::string, std::string>>& headers) {
- Http2HeaderBlock result;
+ quiche::HttpHeaderBlock result;
for (const auto& kv : headers) {
result.AppendValueOrAddHeader(kv.first, kv.second);
}
@@ -225,7 +226,7 @@
HpackDecoderAdapter decoder_;
test::HpackDecoderAdapterPeer decoder_peer_;
RecordingHeadersHandler handler_;
- const Http2HeaderBlock dummy_block_;
+ const quiche::HttpHeaderBlock dummy_block_;
bool randomly_split_input_buffer_;
bool decode_has_failed_ = false;
size_t bytes_passed_in_;
@@ -262,7 +263,7 @@
EXPECT_TRUE(HandleControlFrameHeadersData(s.substr(s.size() / 2)));
EXPECT_FALSE(HandleControlFrameHeadersData(s));
- Http2HeaderBlock expected_block = MakeHeaderBlock({{"a", a_value}});
+ quiche::HttpHeaderBlock expected_block = MakeHeaderBlock({{"a", a_value}});
EXPECT_EQ(expected_block, decoded_block());
}
@@ -338,7 +339,7 @@
std::vector<std::pair<std::string, std::string>> expected_headers = {
{":method", "GET"}, {":path", "/index.html"}, {":method", "GET"}};
- Http2HeaderBlock expected_block1 = MakeHeaderBlock(expected_headers);
+ quiche::HttpHeaderBlock expected_block1 = MakeHeaderBlock(expected_headers);
EXPECT_EQ(expected_block1, decoded_block());
// Full and partial headers, won't add partial to the headers.
@@ -348,7 +349,7 @@
expected_headers.push_back({"goo", "gar"});
expected_headers.push_back({"goo", "gar"});
- Http2HeaderBlock expected_block2 = MakeHeaderBlock(expected_headers);
+ quiche::HttpHeaderBlock expected_block2 = MakeHeaderBlock(expected_headers);
EXPECT_EQ(expected_block2, decoded_block());
// Add the needed data.
@@ -358,7 +359,7 @@
expected_headers.push_back({"spam", "gggs"});
- Http2HeaderBlock expected_block3 = MakeHeaderBlock(expected_headers);
+ quiche::HttpHeaderBlock expected_block3 = MakeHeaderBlock(expected_headers);
EXPECT_EQ(expected_block3, decoded_block());
}
@@ -410,44 +411,47 @@
// Decoding indexed static table field should work.
TEST_P(HpackDecoderAdapterTest, IndexedHeaderStatic) {
// Reference static table entries #2 and #5.
- const Http2HeaderBlock& header_set1 = DecodeBlockExpectingSuccess("\x82\x85");
- Http2HeaderBlock expected_header_set1;
+ const quiche::HttpHeaderBlock& header_set1 =
+ DecodeBlockExpectingSuccess("\x82\x85");
+ quiche::HttpHeaderBlock expected_header_set1;
expected_header_set1[":method"] = "GET";
expected_header_set1[":path"] = "/index.html";
EXPECT_EQ(expected_header_set1, header_set1);
// Reference static table entry #2.
- const Http2HeaderBlock& header_set2 = DecodeBlockExpectingSuccess("\x82");
- Http2HeaderBlock expected_header_set2;
+ const quiche::HttpHeaderBlock& header_set2 =
+ DecodeBlockExpectingSuccess("\x82");
+ quiche::HttpHeaderBlock expected_header_set2;
expected_header_set2[":method"] = "GET";
EXPECT_EQ(expected_header_set2, header_set2);
}
TEST_P(HpackDecoderAdapterTest, IndexedHeaderDynamic) {
// First header block: add an entry to header table.
- const Http2HeaderBlock& header_set1 = DecodeBlockExpectingSuccess(
+ const quiche::HttpHeaderBlock& header_set1 = DecodeBlockExpectingSuccess(
"\x40\x03"
"foo"
"\x03"
"bar");
- Http2HeaderBlock expected_header_set1;
+ quiche::HttpHeaderBlock expected_header_set1;
expected_header_set1["foo"] = "bar";
EXPECT_EQ(expected_header_set1, header_set1);
// Second header block: add another entry to header table.
- const Http2HeaderBlock& header_set2 = DecodeBlockExpectingSuccess(
+ const quiche::HttpHeaderBlock& header_set2 = DecodeBlockExpectingSuccess(
"\xbe\x40\x04"
"spam"
"\x04"
"eggs");
- Http2HeaderBlock expected_header_set2;
+ quiche::HttpHeaderBlock expected_header_set2;
expected_header_set2["foo"] = "bar";
expected_header_set2["spam"] = "eggs";
EXPECT_EQ(expected_header_set2, header_set2);
// Third header block: refer to most recently added entry.
- const Http2HeaderBlock& header_set3 = DecodeBlockExpectingSuccess("\xbe");
- Http2HeaderBlock expected_header_set3;
+ const quiche::HttpHeaderBlock& header_set3 =
+ DecodeBlockExpectingSuccess("\xbe");
+ quiche::HttpHeaderBlock expected_header_set3;
expected_header_set3["spam"] = "eggs";
EXPECT_EQ(expected_header_set3, header_set3);
}
@@ -581,10 +585,10 @@
// First header with indexed name, second header with string literal
// name.
const char input[] = "\x04\x0c/sample/path\x00\x06:path2\x0e/sample/path/2";
- const Http2HeaderBlock& header_set = DecodeBlockExpectingSuccess(
+ const quiche::HttpHeaderBlock& header_set = DecodeBlockExpectingSuccess(
absl::string_view(input, ABSL_ARRAYSIZE(input) - 1));
- Http2HeaderBlock expected_header_set;
+ quiche::HttpHeaderBlock expected_header_set;
expected_header_set[":path"] = "/sample/path";
expected_header_set[":path2"] = "/sample/path/2";
EXPECT_EQ(expected_header_set, header_set);
@@ -594,10 +598,10 @@
// indexing and string literal names should work.
TEST_P(HpackDecoderAdapterTest, LiteralHeaderIncrementalIndexing) {
const char input[] = "\x44\x0c/sample/path\x40\x06:path2\x0e/sample/path/2";
- const Http2HeaderBlock& header_set = DecodeBlockExpectingSuccess(
+ const quiche::HttpHeaderBlock& header_set = DecodeBlockExpectingSuccess(
absl::string_view(input, ABSL_ARRAYSIZE(input) - 1));
- Http2HeaderBlock expected_header_set;
+ quiche::HttpHeaderBlock expected_header_set;
expected_header_set[":path"] = "/sample/path";
expected_header_set[":path2"] = "/sample/path/2";
EXPECT_EQ(expected_header_set, header_set);
@@ -680,7 +684,7 @@
TEST_P(HpackDecoderAdapterTest, BasicC31) {
HpackEncoder encoder;
- Http2HeaderBlock expected_header_set;
+ quiche::HttpHeaderBlock expected_header_set;
expected_header_set[":method"] = "GET";
expected_header_set[":scheme"] = "http";
expected_header_set[":path"] = "/";
@@ -720,7 +724,8 @@
std::string first;
ASSERT_TRUE(
absl::HexStringToBytes("828684418cf1e3c2e5f23a6ba0ab90f4ff", &first));
- const Http2HeaderBlock& first_header_set = DecodeBlockExpectingSuccess(first);
+ const quiche::HttpHeaderBlock& first_header_set =
+ DecodeBlockExpectingSuccess(first);
EXPECT_THAT(first_header_set,
ElementsAre(
@@ -758,7 +763,7 @@
std::string second;
ASSERT_TRUE(absl::HexStringToBytes("828684be5886a8eb10649cbf", &second));
- const Http2HeaderBlock& second_header_set =
+ const quiche::HttpHeaderBlock& second_header_set =
DecodeBlockExpectingSuccess(second);
EXPECT_THAT(second_header_set,
@@ -802,7 +807,8 @@
std::string third;
ASSERT_TRUE(absl::HexStringToBytes(
"828785bf408825a849e95ba97d7f8925a849e95bb8e8b4bf", &third));
- const Http2HeaderBlock& third_header_set = DecodeBlockExpectingSuccess(third);
+ const quiche::HttpHeaderBlock& third_header_set =
+ DecodeBlockExpectingSuccess(third);
EXPECT_THAT(
third_header_set,
@@ -875,7 +881,8 @@
"488264025885aec3771a4b6196d07abe941054d444a8200595040b8166e082a62d1bff6e"
"919d29ad171863c78f0b97c8e9ae82ae43d3",
&first));
- const Http2HeaderBlock& first_header_set = DecodeBlockExpectingSuccess(first);
+ const quiche::HttpHeaderBlock& first_header_set =
+ DecodeBlockExpectingSuccess(first);
EXPECT_THAT(first_header_set,
ElementsAre(
@@ -915,7 +922,7 @@
// | https://www.example.com
std::string second;
ASSERT_TRUE(absl::HexStringToBytes("4883640effc1c0bf", &second));
- const Http2HeaderBlock& second_header_set =
+ const quiche::HttpHeaderBlock& second_header_set =
DecodeBlockExpectingSuccess(second);
EXPECT_THAT(second_header_set,
@@ -992,7 +999,8 @@
"821dd7f2e6c7b335dfdfcd5b3960d5af27087f3672c1ab270fb5291f9587316065c003ed"
"4ee5b1063d5007",
&third));
- const Http2HeaderBlock& third_header_set = DecodeBlockExpectingSuccess(third);
+ const quiche::HttpHeaderBlock& third_header_set =
+ DecodeBlockExpectingSuccess(third);
EXPECT_THAT(third_header_set,
ElementsAre(
@@ -1056,12 +1064,12 @@
hbb.AppendIndexedHeader(62);
// Can't have DecodeHeaderBlock do the default check for size of the decoded
- // data because Http2HeaderBlock will join multiple headers with the same
- // name into a single entry, thus we won't see repeated occurrences of the
- // name, instead seeing separators between values.
+ // data because quiche::HttpHeaderBlock will join multiple headers with the
+ // same name into a single entry, thus we won't see repeated occurrences of
+ // the name, instead seeing separators between values.
EXPECT_TRUE(DecodeHeaderBlock(hbb.buffer(), kNoCheckDecodedSize));
- Http2HeaderBlock expected_header_set;
+ quiche::HttpHeaderBlock expected_header_set;
expected_header_set.AppendValueOrAddHeader(name, value1);
expected_header_set.AppendValueOrAddHeader(name, value1);
expected_header_set.AppendValueOrAddHeader(name, value2);
@@ -1069,7 +1077,7 @@
expected_header_set.AppendValueOrAddHeader(name, value3);
expected_header_set.AppendValueOrAddHeader(name, value3);
- // Http2HeaderBlock stores these 6 strings as '\0' separated values.
+ // quiche::HttpHeaderBlock stores these 6 strings as '\0' separated values.
// Make sure that is what happened.
std::string joined_values = expected_header_set[name].as_string();
EXPECT_EQ(joined_values.size(),
@@ -1084,7 +1092,7 @@
// Regression test for https://crbug.com/747395.
TEST_P(HpackDecoderAdapterTest, Cookies) {
- Http2HeaderBlock expected_header_set;
+ quiche::HttpHeaderBlock expected_header_set;
expected_header_set["cookie"] = "foo; bar";
std::string encoded_block;
diff --git a/quiche/spdy/core/hpack/hpack_round_trip_test.cc b/quiche/spdy/core/hpack/hpack_round_trip_test.cc
index e21c030..245f953 100644
--- a/quiche/spdy/core/hpack/hpack_round_trip_test.cc
+++ b/quiche/spdy/core/hpack/hpack_round_trip_test.cc
@@ -11,9 +11,9 @@
#include "quiche/http2/core/recording_headers_handler.h"
#include "quiche/http2/hpack/hpack_encoder.h"
#include "quiche/http2/test_tools/http2_random.h"
+#include "quiche/common/http/http_header_block.h"
#include "quiche/common/platform/api/quiche_test.h"
#include "quiche/spdy/core/hpack/hpack_decoder_adapter.h"
-#include "quiche/spdy/core/http2_header_block.h"
namespace spdy {
namespace test {
@@ -32,7 +32,7 @@
decoder_.ApplyHeaderTableSizeSetting(256);
}
- bool RoundTrip(const Http2HeaderBlock& header_set) {
+ bool RoundTrip(const quiche::HttpHeaderBlock& header_set) {
std::string encoded = encoder_.EncodeHeaderBlock(header_set);
bool success = true;
@@ -84,7 +84,7 @@
TEST_P(HpackRoundTripTest, ResponseFixtures) {
{
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers[":status"] = "302";
headers["cache-control"] = "private";
headers["date"] = "Mon, 21 Oct 2013 20:13:21 GMT";
@@ -92,7 +92,7 @@
EXPECT_TRUE(RoundTrip(headers));
}
{
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers[":status"] = "200";
headers["cache-control"] = "private";
headers["date"] = "Mon, 21 Oct 2013 20:13:21 GMT";
@@ -100,7 +100,7 @@
EXPECT_TRUE(RoundTrip(headers));
}
{
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers[":status"] = "200";
headers["cache-control"] = "private";
headers["content-encoding"] = "gzip";
@@ -116,7 +116,7 @@
TEST_P(HpackRoundTripTest, RequestFixtures) {
{
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers[":authority"] = "www.example.com";
headers[":method"] = "GET";
headers[":path"] = "/";
@@ -125,7 +125,7 @@
EXPECT_TRUE(RoundTrip(headers));
}
{
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers[":authority"] = "www.example.com";
headers[":method"] = "GET";
headers[":path"] = "/";
@@ -135,7 +135,7 @@
EXPECT_TRUE(RoundTrip(headers));
}
{
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
headers[":authority"] = "www.example.com";
headers[":method"] = "GET";
headers[":path"] = "/index.html";
@@ -169,7 +169,7 @@
values.push_back("baz=bing; fizzle=fazzle; garbage");
for (size_t i = 0; i != 2000; ++i) {
- Http2HeaderBlock headers;
+ quiche::HttpHeaderBlock headers;
// Choose a random number of headers to add, and of these a random subset
// will be HTTP/2 pseudo headers.