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

Unified Diff: net/spdy/buffered_spdy_framer.cc

Issue 300553013: Add headers argument to BufferedSpdyFramerVisitorInterface::OnPushPromise (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: flip server unit test fix Created 6 years, 7 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/buffered_spdy_framer.h ('k') | net/spdy/buffered_spdy_framer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/buffered_spdy_framer.cc
diff --git a/net/spdy/buffered_spdy_framer.cc b/net/spdy/buffered_spdy_framer.cc
index 825d9c5043f022c6af07129d0d384149526775db..5b95be2af2921c21c1a7d9b1d27a7525275791df 100644
--- a/net/spdy/buffered_spdy_framer.cc
+++ b/net/spdy/buffered_spdy_framer.cc
@@ -139,6 +139,12 @@ bool BufferedSpdyFramer::OnControlFrameHeaderData(SpdyStreamId stream_id,
control_frame_fields_->fin,
headers);
break;
+ case PUSH_PROMISE:
+ DCHECK_LT(SPDY3, protocol_version());
+ visitor_->OnPushPromise(control_frame_fields_->stream_id,
+ control_frame_fields_->promised_stream_id,
+ headers);
+ break;
default:
DCHECK(false) << "Unexpect control frame type: "
<< control_frame_fields_->type;
@@ -214,8 +220,15 @@ void BufferedSpdyFramer::OnWindowUpdate(SpdyStreamId stream_id,
void BufferedSpdyFramer::OnPushPromise(SpdyStreamId stream_id,
SpdyStreamId promised_stream_id,
bool end) {
- // TODO(jgraettinger): Deliver headers, similar to OnHeaders.
- visitor_->OnPushPromise(stream_id, promised_stream_id);
+ DCHECK_LT(SPDY3, protocol_version());
+ frames_received_++;
+ DCHECK(!control_frame_fields_.get());
+ control_frame_fields_.reset(new ControlFrameFields());
+ control_frame_fields_->type = PUSH_PROMISE;
+ control_frame_fields_->stream_id = stream_id;
+ control_frame_fields_->promised_stream_id = promised_stream_id;
+
+ InitHeaderStreaming(stream_id);
}
void BufferedSpdyFramer::OnContinuation(SpdyStreamId stream_id, bool end) {
@@ -353,6 +366,16 @@ SpdyFrame* BufferedSpdyFramer::CreateDataFrame(SpdyStreamId stream_id,
return spdy_framer_.SerializeData(data_ir);
}
+// TODO(jgraettinger): Eliminate uses of this method (prefer SpdyPushPromiseIR).
+SpdyFrame* BufferedSpdyFramer::CreatePushPromise(
+ SpdyStreamId stream_id,
+ SpdyStreamId promised_stream_id,
+ const SpdyHeaderBlock* headers) {
+ SpdyPushPromiseIR push_promise_ir(stream_id, promised_stream_id);
+ push_promise_ir.set_name_value_block(*headers);
+ return spdy_framer_.SerializePushPromise(push_promise_ir);
+}
+
SpdyPriority BufferedSpdyFramer::GetHighestPriority() const {
return spdy_framer_.GetHighestPriority();
}
« no previous file with comments | « net/spdy/buffered_spdy_framer.h ('k') | net/spdy/buffered_spdy_framer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698