Add HpackDecodingError enum, bubble up all third_party/http2/hpack/decoder errors to HpackDecoder.
Replace error_detected_ Boolean members with HpackDecodingError; false becomes
kOk, true is split to more gradual error codes.
gfe-relnote: n/a (no functional change)
PiperOrigin-RevId: 293809195
Change-Id: I8ec3264f1dd630045e438b4354b5453a3d9b3ef3
diff --git a/http2/hpack/decoder/hpack_decoder_state.h b/http2/hpack/decoder/hpack_decoder_state.h
index 4436ef3..0735f6a 100644
--- a/http2/hpack/decoder/hpack_decoder_state.h
+++ b/http2/hpack/decoder/hpack_decoder_state.h
@@ -19,6 +19,7 @@
#include "net/third_party/quiche/src/http2/hpack/decoder/hpack_decoder_listener.h"
#include "net/third_party/quiche/src/http2/hpack/decoder/hpack_decoder_string_buffer.h"
#include "net/third_party/quiche/src/http2/hpack/decoder/hpack_decoder_tables.h"
+#include "net/third_party/quiche/src/http2/hpack/decoder/hpack_decoding_error.h"
#include "net/third_party/quiche/src/http2/hpack/decoder/hpack_whole_entry_listener.h"
#include "net/third_party/quiche/src/http2/hpack/http2_hpack_constants.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_export.h"
@@ -76,15 +77,15 @@
HpackDecoderStringBuffer* name_buffer,
HpackDecoderStringBuffer* value_buffer) override;
void OnDynamicTableSizeUpdate(size_t size) override;
- void OnHpackDecodeError(quiche::QuicheStringPiece error_message) override;
+ void OnHpackDecodeError(HpackDecodingError error) override;
// OnHeaderBlockEnd notifies this object that an entire HPACK block has been
// decoded, which might have extended into CONTINUATION blocks.
void OnHeaderBlockEnd();
- // Was an error detected? After an error has been detected and reported,
- // no further callbacks will be made to the listener.
- bool error_detected() const { return error_detected_; }
+ // Returns error code after an error has been detected and reported.
+ // No further callbacks will be made to the listener.
+ HpackDecodingError error() const { return error_; }
const HpackDecoderTables& decoder_tables_for_test() const {
return decoder_tables_;
@@ -94,7 +95,7 @@
friend class test::HpackDecoderStatePeer;
// Reports an error to the listener IF this is the first error detected.
- void ReportError(quiche::QuicheStringPiece error_message);
+ void ReportError(HpackDecodingError error);
// The static and dynamic HPACK tables.
HpackDecoderTables decoder_tables_;
@@ -121,7 +122,7 @@
bool saw_dynamic_table_size_update_;
// Has an error already been detected and reported to the listener?
- bool error_detected_;
+ HpackDecodingError error_;
};
} // namespace http2