Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(392)

Unified Diff: net/spdy/spdy_headers_block_parser.cc

Issue 290003006: Land recent SPDY changes (through 67282679) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase on nullptr => NULL Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/spdy_headers_block_parser.h ('k') | net/spdy/spdy_headers_block_parser_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/spdy_headers_block_parser.cc
diff --git a/net/spdy/spdy_headers_block_parser.cc b/net/spdy/spdy_headers_block_parser.cc
index eab55d2ad298960745afb5061c973c23f9911384..2a302c187621bfe25bc947c51c4a5a0c97779e73 100644
--- a/net/spdy/spdy_headers_block_parser.cc
+++ b/net/spdy/spdy_headers_block_parser.cc
@@ -16,6 +16,7 @@ SpdyHeadersBlockParser::SpdyHeadersBlockParser(
state_(READING_HEADER_BLOCK_LEN),
length_field_size_(LengthFieldSizeForVersion(spdy_version)),
max_headers_in_block_(MaxNumberOfHeadersForVersion(spdy_version)),
+ total_bytes_received_(0),
remaining_key_value_pairs_for_frame_(0),
handler_(handler),
error_(OK) {
@@ -41,6 +42,8 @@ bool SpdyHeadersBlockParser::HandleControlFrameHeadersData(
}
CHECK_EQ(stream_id_, stream_id);
+ total_bytes_received_ += headers_data_length;
+
SpdyPinnableBufferPiece prefix, key, value;
// Simultaneously tie lifetimes to the stack, and clear member variables.
prefix.Swap(&headers_block_prefix_);
@@ -86,7 +89,7 @@ bool SpdyHeadersBlockParser::HandleControlFrameHeadersData(
next_state = READING_KEY_LEN;
} else {
next_state = READING_HEADER_BLOCK_LEN;
- handler_->OnHeaderBlockEnd(stream_id);
+ handler_->OnHeaderBlockEnd(stream_id, total_bytes_received_);
// Expect to have consumed all buffer.
if (reader.Available() != 0) {
error_ = TOO_MUCH_DATA;
@@ -102,6 +105,7 @@ bool SpdyHeadersBlockParser::HandleControlFrameHeadersData(
if (next_state == READING_HEADER_BLOCK_LEN) {
// We completed reading a full header block. Return to caller.
+ total_bytes_received_ = 0;
break;
}
} else if (error_ == NEED_MORE_DATA) {
@@ -164,6 +168,7 @@ void SpdyHeadersBlockParser::Reset() {
error_ = OK;
state_ = READING_HEADER_BLOCK_LEN;
stream_id_ = 0;
+ total_bytes_received_ = 0;
}
size_t SpdyHeadersBlockParser::LengthFieldSizeForVersion(
« no previous file with comments | « net/spdy/spdy_headers_block_parser.h ('k') | net/spdy/spdy_headers_block_parser_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698