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

Unified Diff: net/quic/core/quic_client_session_base.cc

Issue 2458793002: Server push cancellation: add PushPromiseHelper which reflects information on the push promise. (Closed)
Patch Set: sync and fix tests Created 4 years, 1 month 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/quic/core/quic_client_session_base.h ('k') | net/spdy/server_push_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/core/quic_client_session_base.cc
diff --git a/net/quic/core/quic_client_session_base.cc b/net/quic/core/quic_client_session_base.cc
index c2dc3533ad1526e6eeb067461cf9710b931dfeee..ff61a9d0a4699250cb4935ea5b9db6b69ac6c239 100644
--- a/net/quic/core/quic_client_session_base.cc
+++ b/net/quic/core/quic_client_session_base.cc
@@ -77,7 +77,7 @@ void QuicClientSessionBase::OnPromiseHeaderList(
stream->OnPromiseHeaderList(promised_stream_id, frame_len, header_list);
}
-void QuicClientSessionBase::HandlePromised(QuicStreamId /* associated_id */,
+bool QuicClientSessionBase::HandlePromised(QuicStreamId /* associated_id */,
QuicStreamId id,
const SpdyHeaderBlock& headers) {
// Due to pathalogical packet re-ordering, it is possible that
@@ -88,13 +88,13 @@ void QuicClientSessionBase::HandlePromised(QuicStreamId /* associated_id */,
// QUIC_REFUSED_STREAM?
DVLOG(1) << "Promise ignored for stream " << id
<< " that is already closed";
- return;
+ return false;
}
if (push_promise_index_->promised_by_url()->size() >= get_max_promises()) {
DVLOG(1) << "Too many promises, rejecting promise for stream " << id;
ResetPromised(id, QUIC_REFUSED_STREAM);
- return;
+ return false;
}
const string url = SpdyUtils::GetUrlFromHeaderBlock(headers);
@@ -103,14 +103,14 @@ void QuicClientSessionBase::HandlePromised(QuicStreamId /* associated_id */,
DVLOG(1) << "Promise for stream " << id << " is duplicate URL " << url
<< " of previous promise for stream " << old_promised->id();
ResetPromised(id, QUIC_DUPLICATE_PROMISE_URL);
- return;
+ return false;
}
if (GetPromisedById(id)) {
// OnPromiseHeadersComplete() would have closed the connection if
// promised id is a duplicate.
QUIC_BUG << "Duplicate promise for id " << id;
- return;
+ return false;
}
QuicClientPromisedInfo* promised = new QuicClientPromisedInfo(this, id, url);
@@ -120,6 +120,7 @@ void QuicClientSessionBase::HandlePromised(QuicStreamId /* associated_id */,
(*push_promise_index_->promised_by_url())[url] = promised;
promised_by_id_[id] = std::move(promised_owner);
promised->OnPromiseHeaders(headers);
+ return true;
}
QuicClientPromisedInfo* QuicClientSessionBase::GetPromisedByUrl(
« no previous file with comments | « net/quic/core/quic_client_session_base.h ('k') | net/spdy/server_push_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698