Chromium Code Reviews| 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 80be4521cee557c501cc44e6ec50a77e8ecd394f..6611fba87b302be51da3fa8fd45256b1d9e78f3d 100644 |
| --- a/net/quic/chromium/quic_http_stream.cc |
| +++ b/net/quic/chromium/quic_http_stream.cc |
| @@ -464,10 +464,22 @@ void QuicHttpStream::OnReadResponseHeadersComplete(int rv) { |
| } |
| } |
| -void QuicHttpStream::OnTrailingHeadersAvailable(const SpdyHeaderBlock& headers, |
| - size_t frame_len) { |
| +void QuicHttpStream::ReadTrailingHeaders() { |
| + if (!stream_) |
|
xunjieli
2017/05/26 15:53:06
Is the null check needed? I thought the handle is
Ryan Hamilton
2017/05/26 22:35:50
It's still null out in ResetStream, as of this CL.
xunjieli
2017/05/29 14:06:08
Acknowledged.
|
| + return; |
| + |
| + int rv = stream_->ReadTrailingHeaders( |
| + &trailing_header_block_, |
| + base::Bind(&QuicHttpStream::OnReadTrailingHeadersComplete, |
| + weak_factory_.GetWeakPtr())); |
| + |
| + OnReadTrailingHeadersComplete(rv); |
|
xunjieli
2017/05/26 15:53:05
Should we test (rv != ERR_IO_PENDING) before calli
Ryan Hamilton
2017/05/26 22:35:50
Good point. Amusingly, OnReadTrailingHeadersComple
|
| +} |
| + |
| +void QuicHttpStream::OnReadTrailingHeadersComplete(int rv) { |
| DCHECK(response_headers_received_); |
| - headers_bytes_received_ += frame_len; |
| + if (rv > 0) |
| + headers_bytes_received_ += rv; |
| // QuicHttpStream ignores trailers. |
| if (stream_->IsDoneReading()) { |
| @@ -751,6 +763,11 @@ int QuicHttpStream::ProcessResponseHeaders(const SpdyHeaderBlock& headers) { |
| // Populate |connect_timing_| when response headers are received. This should |
| // take care of 0-RTT where request is sent before handshake is confirmed. |
| connect_timing_ = quic_session()->GetConnectTiming(); |
| + |
| + base::ThreadTaskRunnerHandle::Get()->PostTask( |
| + FROM_HERE, base::Bind(&QuicHttpStream::ReadTrailingHeaders, |
| + weak_factory_.GetWeakPtr())); |
| + |
| return OK; |
| } |