Index: net/spdy/spdy_session.cc |
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc |
index d9a5108b362da4f24a50d4a1bf5fc4a0dd400b70..08d838a0253c993a03b72a2f38a3aaa68038c62b 100644 |
--- a/net/spdy/spdy_session.cc |
+++ b/net/spdy/spdy_session.cc |
@@ -398,6 +398,10 @@ SpdyProtocolErrorDetails MapRstStreamStatusToProtocolError( |
return STATUS_CODE_CONNECT_ERROR; |
case RST_STREAM_ENHANCE_YOUR_CALM: |
return STATUS_CODE_ENHANCE_YOUR_CALM; |
+ case RST_STREAM_INADEQUATE_SECURITY: |
+ return STATUS_CODE_INADEQUATE_SECURITY; |
+ case RST_STREAM_HTTP_1_1_REQUIRED: |
+ return STATUS_CODE_HTTP_1_1_REQUIRED; |
default: |
NOTREACHED(); |
return static_cast<SpdyProtocolErrorDetails>(-1); |
@@ -721,7 +725,8 @@ void SpdySession::InitializeWithSocket( |
DCHECK_GE(protocol_, kProtoSPDYMinimumVersion); |
DCHECK_LE(protocol_, kProtoSPDYMaximumVersion); |
- if (protocol_ == kProtoSPDY4) |
+ if ((protocol_ >= kProtoSPDY4MinimumVersion) && |
+ (protocol_ <= kProtoSPDY4MaximumVersion)) |
send_connection_header_prefix_ = true; |
if (protocol_ >= kProtoSPDY31) { |
@@ -741,7 +746,7 @@ void SpdySession::InitializeWithSocket( |
buffered_spdy_framer_->set_debug_visitor(this); |
UMA_HISTOGRAM_ENUMERATION( |
"Net.SpdyVersion2", |
- protocol_ - kProtoSPDYMinimumVersion, |
+ protocol_ - kProtoSPDYHistogramOffset, |
kProtoSPDYMaximumVersion - kProtoSPDYMinimumVersion + 1); |
net_log_.AddEvent(NetLog::TYPE_SPDY_SESSION_INITIALIZED, |
@@ -2205,11 +2210,7 @@ void SpdySession::OnSynStream(SpdyStreamId stream_id, |
const SpdyHeaderBlock& headers) { |
CHECK(in_io_loop_); |
- if (GetProtocolVersion() >= SPDY4) { |
- DCHECK_EQ(0u, associated_stream_id); |
- OnHeaders(stream_id, fin, headers); |
- return; |
- } |
+ DCHECK_LE(GetProtocolVersion(), SPDY3); |
base::Time response_time = base::Time::Now(); |
base::TimeTicks recv_first_byte_time = time_func_(); |
@@ -2332,6 +2333,8 @@ void SpdySession::OnSynReply(SpdyStreamId stream_id, |
} |
void SpdySession::OnHeaders(SpdyStreamId stream_id, |
+ bool has_priority, |
+ SpdyPriority priority, |
bool fin, |
const SpdyHeaderBlock& headers) { |
CHECK(in_io_loop_); |
@@ -2459,8 +2462,8 @@ void SpdySession::OnPing(SpdyPingId unique_id, bool is_ack) { |
base::Bind(&NetLogSpdyPingCallback, unique_id, is_ack, "received")); |
// Send response to a PING from server. |
- if ((protocol_ >= kProtoSPDY4 && !is_ack) || |
- (protocol_ < kProtoSPDY4 && unique_id % 2 == 0)) { |
+ if ((protocol_ >= kProtoSPDY4MinimumVersion && !is_ack) || |
+ (protocol_ < kProtoSPDY4MinimumVersion && unique_id % 2 == 0)) { |
WritePingFrame(unique_id, true); |
return; |
} |
@@ -2746,7 +2749,8 @@ void SpdySession::SendInitialData() { |
DCHECK(enable_sending_initial_data_); |
if (send_connection_header_prefix_) { |
- DCHECK_EQ(protocol_, kProtoSPDY4); |
+ DCHECK_GE(protocol_, kProtoSPDY4MinimumVersion); |
+ DCHECK_LE(protocol_, kProtoSPDY4MaximumVersion); |
scoped_ptr<SpdyFrame> connection_header_prefix_frame( |
new SpdyFrame(const_cast<char*>(kHttp2ConnectionHeaderPrefix), |
kHttp2ConnectionHeaderPrefixSize, |