OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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_deframer_visitor.h" | 5 #include "net/spdy/spdy_deframer_visitor.h" |
6 | 6 |
7 #include <stdlib.h> | 7 #include <stdlib.h> |
8 #include <string.h> | 8 #include <string.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 bool fin, | 188 bool fin, |
189 bool unidirectional) override; | 189 bool unidirectional) override; |
190 bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override; | 190 bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override; |
191 void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override; | 191 void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override; |
192 | 192 |
193 // Callbacks defined in SpdyHeadersHandlerInterface. | 193 // Callbacks defined in SpdyHeadersHandlerInterface. |
194 | 194 |
195 void OnHeaderBlockStart() override; | 195 void OnHeaderBlockStart() override; |
196 void OnHeader(StringPiece key, StringPiece value) override; | 196 void OnHeader(StringPiece key, StringPiece value) override; |
197 void OnHeaderBlockEnd(size_t header_bytes_parsed) override; | 197 void OnHeaderBlockEnd(size_t header_bytes_parsed) override; |
| 198 void OnHeaderBlockEnd(size_t header_bytes_parsed, |
| 199 size_t compressed_header_bytes_parsed) override; |
198 | 200 |
199 protected: | 201 protected: |
200 void AtDataEnd(); | 202 void AtDataEnd(); |
201 void AtGoAwayEnd(); | 203 void AtGoAwayEnd(); |
202 void AtHeadersEnd(); | 204 void AtHeadersEnd(); |
203 void AtPushPromiseEnd(); | 205 void AtPushPromiseEnd(); |
204 | 206 |
205 // Per-physical frame state. | 207 // Per-physical frame state. |
206 // Frame type of the frame currently being processed. | 208 // Frame type of the frame currently being processed. |
207 Http2FrameType frame_type_ = UNSET; | 209 Http2FrameType frame_type_ = UNSET; |
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
835 void SpdyTestDeframerImpl::OnHeaderBlockEnd(size_t header_bytes_parsed) { | 837 void SpdyTestDeframerImpl::OnHeaderBlockEnd(size_t header_bytes_parsed) { |
836 CHECK(headers_); | 838 CHECK(headers_); |
837 CHECK(frame_type_ == HEADERS || frame_type_ == CONTINUATION || | 839 CHECK(frame_type_ == HEADERS || frame_type_ == CONTINUATION || |
838 frame_type_ == PUSH_PROMISE) | 840 frame_type_ == PUSH_PROMISE) |
839 << " frame_type_=" << Http2FrameTypeToString(frame_type_); | 841 << " frame_type_=" << Http2FrameTypeToString(frame_type_); |
840 CHECK(end_); | 842 CHECK(end_); |
841 CHECK(!got_hpack_end_); | 843 CHECK(!got_hpack_end_); |
842 got_hpack_end_ = true; | 844 got_hpack_end_ = true; |
843 } | 845 } |
844 | 846 |
| 847 void SpdyTestDeframerImpl::OnHeaderBlockEnd( |
| 848 size_t /* header_bytes_parsed */, |
| 849 size_t /* compressed_header_bytes_parsed */) { |
| 850 CHECK(headers_); |
| 851 CHECK(frame_type_ == HEADERS || frame_type_ == CONTINUATION || |
| 852 frame_type_ == PUSH_PROMISE) |
| 853 << " frame_type_=" << Http2FrameTypeToString(frame_type_); |
| 854 CHECK(end_); |
| 855 CHECK(!got_hpack_end_); |
| 856 got_hpack_end_ = true; |
| 857 } |
| 858 |
845 class LoggingSpdyDeframerDelegate : public SpdyDeframerVisitorInterface { | 859 class LoggingSpdyDeframerDelegate : public SpdyDeframerVisitorInterface { |
846 public: | 860 public: |
847 explicit LoggingSpdyDeframerDelegate( | 861 explicit LoggingSpdyDeframerDelegate( |
848 std::unique_ptr<SpdyDeframerVisitorInterface> wrapped) | 862 std::unique_ptr<SpdyDeframerVisitorInterface> wrapped) |
849 : wrapped_(std::move(wrapped)) { | 863 : wrapped_(std::move(wrapped)) { |
850 if (!wrapped_) { | 864 if (!wrapped_) { |
851 wrapped_ = MakeUnique<SpdyDeframerVisitorInterface>(); | 865 wrapped_ = MakeUnique<SpdyDeframerVisitorInterface>(); |
852 } | 866 } |
853 } | 867 } |
854 ~LoggingSpdyDeframerDelegate() override {} | 868 ~LoggingSpdyDeframerDelegate() override {} |
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1089 // The SpdyFramer will not process any more data at this point. | 1103 // The SpdyFramer will not process any more data at this point. |
1090 void DeframerCallbackCollector::OnError(SpdyFramer* framer, | 1104 void DeframerCallbackCollector::OnError(SpdyFramer* framer, |
1091 SpdyTestDeframer* deframer) { | 1105 SpdyTestDeframer* deframer) { |
1092 CollectedFrame cf; | 1106 CollectedFrame cf; |
1093 cf.error_reported = true; | 1107 cf.error_reported = true; |
1094 collected_frames_->push_back(std::move(cf)); | 1108 collected_frames_->push_back(std::move(cf)); |
1095 } | 1109 } |
1096 | 1110 |
1097 } // namespace test | 1111 } // namespace test |
1098 } // namespace net | 1112 } // namespace net |
OLD | NEW |