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

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

Issue 2130153002: Clean up max_frame_size related constants, move storage of setting to the framer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix a typo in net/spdy/spdy_protocol.h. Created 4 years, 5 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/spdy/spdy_frame_builder.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 <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 // Used only in log messages. 512 // Used only in log messages.
513 void set_display_protocol(const std::string& protocol) { 513 void set_display_protocol(const std::string& protocol) {
514 display_protocol_ = protocol; 514 display_protocol_ = protocol;
515 } 515 }
516 516
517 void set_max_decode_buffer_size_bytes(size_t max_decode_buffer_size_bytes) { 517 void set_max_decode_buffer_size_bytes(size_t max_decode_buffer_size_bytes) {
518 GetHpackDecoder()->set_max_decode_buffer_size_bytes( 518 GetHpackDecoder()->set_max_decode_buffer_size_bytes(
519 max_decode_buffer_size_bytes); 519 max_decode_buffer_size_bytes);
520 } 520 }
521 521
522 size_t send_frame_size_limit() const { return send_frame_size_limit_; }
523
524 void set_send_frame_size_limit(size_t send_frame_size_limit) {
525 send_frame_size_limit_ = send_frame_size_limit;
526 }
527
522 void set_recv_frame_size_limit(size_t recv_frame_size_limit) { 528 void set_recv_frame_size_limit(size_t recv_frame_size_limit) {
523 recv_frame_size_limit_ = recv_frame_size_limit; 529 recv_frame_size_limit_ = recv_frame_size_limit;
524 } 530 }
525 531
526 void SetDecoderHeaderTableDebugVisitor( 532 void SetDecoderHeaderTableDebugVisitor(
527 std::unique_ptr<HpackHeaderTable::DebugVisitorInterface> visitor); 533 std::unique_ptr<HpackHeaderTable::DebugVisitorInterface> visitor);
528 534
529 void SetEncoderHeaderTableDebugVisitor( 535 void SetEncoderHeaderTableDebugVisitor(
530 std::unique_ptr<HpackHeaderTable::DebugVisitorInterface> visitor); 536 std::unique_ptr<HpackHeaderTable::DebugVisitorInterface> visitor);
531 537
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
732 // frame header size (SYN_STREAM) is sufficient; all remaining control 738 // frame header size (SYN_STREAM) is sufficient; all remaining control
733 // frame data is streamed to the visitor. 739 // frame data is streamed to the visitor.
734 static const size_t kControlFrameBufferSize; 740 static const size_t kControlFrameBufferSize;
735 741
736 // The maximum size of the control frames that we send, including the size of 742 // The maximum size of the control frames that we send, including the size of
737 // the header. This limit is arbitrary. We can enforce it here or at the 743 // the header. This limit is arbitrary. We can enforce it here or at the
738 // application layer. We chose the framing layer, but this can be changed (or 744 // application layer. We chose the framing layer, but this can be changed (or
739 // removed) if necessary later down the line. 745 // removed) if necessary later down the line.
740 // TODO(diannahu): Rename to make it clear that this limit is for sending. 746 // TODO(diannahu): Rename to make it clear that this limit is for sending.
741 static const size_t kMaxControlFrameSize; 747 static const size_t kMaxControlFrameSize;
748 // The maximum size for the payload of DATA frames to send.
749 static const size_t kMaxDataPayloadSendSize;
742 750
743 SpdyState state_; 751 SpdyState state_;
744 SpdyState previous_state_; 752 SpdyState previous_state_;
745 SpdyError error_code_; 753 SpdyError error_code_;
746 754
747 // Note that for DATA frame, remaining_data_length_ is sum of lengths of 755 // Note that for DATA frame, remaining_data_length_ is sum of lengths of
748 // frame header, padding length field (optional), data payload (optional) and 756 // frame header, padding length field (optional), data payload (optional) and
749 // padding payload (optional). 757 // padding payload (optional).
750 size_t remaining_data_length_; 758 size_t remaining_data_length_;
751 759
752 // The length (in bytes) of the padding payload to be processed. 760 // The length (in bytes) of the padding payload to be processed.
753 size_t remaining_padding_payload_length_; 761 size_t remaining_padding_payload_length_;
754 762
755 // The number of bytes remaining to read from the current control frame's 763 // The number of bytes remaining to read from the current control frame's
756 // headers. Note that header data blocks (for control types that have them) 764 // headers. Note that header data blocks (for control types that have them)
757 // are part of the frame's payload, and not the frame's headers. 765 // are part of the frame's payload, and not the frame's headers.
758 size_t remaining_control_header_; 766 size_t remaining_control_header_;
759 767
760 // The limit on HTTP/2 payload size as specified in the 768 // The limit on the size of sent HTTP/2 payloads as specified in the
761 // SETTINGS_MAX_FRAME_SIZE advertised to peer 769 // SETTINGS_MAX_FRAME_SIZE received from peer.
770 size_t send_frame_size_limit_ = kSpdyInitialFrameSizeLimit;
771
772 // The limit on the size of received HTTP/2 payloads as specified in the
773 // SETTINGS_MAX_FRAME_SIZE advertised to peer.
762 size_t recv_frame_size_limit_ = kSpdyInitialFrameSizeLimit; 774 size_t recv_frame_size_limit_ = kSpdyInitialFrameSizeLimit;
763 775
764 CharBuffer current_frame_buffer_; 776 CharBuffer current_frame_buffer_;
765 777
766 // The type of the frame currently being read. 778 // The type of the frame currently being read.
767 SpdyFrameType current_frame_type_; 779 SpdyFrameType current_frame_type_;
768 780
769 // The total length of the frame currently being read, including frame header. 781 // The total length of the frame currently being read, including frame header.
770 uint32_t current_frame_length_; 782 uint32_t current_frame_length_;
771 783
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
837 // rather than reading all available input. 849 // rather than reading all available input.
838 bool process_single_input_frame_ = false; 850 bool process_single_input_frame_ = false;
839 851
840 bool enforce_max_frame_size_ = 852 bool enforce_max_frame_size_ =
841 FLAGS_chromium_http2_flag_enforce_max_frame_size; 853 FLAGS_chromium_http2_flag_enforce_max_frame_size;
842 }; 854 };
843 855
844 } // namespace net 856 } // namespace net
845 857
846 #endif // NET_SPDY_SPDY_FRAMER_H_ 858 #endif // NET_SPDY_SPDY_FRAMER_H_
OLDNEW
« no previous file with comments | « net/spdy/spdy_frame_builder.cc ('k') | net/spdy/spdy_framer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698