Index: net/spdy/spdy_protocol.cc |
diff --git a/net/spdy/spdy_protocol.cc b/net/spdy/spdy_protocol.cc |
index 6b55b11ea945e09e34029e8c4d30dc430041d03a..1ab0d5bdcf40ba7af0e1ac81c54432daedb4e722 100644 |
--- a/net/spdy/spdy_protocol.cc |
+++ b/net/spdy/spdy_protocol.cc |
@@ -43,13 +43,19 @@ bool SpdyConstants::IsValidFrameType(SpdyMajorVersion version, |
return true; |
case SPDY4: |
case SPDY5: |
+ // Check for recognized extensions. |
+ if (frame_type_field == SerializeFrameType(version, ALTSVC) || |
+ frame_type_field == SerializeFrameType(version, BLOCKED)) { |
+ return true; |
+ } |
+ |
// DATA is the first valid frame. |
if (frame_type_field < SerializeFrameType(version, DATA)) { |
return false; |
} |
- // BLOCKED is the last valid frame. |
- if (frame_type_field > SerializeFrameType(version, BLOCKED)) { |
+ // CONTINUATION is the last valid frame. |
+ if (frame_type_field > SerializeFrameType(version, CONTINUATION)) { |
return false; |
} |
@@ -168,6 +174,7 @@ int SpdyConstants::SerializeFrameType(SpdyMajorVersion version, |
return 8; |
case CONTINUATION: |
return 9; |
+ // ALTSVC and BLOCKED are extensions. |
case ALTSVC: |
return 10; |
case BLOCKED: |