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_HTTP_HTTP_NETWORK_SESSION_H_ | 5 #ifndef NET_HTTP_HTTP_NETWORK_SESSION_H_ |
6 #define NET_HTTP_HTTP_NETWORK_SESSION_H_ | 6 #define NET_HTTP_HTTP_NETWORK_SESSION_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 NetworkDelegate* network_delegate; | 77 NetworkDelegate* network_delegate; |
78 base::WeakPtr<HttpServerProperties> http_server_properties; | 78 base::WeakPtr<HttpServerProperties> http_server_properties; |
79 NetLog* net_log; | 79 NetLog* net_log; |
80 HostMappingRules* host_mapping_rules; | 80 HostMappingRules* host_mapping_rules; |
81 SocketPerformanceWatcherFactory* socket_performance_watcher_factory; | 81 SocketPerformanceWatcherFactory* socket_performance_watcher_factory; |
82 bool ignore_certificate_errors; | 82 bool ignore_certificate_errors; |
83 uint16 testing_fixed_http_port; | 83 uint16 testing_fixed_http_port; |
84 uint16 testing_fixed_https_port; | 84 uint16 testing_fixed_https_port; |
85 bool enable_tcp_fast_open_for_ssl; | 85 bool enable_tcp_fast_open_for_ssl; |
86 | 86 |
| 87 // Compress SPDY headers. |
87 bool enable_spdy_compression; | 88 bool enable_spdy_compression; |
| 89 // Use SPDY ping frames to test for connection health after idle. |
88 bool enable_spdy_ping_based_connection_checking; | 90 bool enable_spdy_ping_based_connection_checking; |
89 NextProto spdy_default_protocol; | 91 NextProto spdy_default_protocol; |
90 // The protocols supported by NPN (next protocol negotiation) during the | 92 // The protocols supported by NPN (next protocol negotiation) during the |
91 // SSL handshake as well as by HTTP Alternate-Protocol. | 93 // SSL handshake as well as by HTTP Alternate-Protocol. |
92 // TODO(mmenke): This is currently empty by default, and alternate | 94 // TODO(mmenke): This is currently empty by default, and alternate |
93 // protocols are disabled. We should use some reasonable | 95 // protocols are disabled. We should use some reasonable |
94 // defaults. | 96 // defaults. |
95 NextProtoVector next_protos; | 97 NextProtoVector next_protos; |
96 size_t spdy_session_max_recv_window_size; | 98 size_t spdy_session_max_recv_window_size; |
97 size_t spdy_stream_max_recv_window_size; | 99 size_t spdy_stream_max_recv_window_size; |
98 size_t spdy_initial_max_concurrent_streams; | 100 size_t spdy_initial_max_concurrent_streams; |
| 101 // Source of time for SPDY connections. |
99 SpdySessionPool::TimeFunc time_func; | 102 SpdySessionPool::TimeFunc time_func; |
| 103 // This SPDY proxy is allowed to push resources from origins that are |
| 104 // different from those of their associated streams. |
100 std::string trusted_spdy_proxy; | 105 std::string trusted_spdy_proxy; |
101 // URLs to exclude from forced SPDY. | 106 // URLs to exclude from forced SPDY. |
102 std::set<HostPortPair> forced_spdy_exclusions; | 107 std::set<HostPortPair> forced_spdy_exclusions; |
| 108 // Process Alt-Svc headers. |
103 bool use_alternative_services; | 109 bool use_alternative_services; |
| 110 // Only honor alternative service entries which have a higher probability |
| 111 // than this value. |
104 double alternative_service_probability_threshold; | 112 double alternative_service_probability_threshold; |
105 | 113 |
| 114 // Enables QUIC support. |
106 bool enable_quic; | 115 bool enable_quic; |
| 116 // Enables insecure QUIC (http:// URLs) support, if enable_quic is true. |
107 bool enable_insecure_quic; | 117 bool enable_insecure_quic; |
| 118 // Enables QUIC for proxies. |
108 bool enable_quic_for_proxies; | 119 bool enable_quic_for_proxies; |
| 120 // Instruct QUIC to use consistent ephemeral ports when talking to |
| 121 // the same server. |
109 bool enable_quic_port_selection; | 122 bool enable_quic_port_selection; |
| 123 // Disables QUIC's 0-RTT behavior. |
110 bool quic_always_require_handshake_confirmation; | 124 bool quic_always_require_handshake_confirmation; |
| 125 // Disables QUIC connection pooling. |
111 bool quic_disable_connection_pooling; | 126 bool quic_disable_connection_pooling; |
| 127 // If not zero, the task to load QUIC server configs from the disk cache |
| 128 // will timeout after this value multiplied by the smoothed RTT for the |
| 129 // server. |
112 float quic_load_server_info_timeout_srtt_multiplier; | 130 float quic_load_server_info_timeout_srtt_multiplier; |
| 131 // Causes QUIC to race reading the server config from disk with |
| 132 // sending an inchoate CHLO. |
113 bool quic_enable_connection_racing; | 133 bool quic_enable_connection_racing; |
| 134 // Use non-blocking IO for UDP sockets. |
114 bool quic_enable_non_blocking_io; | 135 bool quic_enable_non_blocking_io; |
| 136 // Disables using the disk cache to store QUIC server configs. |
115 bool quic_disable_disk_cache; | 137 bool quic_disable_disk_cache; |
| 138 // Prefer AES-GCM to ChaCha20 even if no hardware support is present. |
116 bool quic_prefer_aes; | 139 bool quic_prefer_aes; |
| 140 // Specifies the maximum number of connections with high packet loss in |
| 141 // a row after which QUIC will be disabled. |
117 int quic_max_number_of_lossy_connections; | 142 int quic_max_number_of_lossy_connections; |
| 143 // Specifies packet loss rate in fraction after which a connection is |
| 144 // closed and is considered as a lossy connection. |
118 float quic_packet_loss_threshold; | 145 float quic_packet_loss_threshold; |
| 146 // Size in bytes of the QUIC DUP socket receive buffer. |
119 int quic_socket_receive_buffer_size; | 147 int quic_socket_receive_buffer_size; |
| 148 // Delay starting a TCP connection when QUIC believes it can speak |
| 149 // 0-RTT to a server. |
120 bool quic_delay_tcp_race; | 150 bool quic_delay_tcp_race; |
| 151 // Store server configs in HttpServerProperties, instead of the disk cache. |
121 bool quic_store_server_configs_in_properties; | 152 bool quic_store_server_configs_in_properties; |
| 153 // If not empty, QUIC will be used for all connections to this origin. |
122 HostPortPair origin_to_force_quic_on; | 154 HostPortPair origin_to_force_quic_on; |
123 QuicClock* quic_clock; // Will be owned by QuicStreamFactory. | 155 // Source of time for QUIC connections. Will be owned by QuicStreamFactory. |
| 156 QuicClock* quic_clock; |
| 157 // Source of entropy for QUIC connections. |
124 QuicRandom* quic_random; | 158 QuicRandom* quic_random; |
| 159 // Limit on the size of QUIC packets. |
125 size_t quic_max_packet_length; | 160 size_t quic_max_packet_length; |
| 161 // User agent description to send in the QUIC handshake. |
126 std::string quic_user_agent_id; | 162 std::string quic_user_agent_id; |
127 bool enable_user_alternate_protocol_ports; | 163 bool enable_user_alternate_protocol_ports; |
| 164 // Optional factory to use for creating QuicCryptoClientStreams. |
128 QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory; | 165 QuicCryptoClientStreamFactory* quic_crypto_client_stream_factory; |
| 166 // Versions of QUIC which may be used. |
129 QuicVersionVector quic_supported_versions; | 167 QuicVersionVector quic_supported_versions; |
130 int quic_max_recent_disabled_reasons; | 168 int quic_max_recent_disabled_reasons; |
131 int quic_threshold_public_resets_post_handshake; | 169 int quic_threshold_public_resets_post_handshake; |
132 int quic_threshold_timeouts_streams_open; | 170 int quic_threshold_timeouts_streams_open; |
| 171 // Set of QUIC tags to send in the handshakes connection options. |
133 QuicTagVector quic_connection_options; | 172 QuicTagVector quic_connection_options; |
134 ProxyDelegate* proxy_delegate; | 173 ProxyDelegate* proxy_delegate; |
135 }; | 174 }; |
136 | 175 |
137 enum SocketPoolType { | 176 enum SocketPoolType { |
138 NORMAL_SOCKET_POOL, | 177 NORMAL_SOCKET_POOL, |
139 WEBSOCKET_SOCKET_POOL, | 178 WEBSOCKET_SOCKET_POOL, |
140 NUM_SOCKET_POOL_TYPES | 179 NUM_SOCKET_POOL_TYPES |
141 }; | 180 }; |
142 | 181 |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 | 279 |
241 NextProtoVector next_protos_; | 280 NextProtoVector next_protos_; |
242 bool enabled_protocols_[NUM_VALID_ALTERNATE_PROTOCOLS]; | 281 bool enabled_protocols_[NUM_VALID_ALTERNATE_PROTOCOLS]; |
243 | 282 |
244 Params params_; | 283 Params params_; |
245 }; | 284 }; |
246 | 285 |
247 } // namespace net | 286 } // namespace net |
248 | 287 |
249 #endif // NET_HTTP_HTTP_NETWORK_SESSION_H_ | 288 #endif // NET_HTTP_HTTP_NETWORK_SESSION_H_ |
OLD | NEW |