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

Side by Side Diff: net/spdy/buffered_spdy_framer.cc

Issue 723343002: Update from https://crrev.com/304121 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 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 unified diff | 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 »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/spdy/buffered_spdy_framer.h" 5 #include "net/spdy/buffered_spdy_framer.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 8
9 namespace net { 9 namespace net {
10 10
11 SpdyMajorVersion NextProtoToSpdyMajorVersion(NextProto next_proto) { 11 SpdyMajorVersion NextProtoToSpdyMajorVersion(NextProto next_proto) {
12 switch (next_proto) { 12 switch (next_proto) {
13 case kProtoDeprecatedSPDY2: 13 case kProtoDeprecatedSPDY2:
14 return SPDY2; 14 return SPDY2;
15 case kProtoSPDY3: 15 case kProtoSPDY3:
16 case kProtoSPDY31: 16 case kProtoSPDY31:
17 return SPDY3; 17 return SPDY3;
18 case kProtoSPDY4: 18 case kProtoSPDY4_14:
19 case kProtoSPDY4_15:
19 return SPDY4; 20 return SPDY4;
20 case kProtoUnknown: 21 case kProtoUnknown:
21 case kProtoHTTP11: 22 case kProtoHTTP11:
22 case kProtoQUIC1SPDY3: 23 case kProtoQUIC1SPDY3:
23 break; 24 break;
24 } 25 }
25 NOTREACHED(); 26 NOTREACHED();
26 return SPDY2; 27 return SPDY2;
27 } 28 }
28 29
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 control_frame_fields_->stream_id = stream_id; 70 control_frame_fields_->stream_id = stream_id;
70 control_frame_fields_->associated_stream_id = associated_stream_id; 71 control_frame_fields_->associated_stream_id = associated_stream_id;
71 control_frame_fields_->priority = priority; 72 control_frame_fields_->priority = priority;
72 control_frame_fields_->fin = fin; 73 control_frame_fields_->fin = fin;
73 control_frame_fields_->unidirectional = unidirectional; 74 control_frame_fields_->unidirectional = unidirectional;
74 75
75 InitHeaderStreaming(stream_id); 76 InitHeaderStreaming(stream_id);
76 } 77 }
77 78
78 void BufferedSpdyFramer::OnHeaders(SpdyStreamId stream_id, 79 void BufferedSpdyFramer::OnHeaders(SpdyStreamId stream_id,
80 bool has_priority,
81 SpdyPriority priority,
79 bool fin, 82 bool fin,
80 bool end) { 83 bool end) {
81 frames_received_++; 84 frames_received_++;
82 DCHECK(!control_frame_fields_.get()); 85 DCHECK(!control_frame_fields_.get());
83 control_frame_fields_.reset(new ControlFrameFields()); 86 control_frame_fields_.reset(new ControlFrameFields());
84 control_frame_fields_->type = HEADERS; 87 control_frame_fields_->type = HEADERS;
85 control_frame_fields_->stream_id = stream_id; 88 control_frame_fields_->stream_id = stream_id;
89 control_frame_fields_->has_priority = has_priority;
90 if (control_frame_fields_->has_priority) {
91 control_frame_fields_->priority = priority;
92 }
86 control_frame_fields_->fin = fin; 93 control_frame_fields_->fin = fin;
87 94
88 InitHeaderStreaming(stream_id); 95 InitHeaderStreaming(stream_id);
89 } 96 }
90 97
91 void BufferedSpdyFramer::OnSynReply(SpdyStreamId stream_id, 98 void BufferedSpdyFramer::OnSynReply(SpdyStreamId stream_id,
92 bool fin) { 99 bool fin) {
93 frames_received_++; 100 frames_received_++;
94 DCHECK(!control_frame_fields_.get()); 101 DCHECK(!control_frame_fields_.get());
95 control_frame_fields_.reset(new ControlFrameFields()); 102 control_frame_fields_.reset(new ControlFrameFields());
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 control_frame_fields_->unidirectional, 136 control_frame_fields_->unidirectional,
130 headers); 137 headers);
131 break; 138 break;
132 case SYN_REPLY: 139 case SYN_REPLY:
133 visitor_->OnSynReply(control_frame_fields_->stream_id, 140 visitor_->OnSynReply(control_frame_fields_->stream_id,
134 control_frame_fields_->fin, 141 control_frame_fields_->fin,
135 headers); 142 headers);
136 break; 143 break;
137 case HEADERS: 144 case HEADERS:
138 visitor_->OnHeaders(control_frame_fields_->stream_id, 145 visitor_->OnHeaders(control_frame_fields_->stream_id,
146 control_frame_fields_->has_priority,
147 control_frame_fields_->priority,
139 control_frame_fields_->fin, 148 control_frame_fields_->fin,
140 headers); 149 headers);
141 break; 150 break;
142 case PUSH_PROMISE: 151 case PUSH_PROMISE:
143 DCHECK_LT(SPDY3, protocol_version()); 152 DCHECK_LT(SPDY3, protocol_version());
144 visitor_->OnPushPromise(control_frame_fields_->stream_id, 153 visitor_->OnPushPromise(control_frame_fields_->stream_id,
145 control_frame_fields_->promised_stream_id, 154 control_frame_fields_->promised_stream_id,
146 headers); 155 headers);
147 break; 156 break;
148 default: 157 default:
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 SpdyStreamId last_accepted_stream_id, 348 SpdyStreamId last_accepted_stream_id,
340 SpdyGoAwayStatus status) const { 349 SpdyGoAwayStatus status) const {
341 SpdyGoAwayIR go_ir(last_accepted_stream_id, status, ""); 350 SpdyGoAwayIR go_ir(last_accepted_stream_id, status, "");
342 return spdy_framer_.SerializeGoAway(go_ir); 351 return spdy_framer_.SerializeGoAway(go_ir);
343 } 352 }
344 353
345 // TODO(jgraettinger): Eliminate uses of this method (prefer SpdyHeadersIR). 354 // TODO(jgraettinger): Eliminate uses of this method (prefer SpdyHeadersIR).
346 SpdyFrame* BufferedSpdyFramer::CreateHeaders( 355 SpdyFrame* BufferedSpdyFramer::CreateHeaders(
347 SpdyStreamId stream_id, 356 SpdyStreamId stream_id,
348 SpdyControlFlags flags, 357 SpdyControlFlags flags,
358 SpdyPriority priority,
349 const SpdyHeaderBlock* headers) { 359 const SpdyHeaderBlock* headers) {
350 SpdyHeadersIR headers_ir(stream_id); 360 SpdyHeadersIR headers_ir(stream_id);
351 headers_ir.set_fin((flags & CONTROL_FLAG_FIN) != 0); 361 headers_ir.set_fin((flags & CONTROL_FLAG_FIN) != 0);
362 if (flags & HEADERS_FLAG_PRIORITY) {
363 headers_ir.set_has_priority(true);
364 headers_ir.set_priority(priority);
365 }
352 headers_ir.set_name_value_block(*headers); 366 headers_ir.set_name_value_block(*headers);
353 return spdy_framer_.SerializeHeaders(headers_ir); 367 return spdy_framer_.SerializeHeaders(headers_ir);
354 } 368 }
355 369
356 // TODO(jgraettinger): Eliminate uses of this method (prefer 370 // TODO(jgraettinger): Eliminate uses of this method (prefer
357 // SpdyWindowUpdateIR). 371 // SpdyWindowUpdateIR).
358 SpdyFrame* BufferedSpdyFramer::CreateWindowUpdate( 372 SpdyFrame* BufferedSpdyFramer::CreateWindowUpdate(
359 SpdyStreamId stream_id, 373 SpdyStreamId stream_id,
360 uint32 delta_window_size) const { 374 uint32 delta_window_size) const {
361 SpdyWindowUpdateIR update_ir(stream_id, delta_window_size); 375 SpdyWindowUpdateIR update_ir(stream_id, delta_window_size);
(...skipping 27 matching lines...) Expand all
389 403
390 void BufferedSpdyFramer::InitHeaderStreaming(SpdyStreamId stream_id) { 404 void BufferedSpdyFramer::InitHeaderStreaming(SpdyStreamId stream_id) {
391 memset(header_buffer_, 0, kHeaderBufferSize); 405 memset(header_buffer_, 0, kHeaderBufferSize);
392 header_buffer_used_ = 0; 406 header_buffer_used_ = 0;
393 header_buffer_valid_ = true; 407 header_buffer_valid_ = true;
394 header_stream_id_ = stream_id; 408 header_stream_id_ = stream_id;
395 DCHECK_NE(header_stream_id_, SpdyFramer::kInvalidStream); 409 DCHECK_NE(header_stream_id_, SpdyFramer::kInvalidStream);
396 } 410 }
397 411
398 } // namespace net 412 } // namespace net
OLDNEW
« 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