Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(479)

Unified Diff: net/spdy/spdy_stream.cc

Issue 1828203005: Expose SPDY pushes in DevTools (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixed tests Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/spdy_network_transaction_unittest.cc ('k') | net/spdy/spdy_stream_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/spdy_stream.cc
diff --git a/net/spdy/spdy_stream.cc b/net/spdy/spdy_stream.cc
index 090fa18858028f5decfcee05bf436ab8f6ce7332..e458d06457a69f23768a8fdeb13e9ece28c21aac 100644
--- a/net/spdy/spdy_stream.cc
+++ b/net/spdy/spdy_stream.cc
@@ -476,6 +476,10 @@ void SpdyStream::OnPushPromiseHeadersReceived(const SpdyHeaderBlock& headers) {
void SpdyStream::OnDataReceived(std::unique_ptr<SpdyBuffer> buffer) {
DCHECK(session_->IsStreamActive(stream_id_));
+ // Track our bandwidth.
+ recv_bytes_ += buffer ? buffer->GetRemainingSize() : 0;
+ recv_last_byte_time_ = base::TimeTicks::Now();
+
// If we're still buffering data for a push stream, we will do the
// check for data received with incomplete headers in
// PushedStreamReplayData().
@@ -537,10 +541,6 @@ void SpdyStream::OnDataReceived(std::unique_ptr<SpdyBuffer> buffer) {
buffer->AddConsumeCallback(
base::Bind(&SpdyStream::OnReadBufferConsumed, GetWeakPtr()));
- // Track our bandwidth.
- recv_bytes_ += length;
- recv_last_byte_time_ = base::TimeTicks::Now();
-
// May close |this|.
delegate_->OnDataReceived(std::move(buffer));
}
@@ -572,9 +572,9 @@ void SpdyStream::OnFrameWriteComplete(SpdyFrameType frame_type,
}
if (pending_send_status_ == NO_MORE_DATA_TO_SEND) {
- if(io_state_ == STATE_OPEN) {
+ if (io_state_ == STATE_OPEN) {
io_state_ = STATE_HALF_CLOSED_LOCAL;
- } else if(io_state_ == STATE_HALF_CLOSED_REMOTE) {
+ } else if (io_state_ == STATE_HALF_CLOSED_REMOTE) {
io_state_ = STATE_CLOSED;
} else {
NOTREACHED() << io_state_;
@@ -770,8 +770,15 @@ void SpdyStream::AddRawSentBytes(size_t sent_bytes) {
bool SpdyStream::GetLoadTimingInfo(LoadTimingInfo* load_timing_info) const {
if (stream_id_ == 0)
return false;
-
- return session_->GetLoadTimingInfo(stream_id_, load_timing_info);
+ bool result = session_->GetLoadTimingInfo(stream_id_, load_timing_info);
+ if (type_ == SPDY_PUSH_STREAM) {
+ load_timing_info->push_start = recv_first_byte_time_;
+ bool done_receiving = IsClosed() || (!pending_recv_data_.empty() &&
+ !pending_recv_data_.back());
+ if (done_receiving)
+ load_timing_info->push_end = recv_last_byte_time_;
+ }
+ return result;
}
GURL SpdyStream::GetUrlFromHeaders() const {
« no previous file with comments | « net/spdy/spdy_network_transaction_unittest.cc ('k') | net/spdy/spdy_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698