OLD | NEW |
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_SESSION_H_ | 5 #ifndef NET_SPDY_SPDY_SESSION_H_ |
6 #define NET_SPDY_SPDY_SESSION_H_ | 6 #define NET_SPDY_SPDY_SESSION_H_ |
7 | 7 |
| 8 #include <stdint.h> |
| 9 |
8 #include <deque> | 10 #include <deque> |
9 #include <map> | 11 #include <map> |
10 #include <set> | 12 #include <set> |
11 #include <string> | 13 #include <string> |
12 | 14 |
13 #include "base/basictypes.h" | |
14 #include "base/gtest_prod_util.h" | 15 #include "base/gtest_prod_util.h" |
| 16 #include "base/macros.h" |
15 #include "base/memory/ref_counted.h" | 17 #include "base/memory/ref_counted.h" |
16 #include "base/memory/scoped_ptr.h" | 18 #include "base/memory/scoped_ptr.h" |
17 #include "base/memory/weak_ptr.h" | 19 #include "base/memory/weak_ptr.h" |
18 #include "base/time/time.h" | 20 #include "base/time/time.h" |
19 #include "net/base/io_buffer.h" | 21 #include "net/base/io_buffer.h" |
20 #include "net/base/load_states.h" | 22 #include "net/base/load_states.h" |
21 #include "net/base/net_errors.h" | 23 #include "net/base/net_errors.h" |
22 #include "net/base/net_export.h" | 24 #include "net/base/net_export.h" |
23 #include "net/base/request_priority.h" | 25 #include "net/base/request_priority.h" |
24 #include "net/socket/client_socket_handle.h" | 26 #include "net/socket/client_socket_handle.h" |
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 LoadState GetLoadState() const; | 359 LoadState GetLoadState() const; |
358 | 360 |
359 // Fills SSL info in |ssl_info| and returns true when SSL is in use. | 361 // Fills SSL info in |ssl_info| and returns true when SSL is in use. |
360 bool GetSSLInfo(SSLInfo* ssl_info, | 362 bool GetSSLInfo(SSLInfo* ssl_info, |
361 bool* was_npn_negotiated, | 363 bool* was_npn_negotiated, |
362 NextProto* protocol_negotiated); | 364 NextProto* protocol_negotiated); |
363 | 365 |
364 // Send a WINDOW_UPDATE frame for a stream. Called by a stream | 366 // Send a WINDOW_UPDATE frame for a stream. Called by a stream |
365 // whenever receive window size is increased. | 367 // whenever receive window size is increased. |
366 void SendStreamWindowUpdate(SpdyStreamId stream_id, | 368 void SendStreamWindowUpdate(SpdyStreamId stream_id, |
367 uint32 delta_window_size); | 369 uint32_t delta_window_size); |
368 | 370 |
369 // Accessors for the session's availability state. | 371 // Accessors for the session's availability state. |
370 bool IsAvailable() const { return availability_state_ == STATE_AVAILABLE; } | 372 bool IsAvailable() const { return availability_state_ == STATE_AVAILABLE; } |
371 bool IsGoingAway() const { return availability_state_ == STATE_GOING_AWAY; } | 373 bool IsGoingAway() const { return availability_state_ == STATE_GOING_AWAY; } |
372 bool IsDraining() const { return availability_state_ == STATE_DRAINING; } | 374 bool IsDraining() const { return availability_state_ == STATE_DRAINING; } |
373 | 375 |
374 // Closes this session. This will close all active streams and mark | 376 // Closes this session. This will close all active streams and mark |
375 // the session as permanently closed. Callers must assume that the | 377 // the session as permanently closed. Callers must assume that the |
376 // session is destroyed after this is called. (However, it may not | 378 // session is destroyed after this is called. (However, it may not |
377 // be destroyed right away, e.g. when a SpdySession function is | 379 // be destroyed right away, e.g. when a SpdySession function is |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
448 DCHECK_LE(priority, MAXIMUM_PRIORITY); | 450 DCHECK_LE(priority, MAXIMUM_PRIORITY); |
449 return pending_create_stream_queues_[priority].size(); | 451 return pending_create_stream_queues_[priority].size(); |
450 } | 452 } |
451 | 453 |
452 // Returns the (version-dependent) flow control state. | 454 // Returns the (version-dependent) flow control state. |
453 FlowControlState flow_control_state() const { | 455 FlowControlState flow_control_state() const { |
454 return flow_control_state_; | 456 return flow_control_state_; |
455 } | 457 } |
456 | 458 |
457 // Returns the current |stream_initial_send_window_size_|. | 459 // Returns the current |stream_initial_send_window_size_|. |
458 int32 stream_initial_send_window_size() const { | 460 int32_t stream_initial_send_window_size() const { |
459 return stream_initial_send_window_size_; | 461 return stream_initial_send_window_size_; |
460 } | 462 } |
461 | 463 |
462 // Returns true if no stream in the session can send data due to | 464 // Returns true if no stream in the session can send data due to |
463 // session flow control. | 465 // session flow control. |
464 bool IsSendStalled() const { | 466 bool IsSendStalled() const { |
465 return | 467 return |
466 flow_control_state_ == FLOW_CONTROL_STREAM_AND_SESSION && | 468 flow_control_state_ == FLOW_CONTROL_STREAM_AND_SESSION && |
467 session_send_window_size_ == 0; | 469 session_send_window_size_ == 0; |
468 } | 470 } |
(...skipping 28 matching lines...) Expand all Loading... |
497 size_t GetFrameMaximumSize() const { | 499 size_t GetFrameMaximumSize() const { |
498 return buffered_spdy_framer_->GetFrameMaximumSize(); | 500 return buffered_spdy_framer_->GetFrameMaximumSize(); |
499 } | 501 } |
500 | 502 |
501 size_t GetDataFrameMaximumPayload() const { | 503 size_t GetDataFrameMaximumPayload() const { |
502 return buffered_spdy_framer_->GetDataFrameMaximumPayload(); | 504 return buffered_spdy_framer_->GetDataFrameMaximumPayload(); |
503 } | 505 } |
504 | 506 |
505 // Default value of SETTINGS_INITIAL_WINDOW_SIZE per protocol specification. | 507 // Default value of SETTINGS_INITIAL_WINDOW_SIZE per protocol specification. |
506 // A session is always created with this initial window size. | 508 // A session is always created with this initial window size. |
507 static int32 GetDefaultInitialWindowSize(NextProto protocol) { | 509 static int32_t GetDefaultInitialWindowSize(NextProto protocol) { |
508 return protocol < kProtoHTTP2 ? 65536 : 65535; | 510 return protocol < kProtoHTTP2 ? 65536 : 65535; |
509 } | 511 } |
510 | 512 |
511 // https://http2.github.io/http2-spec/#TLSUsage mandates minimum security | 513 // https://http2.github.io/http2-spec/#TLSUsage mandates minimum security |
512 // standards for TLS. | 514 // standards for TLS. |
513 bool HasAcceptableTransportSecurity() const; | 515 bool HasAcceptableTransportSecurity() const; |
514 | 516 |
515 // Must be used only by |pool_|. | 517 // Must be used only by |pool_|. |
516 base::WeakPtr<SpdySession> GetWeakPtr(); | 518 base::WeakPtr<SpdySession> GetWeakPtr(); |
517 | 519 |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
711 // Send initial data. Called when a connection is successfully | 713 // Send initial data. Called when a connection is successfully |
712 // established in InitializeWithSocket() and | 714 // established in InitializeWithSocket() and |
713 // |enable_sending_initial_data_| is true. | 715 // |enable_sending_initial_data_| is true. |
714 void SendInitialData(); | 716 void SendInitialData(); |
715 | 717 |
716 // Helper method to send a SETTINGS frame. | 718 // Helper method to send a SETTINGS frame. |
717 void SendSettings(const SettingsMap& settings); | 719 void SendSettings(const SettingsMap& settings); |
718 | 720 |
719 // Handle SETTING. Either when we send settings, or when we receive a | 721 // Handle SETTING. Either when we send settings, or when we receive a |
720 // SETTINGS control frame, update our SpdySession accordingly. | 722 // SETTINGS control frame, update our SpdySession accordingly. |
721 void HandleSetting(uint32 id, uint32 value); | 723 void HandleSetting(uint32_t id, uint32_t value); |
722 | 724 |
723 // Adjust the send window size of all ActiveStreams and PendingStreamRequests. | 725 // Adjust the send window size of all ActiveStreams and PendingStreamRequests. |
724 void UpdateStreamsSendWindowSize(int32 delta_window_size); | 726 void UpdateStreamsSendWindowSize(int32_t delta_window_size); |
725 | 727 |
726 // Send the PING (preface-PING) frame. | 728 // Send the PING (preface-PING) frame. |
727 void SendPrefacePingIfNoneInFlight(); | 729 void SendPrefacePingIfNoneInFlight(); |
728 | 730 |
729 // Send PING if there are no PINGs in flight and we haven't heard from server. | 731 // Send PING if there are no PINGs in flight and we haven't heard from server. |
730 void SendPrefacePing(); | 732 void SendPrefacePing(); |
731 | 733 |
732 // Send a single WINDOW_UPDATE frame. | 734 // Send a single WINDOW_UPDATE frame. |
733 void SendWindowUpdateFrame(SpdyStreamId stream_id, uint32 delta_window_size, | 735 void SendWindowUpdateFrame(SpdyStreamId stream_id, |
| 736 uint32_t delta_window_size, |
734 RequestPriority priority); | 737 RequestPriority priority); |
735 | 738 |
736 // Send the PING frame. | 739 // Send the PING frame. |
737 void WritePingFrame(SpdyPingId unique_id, bool is_ack); | 740 void WritePingFrame(SpdyPingId unique_id, bool is_ack); |
738 | 741 |
739 // Post a CheckPingStatus call after delay. Don't post if there is already | 742 // Post a CheckPingStatus call after delay. Don't post if there is already |
740 // CheckPingStatus running. | 743 // CheckPingStatus running. |
741 void PlanToCheckPingStatus(); | 744 void PlanToCheckPingStatus(); |
742 | 745 |
743 // Check the status of the connection. It calls |CloseSessionOnError| if we | 746 // Check the status of the connection. It calls |CloseSessionOnError| if we |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
837 bool fin) override; | 840 bool fin) override; |
838 void OnStreamFrameData(SpdyStreamId stream_id, | 841 void OnStreamFrameData(SpdyStreamId stream_id, |
839 const char* data, | 842 const char* data, |
840 size_t len, | 843 size_t len, |
841 bool fin) override; | 844 bool fin) override; |
842 void OnStreamPadding(SpdyStreamId stream_id, size_t len) override; | 845 void OnStreamPadding(SpdyStreamId stream_id, size_t len) override; |
843 SpdyHeadersHandlerInterface* OnHeaderFrameStart( | 846 SpdyHeadersHandlerInterface* OnHeaderFrameStart( |
844 SpdyStreamId stream_id) override; | 847 SpdyStreamId stream_id) override; |
845 void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) override; | 848 void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) override; |
846 void OnSettings(bool clear_persisted) override; | 849 void OnSettings(bool clear_persisted) override; |
847 void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override; | 850 void OnSetting(SpdySettingsIds id, uint8_t flags, uint32_t value) override; |
848 void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override; | 851 void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override; |
849 void OnPushPromise(SpdyStreamId stream_id, | 852 void OnPushPromise(SpdyStreamId stream_id, |
850 SpdyStreamId promised_stream_id, | 853 SpdyStreamId promised_stream_id, |
851 const SpdyHeaderBlock& headers) override; | 854 const SpdyHeaderBlock& headers) override; |
852 void OnSynStream(SpdyStreamId stream_id, | 855 void OnSynStream(SpdyStreamId stream_id, |
853 SpdyStreamId associated_stream_id, | 856 SpdyStreamId associated_stream_id, |
854 SpdyPriority priority, | 857 SpdyPriority priority, |
855 bool fin, | 858 bool fin, |
856 bool unidirectional, | 859 bool unidirectional, |
857 const SpdyHeaderBlock& headers) override; | 860 const SpdyHeaderBlock& headers) override; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
895 // If session flow control is turned off, this must not be called. | 898 // If session flow control is turned off, this must not be called. |
896 void IncreaseSendWindowSize(int delta_window_size); | 899 void IncreaseSendWindowSize(int delta_window_size); |
897 | 900 |
898 // If session flow control is turned on, called by CreateDataFrame() | 901 // If session flow control is turned on, called by CreateDataFrame() |
899 // (which is in turn called by a stream) to decrease this session's | 902 // (which is in turn called by a stream) to decrease this session's |
900 // send window size by |delta_window_size|, which must be at least 1 | 903 // send window size by |delta_window_size|, which must be at least 1 |
901 // and at most kMaxSpdyFrameChunkSize. |delta_window_size| must not | 904 // and at most kMaxSpdyFrameChunkSize. |delta_window_size| must not |
902 // cause this session's send window size to go negative. | 905 // cause this session's send window size to go negative. |
903 // | 906 // |
904 // If session flow control is turned off, this must not be called. | 907 // If session flow control is turned off, this must not be called. |
905 void DecreaseSendWindowSize(int32 delta_window_size); | 908 void DecreaseSendWindowSize(int32_t delta_window_size); |
906 | 909 |
907 // Called when bytes are consumed by the delegate from a SpdyBuffer | 910 // Called when bytes are consumed by the delegate from a SpdyBuffer |
908 // containing received data. Increases the receive window size | 911 // containing received data. Increases the receive window size |
909 // accordingly. | 912 // accordingly. |
910 // | 913 // |
911 // If session flow control is turned off, this must not be called. | 914 // If session flow control is turned off, this must not be called. |
912 void OnReadBufferConsumed(size_t consume_size, | 915 void OnReadBufferConsumed(size_t consume_size, |
913 SpdyBuffer::ConsumeSource consume_source); | 916 SpdyBuffer::ConsumeSource consume_source); |
914 | 917 |
915 // Called by OnReadBufferConsume to increase this session's receive | 918 // Called by OnReadBufferConsume to increase this session's receive |
916 // window size by |delta_window_size|, which must be at least 1 and | 919 // window size by |delta_window_size|, which must be at least 1 and |
917 // must not cause this session's receive window size to overflow, | 920 // must not cause this session's receive window size to overflow, |
918 // possibly also sending a WINDOW_UPDATE frame. Also called during | 921 // possibly also sending a WINDOW_UPDATE frame. Also called during |
919 // initialization to set the initial receive window size. | 922 // initialization to set the initial receive window size. |
920 // | 923 // |
921 // If session flow control is turned off, this must not be called. | 924 // If session flow control is turned off, this must not be called. |
922 void IncreaseRecvWindowSize(int32 delta_window_size); | 925 void IncreaseRecvWindowSize(int32_t delta_window_size); |
923 | 926 |
924 // Called by OnStreamFrameData (which is in turn called by the | 927 // Called by OnStreamFrameData (which is in turn called by the |
925 // framer) to decrease this session's receive window size by | 928 // framer) to decrease this session's receive window size by |
926 // |delta_window_size|, which must be at least 1 and must not cause | 929 // |delta_window_size|, which must be at least 1 and must not cause |
927 // this session's receive window size to go negative. | 930 // this session's receive window size to go negative. |
928 // | 931 // |
929 // If session flow control is turned off, this must not be called. | 932 // If session flow control is turned off, this must not be called. |
930 void DecreaseRecvWindowSize(int32 delta_window_size); | 933 void DecreaseRecvWindowSize(int32_t delta_window_size); |
931 | 934 |
932 // Queue a send-stalled stream for possibly resuming once we're not | 935 // Queue a send-stalled stream for possibly resuming once we're not |
933 // send-stalled anymore. | 936 // send-stalled anymore. |
934 void QueueSendStalledStream(const SpdyStream& stream); | 937 void QueueSendStalledStream(const SpdyStream& stream); |
935 | 938 |
936 // Go through the queue of send-stalled streams and try to resume as | 939 // Go through the queue of send-stalled streams and try to resume as |
937 // many as possible. | 940 // many as possible. |
938 void ResumeSendStalledStreams(); | 941 void ResumeSendStalledStreams(); |
939 | 942 |
940 // Returns the next stream to possibly resume, or 0 if the queue is | 943 // Returns the next stream to possibly resume, or 0 if the queue is |
941 // empty. | 944 // empty. |
942 SpdyStreamId PopStreamToPossiblyResume(); | 945 SpdyStreamId PopStreamToPossiblyResume(); |
943 | 946 |
944 // -------------------------- | 947 // -------------------------- |
945 // Helper methods for testing | 948 // Helper methods for testing |
946 // -------------------------- | 949 // -------------------------- |
947 | 950 |
948 void set_connection_at_risk_of_loss_time(base::TimeDelta duration) { | 951 void set_connection_at_risk_of_loss_time(base::TimeDelta duration) { |
949 connection_at_risk_of_loss_time_ = duration; | 952 connection_at_risk_of_loss_time_ = duration; |
950 } | 953 } |
951 | 954 |
952 void set_hung_interval(base::TimeDelta duration) { | 955 void set_hung_interval(base::TimeDelta duration) { |
953 hung_interval_ = duration; | 956 hung_interval_ = duration; |
954 } | 957 } |
955 | 958 |
956 void set_max_concurrent_pushed_streams(size_t value) { | 959 void set_max_concurrent_pushed_streams(size_t value) { |
957 max_concurrent_pushed_streams_ = value; | 960 max_concurrent_pushed_streams_ = value; |
958 } | 961 } |
959 | 962 |
960 int64 pings_in_flight() const { return pings_in_flight_; } | 963 int64_t pings_in_flight() const { return pings_in_flight_; } |
961 | 964 |
962 SpdyPingId next_ping_id() const { return next_ping_id_; } | 965 SpdyPingId next_ping_id() const { return next_ping_id_; } |
963 | 966 |
964 base::TimeTicks last_activity_time() const { return last_activity_time_; } | 967 base::TimeTicks last_activity_time() const { return last_activity_time_; } |
965 | 968 |
966 bool check_ping_status_pending() const { return check_ping_status_pending_; } | 969 bool check_ping_status_pending() const { return check_ping_status_pending_; } |
967 | 970 |
968 size_t max_concurrent_streams() const { return max_concurrent_streams_; } | 971 size_t max_concurrent_streams() const { return max_concurrent_streams_; } |
969 | 972 |
970 // Set whether priority->dependency conversion is enabled | 973 // Set whether priority->dependency conversion is enabled |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1093 // |total_bytes_received_| keeps track of all the bytes read by the | 1096 // |total_bytes_received_| keeps track of all the bytes read by the |
1094 // SpdySession. It is used by the |Net.SpdySettingsCwnd...| histograms. | 1097 // SpdySession. It is used by the |Net.SpdySettingsCwnd...| histograms. |
1095 int total_bytes_received_; | 1098 int total_bytes_received_; |
1096 | 1099 |
1097 bool sent_settings_; // Did this session send settings when it started. | 1100 bool sent_settings_; // Did this session send settings when it started. |
1098 bool received_settings_; // Did this session receive at least one settings | 1101 bool received_settings_; // Did this session receive at least one settings |
1099 // frame. | 1102 // frame. |
1100 int stalled_streams_; // Count of streams that were ever stalled. | 1103 int stalled_streams_; // Count of streams that were ever stalled. |
1101 | 1104 |
1102 // Count of all pings on the wire, for which we have not gotten a response. | 1105 // Count of all pings on the wire, for which we have not gotten a response. |
1103 int64 pings_in_flight_; | 1106 int64_t pings_in_flight_; |
1104 | 1107 |
1105 // This is the next ping_id (unique_id) to be sent in PING frame. | 1108 // This is the next ping_id (unique_id) to be sent in PING frame. |
1106 SpdyPingId next_ping_id_; | 1109 SpdyPingId next_ping_id_; |
1107 | 1110 |
1108 // This is the last time we have sent a PING. | 1111 // This is the last time we have sent a PING. |
1109 base::TimeTicks last_ping_sent_time_; | 1112 base::TimeTicks last_ping_sent_time_; |
1110 | 1113 |
1111 // This is the last time we had activity in the session. | 1114 // This is the last time we had activity in the session. |
1112 base::TimeTicks last_activity_time_; | 1115 base::TimeTicks last_activity_time_; |
1113 | 1116 |
1114 // This is the length of the last compressed frame. | 1117 // This is the length of the last compressed frame. |
1115 size_t last_compressed_frame_len_; | 1118 size_t last_compressed_frame_len_; |
1116 | 1119 |
1117 // This is the next time that unclaimed push streams should be checked for | 1120 // This is the next time that unclaimed push streams should be checked for |
1118 // expirations. | 1121 // expirations. |
1119 base::TimeTicks next_unclaimed_push_stream_sweep_time_; | 1122 base::TimeTicks next_unclaimed_push_stream_sweep_time_; |
1120 | 1123 |
1121 // Indicate if we have already scheduled a delayed task to check the ping | 1124 // Indicate if we have already scheduled a delayed task to check the ping |
1122 // status. | 1125 // status. |
1123 bool check_ping_status_pending_; | 1126 bool check_ping_status_pending_; |
1124 | 1127 |
1125 // Whether to send the (HTTP/2) connection header prefix. | 1128 // Whether to send the (HTTP/2) connection header prefix. |
1126 bool send_connection_header_prefix_; | 1129 bool send_connection_header_prefix_; |
1127 | 1130 |
1128 // The (version-dependent) flow control state. | 1131 // The (version-dependent) flow control state. |
1129 FlowControlState flow_control_state_; | 1132 FlowControlState flow_control_state_; |
1130 | 1133 |
1131 // Current send window size. Zero unless session flow control is turned on. | 1134 // Current send window size. Zero unless session flow control is turned on. |
1132 int32 session_send_window_size_; | 1135 int32_t session_send_window_size_; |
1133 | 1136 |
1134 // Maximum receive window size. Each time a WINDOW_UPDATE is sent, it | 1137 // Maximum receive window size. Each time a WINDOW_UPDATE is sent, it |
1135 // restores the receive window size to this value. Zero unless session flow | 1138 // restores the receive window size to this value. Zero unless session flow |
1136 // control is turned on. | 1139 // control is turned on. |
1137 int32 session_max_recv_window_size_; | 1140 int32_t session_max_recv_window_size_; |
1138 | 1141 |
1139 // Sum of |session_unacked_recv_window_bytes_| and current receive window | 1142 // Sum of |session_unacked_recv_window_bytes_| and current receive window |
1140 // size. Zero unless session flow control is turned on. | 1143 // size. Zero unless session flow control is turned on. |
1141 // TODO(bnc): Rename or change semantics so that |window_size_| is actual | 1144 // TODO(bnc): Rename or change semantics so that |window_size_| is actual |
1142 // window size. | 1145 // window size. |
1143 int32 session_recv_window_size_; | 1146 int32_t session_recv_window_size_; |
1144 | 1147 |
1145 // When bytes are consumed, SpdyIOBuffer destructor calls back to SpdySession, | 1148 // When bytes are consumed, SpdyIOBuffer destructor calls back to SpdySession, |
1146 // and this member keeps count of them until the corresponding WINDOW_UPDATEs | 1149 // and this member keeps count of them until the corresponding WINDOW_UPDATEs |
1147 // are sent. Zero unless session flow control is turned on. | 1150 // are sent. Zero unless session flow control is turned on. |
1148 int32 session_unacked_recv_window_bytes_; | 1151 int32_t session_unacked_recv_window_bytes_; |
1149 | 1152 |
1150 // Initial send window size for this session's streams. Can be | 1153 // Initial send window size for this session's streams. Can be |
1151 // changed by an arriving SETTINGS frame. Newly created streams use | 1154 // changed by an arriving SETTINGS frame. Newly created streams use |
1152 // this value for the initial send window size. | 1155 // this value for the initial send window size. |
1153 int32 stream_initial_send_window_size_; | 1156 int32_t stream_initial_send_window_size_; |
1154 | 1157 |
1155 // Initial receive window size for this session's streams. There are | 1158 // Initial receive window size for this session's streams. There are |
1156 // plans to add a command line switch that would cause a SETTINGS | 1159 // plans to add a command line switch that would cause a SETTINGS |
1157 // frame with window size announcement to be sent on startup. Newly | 1160 // frame with window size announcement to be sent on startup. Newly |
1158 // created streams will use this value for the initial receive | 1161 // created streams will use this value for the initial receive |
1159 // window size. | 1162 // window size. |
1160 int32 stream_max_recv_window_size_; | 1163 int32_t stream_max_recv_window_size_; |
1161 | 1164 |
1162 // A queue of stream IDs that have been send-stalled at some point | 1165 // A queue of stream IDs that have been send-stalled at some point |
1163 // in the past. | 1166 // in the past. |
1164 std::deque<SpdyStreamId> stream_send_unstall_queue_[NUM_PRIORITIES]; | 1167 std::deque<SpdyStreamId> stream_send_unstall_queue_[NUM_PRIORITIES]; |
1165 | 1168 |
1166 BoundNetLog net_log_; | 1169 BoundNetLog net_log_; |
1167 | 1170 |
1168 // Outside of tests, these should always be true. | 1171 // Outside of tests, these should always be true. |
1169 bool verify_domain_authentication_; | 1172 bool verify_domain_authentication_; |
1170 bool enable_sending_initial_data_; | 1173 bool enable_sending_initial_data_; |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1210 // Used for posting asynchronous IO tasks. We use this even though | 1213 // Used for posting asynchronous IO tasks. We use this even though |
1211 // SpdySession is refcounted because we don't need to keep the SpdySession | 1214 // SpdySession is refcounted because we don't need to keep the SpdySession |
1212 // alive if the last reference is within a RunnableMethod. Just revoke the | 1215 // alive if the last reference is within a RunnableMethod. Just revoke the |
1213 // method. | 1216 // method. |
1214 base::WeakPtrFactory<SpdySession> weak_factory_; | 1217 base::WeakPtrFactory<SpdySession> weak_factory_; |
1215 }; | 1218 }; |
1216 | 1219 |
1217 } // namespace net | 1220 } // namespace net |
1218 | 1221 |
1219 #endif // NET_SPDY_SPDY_SESSION_H_ | 1222 #endif // NET_SPDY_SPDY_SESSION_H_ |
OLD | NEW |