| 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 |