Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(448)

Side by Side Diff: net/spdy/spdy_framer.h

Issue 664803003: Update from chromium a8e7c94b1b79a0948d05a1fcfff53391d22ce37a (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/socket/ssl_client_socket_unittest.cc ('k') | net/spdy/spdy_framer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef NET_SPDY_SPDY_FRAMER_H_ 5 #ifndef NET_SPDY_SPDY_FRAMER_H_
6 #define NET_SPDY_SPDY_FRAMER_H_ 6 #define NET_SPDY_SPDY_FRAMER_H_
7 7
8 #include <list> 8 #include <list>
9 #include <map> 9 #include <map>
10 #include <memory> 10 #include <memory>
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 public: 329 public:
330 // SPDY states. 330 // SPDY states.
331 // TODO(mbelshe): Can we move these into the implementation 331 // TODO(mbelshe): Can we move these into the implementation
332 // and avoid exposing through the header. (Needed for test) 332 // and avoid exposing through the header. (Needed for test)
333 enum SpdyState { 333 enum SpdyState {
334 SPDY_ERROR, 334 SPDY_ERROR,
335 SPDY_RESET, 335 SPDY_RESET,
336 SPDY_AUTO_RESET, 336 SPDY_AUTO_RESET,
337 SPDY_READING_COMMON_HEADER, 337 SPDY_READING_COMMON_HEADER,
338 SPDY_CONTROL_FRAME_PAYLOAD, 338 SPDY_CONTROL_FRAME_PAYLOAD,
339 SPDY_READ_PADDING_LENGTH, 339 SPDY_READ_DATA_FRAME_PADDING_LENGTH,
340 SPDY_CONSUME_PADDING, 340 SPDY_CONSUME_PADDING,
341 SPDY_IGNORE_REMAINING_PAYLOAD, 341 SPDY_IGNORE_REMAINING_PAYLOAD,
342 SPDY_FORWARD_STREAM_FRAME, 342 SPDY_FORWARD_STREAM_FRAME,
343 SPDY_CONTROL_FRAME_BEFORE_HEADER_BLOCK, 343 SPDY_CONTROL_FRAME_BEFORE_HEADER_BLOCK,
344 SPDY_CONTROL_FRAME_HEADER_BLOCK, 344 SPDY_CONTROL_FRAME_HEADER_BLOCK,
345 SPDY_GOAWAY_FRAME_PAYLOAD, 345 SPDY_GOAWAY_FRAME_PAYLOAD,
346 SPDY_RST_STREAM_FRAME_PAYLOAD, 346 SPDY_RST_STREAM_FRAME_PAYLOAD,
347 SPDY_SETTINGS_FRAME_PAYLOAD, 347 SPDY_SETTINGS_FRAME_PAYLOAD,
348 SPDY_ALTSVC_FRAME_PAYLOAD, 348 SPDY_ALTSVC_FRAME_PAYLOAD,
349 }; 349 };
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, ControlFrameSizesAreValidated); 594 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, ControlFrameSizesAreValidated);
595 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, HeaderCompression); 595 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, HeaderCompression);
596 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, DecompressUncompressedFrame); 596 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, DecompressUncompressedFrame);
597 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, ExpandBuffer_HeapSmash); 597 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, ExpandBuffer_HeapSmash);
598 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, HugeHeaderBlock); 598 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, HugeHeaderBlock);
599 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, UnclosedStreamDataCompressors); 599 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, UnclosedStreamDataCompressors);
600 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, 600 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest,
601 UnclosedStreamDataCompressorsOneByteAtATime); 601 UnclosedStreamDataCompressorsOneByteAtATime);
602 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, 602 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest,
603 UncompressLargerThanFrameBufferInitialSize); 603 UncompressLargerThanFrameBufferInitialSize);
604 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest,
605 CreatePushPromiseThenContinuationUncompressed);
604 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, ReadLargeSettingsFrame); 606 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, ReadLargeSettingsFrame);
605 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, 607 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest,
606 ReadLargeSettingsFrameInSmallChunks); 608 ReadLargeSettingsFrameInSmallChunks);
607 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, ControlFrameAtMaxSizeLimit); 609 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, ControlFrameAtMaxSizeLimit);
608 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, ControlFrameTooLarge); 610 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, ControlFrameTooLarge);
609 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, 611 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest,
610 TooLargeHeadersFrameUsesContinuation); 612 TooLargeHeadersFrameUsesContinuation);
611 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest, 613 FRIEND_TEST_ALL_PREFIXES(SpdyFramerTest,
612 TooLargePushPromiseFrameUsesContinuation); 614 TooLargePushPromiseFrameUsesContinuation);
613 friend class net::HttpNetworkLayer; // This is temporary for the server. 615 friend class net::HttpNetworkLayer; // This is temporary for the server.
(...skipping 13 matching lines...) Expand all
627 // consumed from the data. 629 // consumed from the data.
628 size_t ProcessCommonHeader(const char* data, size_t len); 630 size_t ProcessCommonHeader(const char* data, size_t len);
629 size_t ProcessControlFramePayload(const char* data, size_t len); 631 size_t ProcessControlFramePayload(const char* data, size_t len);
630 size_t ProcessControlFrameBeforeHeaderBlock(const char* data, size_t len); 632 size_t ProcessControlFrameBeforeHeaderBlock(const char* data, size_t len);
631 // HPACK data is re-encoded as SPDY3 and re-entrantly delivered through 633 // HPACK data is re-encoded as SPDY3 and re-entrantly delivered through
632 // |ProcessControlFrameHeaderBlock()|. |is_hpack_header_block| controls 634 // |ProcessControlFrameHeaderBlock()|. |is_hpack_header_block| controls
633 // whether data is treated as HPACK- vs SPDY3-encoded. 635 // whether data is treated as HPACK- vs SPDY3-encoded.
634 size_t ProcessControlFrameHeaderBlock(const char* data, 636 size_t ProcessControlFrameHeaderBlock(const char* data,
635 size_t len, 637 size_t len,
636 bool is_hpack_header_block); 638 bool is_hpack_header_block);
637 size_t ProcessFramePaddingLength(const char* data, size_t len); 639 size_t ProcessDataFramePaddingLength(const char* data, size_t len);
638 size_t ProcessFramePadding(const char* data, size_t len); 640 size_t ProcessFramePadding(const char* data, size_t len);
639 size_t ProcessDataFramePayload(const char* data, size_t len); 641 size_t ProcessDataFramePayload(const char* data, size_t len);
640 size_t ProcessGoAwayFramePayload(const char* data, size_t len); 642 size_t ProcessGoAwayFramePayload(const char* data, size_t len);
641 size_t ProcessRstStreamFramePayload(const char* data, size_t len); 643 size_t ProcessRstStreamFramePayload(const char* data, size_t len);
642 size_t ProcessSettingsFramePayload(const char* data, size_t len); 644 size_t ProcessSettingsFramePayload(const char* data, size_t len);
643 size_t ProcessAltSvcFramePayload(const char* data, size_t len); 645 size_t ProcessAltSvcFramePayload(const char* data, size_t len);
644 size_t ProcessIgnoredControlFramePayload(/*const char* data,*/ size_t len); 646 size_t ProcessIgnoredControlFramePayload(/*const char* data,*/ size_t len);
645 647
646 // TODO(jgraettinger): To be removed with migration to 648 // TODO(jgraettinger): To be removed with migration to
647 // SpdyHeadersHandlerInterface. 649 // SpdyHeadersHandlerInterface.
(...skipping 17 matching lines...) Expand all
665 667
666 // Get (and lazily initialize) the HPACK state. 668 // Get (and lazily initialize) the HPACK state.
667 HpackEncoder* GetHpackEncoder(); 669 HpackEncoder* GetHpackEncoder();
668 HpackDecoder* GetHpackDecoder(); 670 HpackDecoder* GetHpackDecoder();
669 671
670 size_t GetNumberRequiredContinuationFrames(size_t size); 672 size_t GetNumberRequiredContinuationFrames(size_t size);
671 673
672 void WritePayloadWithContinuation(SpdyFrameBuilder* builder, 674 void WritePayloadWithContinuation(SpdyFrameBuilder* builder,
673 const std::string& hpack_encoding, 675 const std::string& hpack_encoding,
674 SpdyStreamId stream_id, 676 SpdyStreamId stream_id,
675 SpdyFrameType type); 677 SpdyFrameType type,
678 int padding_payload_len);
676 679
677 private: 680 private:
678 // Deliver the given control frame's uncompressed headers block to the 681 // Deliver the given control frame's uncompressed headers block to the
679 // visitor in chunks. Returns true if the visitor has accepted all of the 682 // visitor in chunks. Returns true if the visitor has accepted all of the
680 // chunks. 683 // chunks.
681 bool IncrementallyDeliverControlFrameHeaderData(SpdyStreamId stream_id, 684 bool IncrementallyDeliverControlFrameHeaderData(SpdyStreamId stream_id,
682 const char* data, 685 const char* data,
683 size_t len); 686 size_t len);
684 687
685 // Utility to copy the given data block to the current frame buffer, up 688 // Utility to copy the given data block to the current frame buffer, up
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 // If a HEADERS frame is followed by a CONTINUATION frame, the FIN/END_STREAM 819 // If a HEADERS frame is followed by a CONTINUATION frame, the FIN/END_STREAM
817 // flag is still carried in the HEADERS frame. If it's set, flip this so that 820 // flag is still carried in the HEADERS frame. If it's set, flip this so that
818 // we know to terminate the stream when the entire header block has been 821 // we know to terminate the stream when the entire header block has been
819 // processed. 822 // processed.
820 bool end_stream_when_done_; 823 bool end_stream_when_done_;
821 }; 824 };
822 825
823 } // namespace net 826 } // namespace net
824 827
825 #endif // NET_SPDY_SPDY_FRAMER_H_ 828 #endif // NET_SPDY_SPDY_FRAMER_H_
OLDNEW
« no previous file with comments | « net/socket/ssl_client_socket_unittest.cc ('k') | net/spdy/spdy_framer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698