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 9ec364ce0833da527ac00ce86cea55bbf0ba219a..2c6dbcb245ce97a91e182785fd6fed932d93ab19 100644 |
--- a/net/quic/chromium/quic_http_stream.cc |
+++ b/net/quic/chromium/quic_http_stream.cc |
@@ -58,6 +58,7 @@ QuicHttpStream::QuicHttpStream( |
headers_bytes_sent_(0), |
closed_stream_received_bytes_(0), |
closed_stream_sent_bytes_(0), |
+ closed_stream_id_(kInvalidStreamId), |
user_buffer_len_(0), |
quic_connection_error_(QUIC_NO_ERROR), |
port_migration_detected_(false), |
@@ -416,7 +417,20 @@ int64_t QuicHttpStream::GetTotalSentBytes() const { |
} |
bool QuicHttpStream::GetLoadTimingInfo(LoadTimingInfo* load_timing_info) const { |
- // TODO(mmenke): Figure out what to do here. |
+ QuicStreamId stream_id = closed_stream_id_; |
+ if (stream_) |
+ stream_id = stream_->id(); |
+ if (stream_id == kInvalidStreamId) |
+ return false; |
+ // First stream on a session starts at 5. Any id larger on 5 means session is |
+ // reused. If session is reused, do not populate |connect_timing|. |
+ // FIXME: any constant that I can use to avoid hardcoding 5? |
Ryan Hamilton
2016/09/09 20:02:49
kHeadersStreamId + 2.
But that being said, I thin
xunjieli
2016/09/09 21:26:59
Done. I added a static method to QuicChromiumClien
|
+ if (stream_id > 5) { |
+ load_timing_info->socket_reused = true; |
+ } else { |
+ load_timing_info->connect_timing = connect_timing_; |
+ load_timing_info->socket_reused = false; |
+ } |
return true; |
} |
@@ -641,6 +655,7 @@ int QuicHttpStream::DoStreamRequest() { |
return was_handshake_confirmed_ ? ERR_CONNECTION_CLOSED |
: ERR_QUIC_HANDSHAKE_FAILED; |
} |
+ connect_timing_ = session_->GetConnectTiming(); |
int rv = stream_request_.StartRequest( |
session_, &stream_, |
base::Bind(&QuicHttpStream::OnStreamReady, weak_factory_.GetWeakPtr())); |
@@ -834,6 +849,7 @@ void QuicHttpStream::ResetStream() { |
return; |
closed_stream_received_bytes_ = stream_->stream_bytes_read(); |
closed_stream_sent_bytes_ = stream_->stream_bytes_written(); |
+ closed_stream_id_ = stream_->id(); |
stream_ = nullptr; |
// If |request_body_stream_| is non-NULL, Reset it, to abort any in progress |