Index: net/quic/chromium/quic_http_stream.cc |
diff --git a/net/quic/chromium/quic_http_stream.cc b/net/quic/chromium/quic_http_stream.cc |
index 36e91189b06d59c899d8436358373d6eacaf5485..597f20e26342d866001e5d7a207b32e7a341f9b8 100644 |
--- a/net/quic/chromium/quic_http_stream.cc |
+++ b/net/quic/chromium/quic_http_stream.cc |
@@ -433,27 +433,31 @@ void QuicHttpStream::SetPriority(RequestPriority priority) { |
priority_ = priority; |
} |
-void QuicHttpStream::OnHeadersAvailable(const SpdyHeaderBlock& headers, |
- size_t frame_len) { |
+void QuicHttpStream::OnInitialHeadersAvailable(const SpdyHeaderBlock& headers, |
+ size_t frame_len) { |
+ DCHECK(!response_headers_received_); |
headers_bytes_received_ += frame_len; |
- // QuicHttpStream ignores trailers. |
- if (response_headers_received_) { |
- if (stream_->IsDoneReading()) { |
- // Close the read side. If the write side has been closed, this will |
- // invoke QuicHttpStream::OnClose to reset the stream. |
- stream_->OnFinRead(); |
- SetResponseStatus(OK); |
- } |
- return; |
- } |
- |
int rv = ProcessResponseHeaders(headers); |
if (rv != ERR_IO_PENDING && !callback_.is_null()) { |
DoCallback(rv); |
} |
} |
+void QuicHttpStream::OnTrailingHeadersAvailable(const SpdyHeaderBlock& headers, |
+ size_t frame_len) { |
+ DCHECK(response_headers_received_); |
+ headers_bytes_received_ += frame_len; |
+ |
+ // QuicHttpStream ignores trailers. |
+ if (stream_->IsDoneReading()) { |
+ // Close the read side. If the write side has been closed, this will |
+ // invoke QuicHttpStream::OnClose to reset the stream. |
+ stream_->OnFinRead(); |
+ SetResponseStatus(OK); |
+ } |
+} |
+ |
void QuicHttpStream::OnDataAvailable() { |
if (callback_.is_null()) { |
// Data is available, but can't be delivered |