Index: net/spdy/spdy_framer.cc |
diff --git a/net/spdy/spdy_framer.cc b/net/spdy/spdy_framer.cc |
index 5ae6e94a5e76252367fcaf690bf4726e6a5bb9fd..ea5eaa564b3b9b92667fd03bac10d1f59ce1a943 100644 |
--- a/net/spdy/spdy_framer.cc |
+++ b/net/spdy/spdy_framer.cc |
@@ -2160,10 +2160,13 @@ size_t SpdyFramer::ProcessDataFramePaddingLength(const char* data, size_t len) { |
return 0; |
} |
+ static_assert(kPadLengthFieldSize == 1, |
+ "Unexpected pad length field size."); |
remaining_padding_payload_length_ = *reinterpret_cast<const uint8*>(data); |
++data; |
--len; |
--remaining_data_length_; |
+ visitor_->OnStreamPadding(current_frame_stream_id_, kPadLengthFieldSize); |
} else { |
// We don't have the data available for parsing the pad length field. Keep |
// waiting. |
@@ -2187,11 +2190,8 @@ size_t SpdyFramer::ProcessFramePadding(const char* data, size_t len) { |
DCHECK_EQ(remaining_padding_payload_length_, remaining_data_length_); |
size_t amount_to_discard = std::min(remaining_padding_payload_length_, len); |
if (current_frame_type_ == DATA && amount_to_discard > 0) { |
- // The visitor needs to know about padding so it can send window updates. |
- // Communicate the padding to the visitor through a NULL data pointer, |
- // with a nonzero size. |
- visitor_->OnStreamFrameData( |
- current_frame_stream_id_, NULL, amount_to_discard, false); |
+ DCHECK_LE(SPDY4, protocol_version()); |
+ visitor_->OnStreamPadding(current_frame_stream_id_, amount_to_discard); |
} |
data += amount_to_discard; |
len -= amount_to_discard; |