Index: net/spdy/spdy_stream.cc |
diff --git a/net/spdy/spdy_stream.cc b/net/spdy/spdy_stream.cc |
index fd17850580158cc9b336c24f2e6d791532200f40..35b84f6a2ac0a75866b95ddfdb13d97c774223e1 100644 |
--- a/net/spdy/spdy_stream.cc |
+++ b/net/spdy/spdy_stream.cc |
@@ -209,7 +209,8 @@ std::unique_ptr<SpdySerializedFrame> SpdyStream::ProduceSynStreamFrame() { |
(pending_send_status_ == NO_MORE_DATA_TO_SEND) ? |
CONTROL_FLAG_FIN : CONTROL_FLAG_NONE; |
std::unique_ptr<SpdySerializedFrame> frame(session_->CreateSynStream( |
- stream_id_, priority_, flags, request_headers_.Clone())); |
+ stream_id_, priority_, flags, std::move(request_headers_))); |
+ request_headers_valid_ = false; |
send_time_ = base::TimeTicks::Now(); |
return frame; |
} |
@@ -473,6 +474,7 @@ void SpdyStream::OnPushPromiseHeadersReceived(const SpdyHeaderBlock& headers) { |
io_state_ = STATE_RESERVED_REMOTE; |
request_headers_ = headers.Clone(); |
request_headers_valid_ = true; |
+ url_from_header_block_ = GetUrlFromHeaderBlock(request_headers_); |
} |
void SpdyStream::OnDataReceived(std::unique_ptr<SpdyBuffer> buffer) { |
@@ -691,6 +693,7 @@ int SpdyStream::SendRequestHeaders(SpdyHeaderBlock request_headers, |
CHECK_EQ(io_state_, STATE_IDLE); |
request_headers_ = std::move(request_headers); |
request_headers_valid_ = true; |
+ url_from_header_block_ = GetUrlFromHeaderBlock(request_headers_); |
pending_send_status_ = send_status; |
session_->EnqueueStreamWrite(GetWeakPtr(), SYN_STREAM, |
std::unique_ptr<SpdyBufferProducer>( |
@@ -775,17 +778,6 @@ bool SpdyStream::GetLoadTimingInfo(LoadTimingInfo* load_timing_info) const { |
return result; |
} |
-GURL SpdyStream::GetUrlFromHeaders() const { |
- if (!request_headers_valid_) |
- return GURL(); |
- |
- return GetUrlFromHeaderBlock(request_headers_); |
-} |
- |
-bool SpdyStream::HasUrlFromHeaders() const { |
- return !GetUrlFromHeaders().is_empty(); |
-} |
- |
void SpdyStream::UpdateHistograms() { |
// We need at least the receive timers to be filled in, as otherwise |
// metrics can be bogus. |