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

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

Issue 13845012: [SPDY] Add flag and about:flags entry for SPDY/4 alpha 1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/spdy/spdy_session.h ('k') | net/spdy/spdy_session_spdy3_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/spdy_session.h" 5 #include "net/spdy/spdy_session.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 const int kReadBufferSize = 8 * 1024; 45 const int kReadBufferSize = 8 * 1024;
46 const int kDefaultConnectionAtRiskOfLossSeconds = 10; 46 const int kDefaultConnectionAtRiskOfLossSeconds = 10;
47 const int kHungIntervalSeconds = 10; 47 const int kHungIntervalSeconds = 10;
48 48
49 // Always start at 1 for the first stream id. 49 // Always start at 1 for the first stream id.
50 const SpdyStreamId kFirstStreamId = 1; 50 const SpdyStreamId kFirstStreamId = 1;
51 51
52 // Minimum seconds that unclaimed pushed streams will be kept in memory. 52 // Minimum seconds that unclaimed pushed streams will be kept in memory.
53 const int kMinPushedStreamLifetimeSeconds = 300; 53 const int kMinPushedStreamLifetimeSeconds = 300;
54 54
55 int NPNToSpdyVersion(NextProto next_proto) {
56 switch (next_proto) {
57 case kProtoSPDY2:
58 return kSpdyVersion2;
59 case kProtoSPDY3:
60 case kProtoSPDY31:
61 return kSpdyVersion3;
62 case kProtoSPDY4a1:
63 return kSpdyVersion4;
64 default:
65 NOTREACHED();
66 }
67 return kSpdyVersion2;
68 }
69
55 base::Value* NetLogSpdySynCallback(const SpdyHeaderBlock* headers, 70 base::Value* NetLogSpdySynCallback(const SpdyHeaderBlock* headers,
56 bool fin, 71 bool fin,
57 bool unidirectional, 72 bool unidirectional,
58 SpdyStreamId stream_id, 73 SpdyStreamId stream_id,
59 SpdyStreamId associated_stream, 74 SpdyStreamId associated_stream,
60 NetLog::LogLevel /* log_level */) { 75 NetLog::LogLevel /* log_level */) {
61 base::DictionaryValue* dict = new base::DictionaryValue(); 76 base::DictionaryValue* dict = new base::DictionaryValue();
62 base::ListValue* headers_list = new base::ListValue(); 77 base::ListValue* headers_list = new base::ListValue();
63 for (SpdyHeaderBlock::const_iterator it = headers->begin(); 78 for (SpdyHeaderBlock::const_iterator it = headers->begin();
64 it != headers->end(); ++it) { 79 it != headers->end(); ++it) {
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 434
420 SSLClientSocket* ssl_socket = GetSSLClientSocket(); 435 SSLClientSocket* ssl_socket = GetSSLClientSocket();
421 if (ssl_socket && ssl_socket->WasChannelIDSent()) { 436 if (ssl_socket && ssl_socket->WasChannelIDSent()) {
422 // According to the SPDY spec, the credential associated with the TLS 437 // According to the SPDY spec, the credential associated with the TLS
423 // connection is stored in slot[1]. 438 // connection is stored in slot[1].
424 credential_state_.SetHasCredential(GURL("https://" + 439 credential_state_.SetHasCredential(GURL("https://" +
425 host_port_pair().ToString())); 440 host_port_pair().ToString()));
426 } 441 }
427 442
428 DCHECK_GE(protocol, kProtoSPDY2); 443 DCHECK_GE(protocol, kProtoSPDY2);
429 DCHECK_LE(protocol, kProtoSPDY31); 444 DCHECK_LE(protocol, kProtoSPDY4a1);
430 int version = (protocol >= kProtoSPDY3) ? kSpdyVersion3 : kSpdyVersion2;
431 if (protocol >= kProtoSPDY31) { 445 if (protocol >= kProtoSPDY31) {
432 flow_control_state_ = FLOW_CONTROL_STREAM_AND_SESSION; 446 flow_control_state_ = FLOW_CONTROL_STREAM_AND_SESSION;
433 session_send_window_size_ = kSpdySessionInitialWindowSize; 447 session_send_window_size_ = kSpdySessionInitialWindowSize;
434 session_recv_window_size_ = kSpdySessionInitialWindowSize; 448 session_recv_window_size_ = kSpdySessionInitialWindowSize;
435 } else if (protocol >= kProtoSPDY3) { 449 } else if (protocol >= kProtoSPDY3) {
436 flow_control_state_ = FLOW_CONTROL_STREAM; 450 flow_control_state_ = FLOW_CONTROL_STREAM;
437 } else { 451 } else {
438 flow_control_state_ = FLOW_CONTROL_NONE; 452 flow_control_state_ = FLOW_CONTROL_NONE;
439 } 453 }
440 454
441 buffered_spdy_framer_.reset(new BufferedSpdyFramer(version, 455 buffered_spdy_framer_.reset(
442 enable_compression_)); 456 new BufferedSpdyFramer(NPNToSpdyVersion(protocol), enable_compression_));
443 buffered_spdy_framer_->set_visitor(this); 457 buffered_spdy_framer_->set_visitor(this);
444 SendInitialSettings(); 458 SendInitialSettings();
445 UMA_HISTOGRAM_ENUMERATION("Net.SpdyVersion", protocol, kProtoMaximumVersion); 459 UMA_HISTOGRAM_ENUMERATION("Net.SpdyVersion", protocol, kProtoMaximumVersion);
446 460
447 if (flow_control_state_ == FLOW_CONTROL_STREAM_AND_SESSION) { 461 if (flow_control_state_ == FLOW_CONTROL_STREAM_AND_SESSION) {
448 // Bump up the receive window size to the real initial value. This 462 // Bump up the receive window size to the real initial value. This
449 // has to go here since the WINDOW_UPDATE frame sent by 463 // has to go here since the WINDOW_UPDATE frame sent by
450 // IncreaseRecvWindowSize() call uses |buffered_spdy_framer_|. 464 // IncreaseRecvWindowSize() call uses |buffered_spdy_framer_|.
451 DCHECK_GT(kDefaultInitialRecvWindowSize, session_recv_window_size_); 465 DCHECK_GT(kDefaultInitialRecvWindowSize, session_recv_window_size_);
452 // This condition implies that |kDefaultInitialRecvWindowSize| - 466 // This condition implies that |kDefaultInitialRecvWindowSize| -
(...skipping 1837 matching lines...) Expand 10 before | Expand all | Expand 10 after
2290 } 2304 }
2291 2305
2292 session_recv_window_size_ -= delta_window_size; 2306 session_recv_window_size_ -= delta_window_size;
2293 net_log_.AddEvent( 2307 net_log_.AddEvent(
2294 NetLog::TYPE_SPDY_SESSION_UPDATE_RECV_WINDOW, 2308 NetLog::TYPE_SPDY_SESSION_UPDATE_RECV_WINDOW,
2295 base::Bind(&NetLogSpdySessionWindowUpdateCallback, 2309 base::Bind(&NetLogSpdySessionWindowUpdateCallback,
2296 -delta_window_size, session_recv_window_size_)); 2310 -delta_window_size, session_recv_window_size_));
2297 } 2311 }
2298 2312
2299 } // namespace net 2313 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_session.h ('k') | net/spdy/spdy_session_spdy3_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698