Chromium Code Reviews| Index: net/quic/chromium/bidirectional_stream_quic_impl.cc |
| diff --git a/net/quic/chromium/bidirectional_stream_quic_impl.cc b/net/quic/chromium/bidirectional_stream_quic_impl.cc |
| index 1afd2b60b0d00856e45269925162b9c193bfeefd..b036f230499ac0601ad32debbc9eb1634a1800df 100644 |
| --- a/net/quic/chromium/bidirectional_stream_quic_impl.cc |
| +++ b/net/quic/chromium/bidirectional_stream_quic_impl.cc |
| @@ -227,16 +227,6 @@ bool BidirectionalStreamQuicImpl::GetLoadTimingInfo( |
| return true; |
| } |
| -void BidirectionalStreamQuicImpl::OnInitialHeadersAvailable( |
| - const SpdyHeaderBlock& headers, |
| - size_t frame_len) { |
| - headers_bytes_received_ += frame_len; |
| - negotiated_protocol_ = kProtoQUIC; |
| - connect_timing_ = session_->GetConnectTiming(); |
| - if (delegate_) |
| - delegate_->OnHeadersReceived(headers); |
| -} |
| - |
| void BidirectionalStreamQuicImpl::OnTrailingHeadersAvailable( |
| const SpdyHeaderBlock& headers, |
| size_t frame_len) { |
| @@ -295,6 +285,15 @@ void BidirectionalStreamQuicImpl::OnStreamReady(int rv) { |
| if (rv == OK) { |
| stream_ = session_->ReleaseStream(this); |
| NotifyStreamReady(); |
| + |
| + int rv = stream_->ReadInitialHeaders( |
|
xunjieli
2017/05/10 17:54:27
nit: remove "int" before "rv"
Ryan Hamilton
2017/05/10 18:26:40
Done.
|
| + &initial_headers_, |
| + base::Bind(&BidirectionalStreamQuicImpl::OnReadInitialHeadersComplete, |
| + weak_factory_.GetWeakPtr())); |
| + if (rv == ERR_IO_PENDING) |
| + return; |
| + |
| + OnReadInitialHeadersComplete(rv); |
| } else { |
| NotifyError(rv); |
| } |
| @@ -310,6 +309,20 @@ void BidirectionalStreamQuicImpl::OnSendDataComplete(int rv) { |
| } |
| } |
| +void BidirectionalStreamQuicImpl::OnReadInitialHeadersComplete(int rv) { |
| + DCHECK_NE(ERR_IO_PENDING, rv); |
| + if (rv < 0) { |
| + NotifyError(rv); |
| + return; |
| + } |
| + |
| + headers_bytes_received_ += rv; |
| + negotiated_protocol_ = kProtoQUIC; |
| + connect_timing_ = session_->GetConnectTiming(); |
| + if (delegate_) |
| + delegate_->OnHeadersReceived(initial_headers_); |
| +} |
| + |
| void BidirectionalStreamQuicImpl::NotifyError(int error) { |
| DCHECK_NE(OK, error); |
| DCHECK_NE(ERR_IO_PENDING, error); |