Index: net/spdy/spdy_session.cc |
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc |
index fede4ce89f8d21e53dff4dcad45051d6a4336eb3..5e2860651c771bb560d46972d596d564be27e2e6 100644 |
--- a/net/spdy/spdy_session.cc |
+++ b/net/spdy/spdy_session.cc |
@@ -53,6 +53,21 @@ const SpdyStreamId kFirstStreamId = 1; |
// Minimum seconds that unclaimed pushed streams will be kept in memory. |
const int kMinPushedStreamLifetimeSeconds = 300; |
+int NPNToSpdyVersion(NextProto next_proto) { |
+ switch (next_proto) { |
+ case kProtoSPDY2: |
+ return kSpdyVersion2; |
+ case kProtoSPDY3: |
+ case kProtoSPDY31: |
+ return kSpdyVersion3; |
+ case kProtoSPDY4a1: |
+ return kSpdyVersion4; |
+ default: |
+ NOTREACHED(); |
+ } |
+ return kSpdyVersion2; |
+} |
+ |
base::Value* NetLogSpdySynCallback(const SpdyHeaderBlock* headers, |
bool fin, |
bool unidirectional, |
@@ -404,10 +419,7 @@ net::Error SpdySession::InitializeWithSocket( |
host_port_pair().ToString())); |
} |
- DCHECK_GE(protocol, kProtoSPDY2); |
- DCHECK_LE(protocol, kProtoSPDY31); |
- int version = (protocol >= kProtoSPDY3) ? kSpdyVersion3 : kSpdyVersion2; |
- if (protocol >= kProtoSPDY31) { |
+ if (protocol >= kProtoSPDY4a1) { |
flow_control_state_ = FLOW_CONTROL_STREAM_AND_SESSION; |
session_send_window_size_ = kSpdySessionInitialWindowSize; |
session_recv_window_size_ = kSpdySessionInitialWindowSize; |
@@ -417,8 +429,8 @@ net::Error SpdySession::InitializeWithSocket( |
flow_control_state_ = FLOW_CONTROL_NONE; |
} |
- buffered_spdy_framer_.reset(new BufferedSpdyFramer(version, |
- enable_compression_)); |
+ buffered_spdy_framer_.reset( |
+ new BufferedSpdyFramer(NPNToSpdyVersion(protocol), enable_compression_)); |
buffered_spdy_framer_->set_visitor(this); |
SendInitialSettings(); |
UMA_HISTOGRAM_ENUMERATION("Net.SpdyVersion", protocol, kProtoMaximumVersion); |