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_SERVER_PROPERTIES_H_ | 5 #ifndef NET_HTTP_HTTP_SERVER_PROPERTIES_H_ |
6 #define NET_HTTP_HTTP_SERVER_PROPERTIES_H_ | 6 #define NET_HTTP_HTTP_SERVER_PROPERTIES_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 } | 131 } |
132 | 132 |
133 std::string ToString() const; | 133 std::string ToString() const; |
134 | 134 |
135 AlternateProtocol protocol; | 135 AlternateProtocol protocol; |
136 std::string host; | 136 std::string host; |
137 uint16_t port; | 137 uint16_t port; |
138 }; | 138 }; |
139 | 139 |
140 struct NET_EXPORT AlternativeServiceInfo { | 140 struct NET_EXPORT AlternativeServiceInfo { |
141 AlternativeServiceInfo() : alternative_service() {} | 141 AlternativeServiceInfo() : alternative_service(), probability(0.0) {} |
142 | 142 |
143 AlternativeServiceInfo(const AlternativeService& alternative_service, | 143 AlternativeServiceInfo(const AlternativeService& alternative_service, |
| 144 double probability, |
144 base::Time expiration) | 145 base::Time expiration) |
145 : alternative_service(alternative_service), | 146 : alternative_service(alternative_service), |
| 147 probability(probability), |
146 expiration(expiration) {} | 148 expiration(expiration) {} |
147 | 149 |
148 AlternativeServiceInfo(AlternateProtocol protocol, | 150 AlternativeServiceInfo(AlternateProtocol protocol, |
149 const std::string& host, | 151 const std::string& host, |
150 uint16_t port, | 152 uint16_t port, |
| 153 double probability, |
151 base::Time expiration) | 154 base::Time expiration) |
152 : alternative_service(protocol, host, port), | 155 : alternative_service(protocol, host, port), |
| 156 probability(probability), |
153 expiration(expiration) {} | 157 expiration(expiration) {} |
154 | 158 |
155 AlternativeServiceInfo( | 159 AlternativeServiceInfo( |
156 const AlternativeServiceInfo& alternative_service_info) = default; | 160 const AlternativeServiceInfo& alternative_service_info) = default; |
157 AlternativeServiceInfo& operator=( | 161 AlternativeServiceInfo& operator=( |
158 const AlternativeServiceInfo& alternative_service_info) = default; | 162 const AlternativeServiceInfo& alternative_service_info) = default; |
159 | 163 |
160 bool operator==(const AlternativeServiceInfo& other) const { | 164 bool operator==(const AlternativeServiceInfo& other) const { |
161 return alternative_service == other.alternative_service && | 165 return alternative_service == other.alternative_service && |
162 expiration == other.expiration; | 166 probability == other.probability && expiration == other.expiration; |
163 } | 167 } |
164 | 168 |
165 bool operator!=(const AlternativeServiceInfo& other) const { | 169 bool operator!=(const AlternativeServiceInfo& other) const { |
166 return !this->operator==(other); | 170 return !this->operator==(other); |
167 } | 171 } |
168 | 172 |
169 std::string ToString() const; | 173 std::string ToString() const; |
170 | 174 |
171 AlternativeService alternative_service; | 175 AlternativeService alternative_service; |
| 176 double probability; |
172 base::Time expiration; | 177 base::Time expiration; |
173 }; | 178 }; |
174 | 179 |
175 struct NET_EXPORT SupportsQuic { | 180 struct NET_EXPORT SupportsQuic { |
176 SupportsQuic() : used_quic(false) {} | 181 SupportsQuic() : used_quic(false) {} |
177 SupportsQuic(bool used_quic, const std::string& address) | 182 SupportsQuic(bool used_quic, const std::string& address) |
178 : used_quic(used_quic), | 183 : used_quic(used_quic), |
179 address(address) {} | 184 address(address) {} |
180 | 185 |
181 bool Equals(const SupportsQuic& other) const { | 186 bool Equals(const SupportsQuic& other) const { |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 // Require HTTP/1.1 on subsequent connections. Not persisted. | 258 // Require HTTP/1.1 on subsequent connections. Not persisted. |
254 virtual void SetHTTP11Required(const HostPortPair& server) = 0; | 259 virtual void SetHTTP11Required(const HostPortPair& server) = 0; |
255 | 260 |
256 // Modify SSLConfig to force HTTP/1.1. | 261 // Modify SSLConfig to force HTTP/1.1. |
257 static void ForceHTTP11(SSLConfig* ssl_config); | 262 static void ForceHTTP11(SSLConfig* ssl_config); |
258 | 263 |
259 // Modify SSLConfig to force HTTP/1.1 if necessary. | 264 // Modify SSLConfig to force HTTP/1.1 if necessary. |
260 virtual void MaybeForceHTTP11(const HostPortPair& server, | 265 virtual void MaybeForceHTTP11(const HostPortPair& server, |
261 SSLConfig* ssl_config) = 0; | 266 SSLConfig* ssl_config) = 0; |
262 | 267 |
263 // Return all alternative services for |origin|, including broken ones. | 268 // Return all alternative services for |origin| with probability greater than |
| 269 // or equal to the threshold, including broken ones. |
264 // Returned alternative services never have empty hostnames. | 270 // Returned alternative services never have empty hostnames. |
265 virtual AlternativeServiceVector GetAlternativeServices( | 271 virtual AlternativeServiceVector GetAlternativeServices( |
266 const HostPortPair& origin) = 0; | 272 const HostPortPair& origin) = 0; |
267 | 273 |
268 // Set a single alternative service for |origin|. Previous alternative | 274 // Set a single alternative service for |origin|. Previous alternative |
269 // services for |origin| are discarded. | 275 // services for |origin| are discarded. |
270 // |alternative_service.host| may be empty. | 276 // |alternative_service.host| may be empty. |
271 // Return true if |alternative_service_map_| is changed. | 277 // Return true if |alternative_service_map_| is changed. |
272 virtual bool SetAlternativeService( | 278 virtual bool SetAlternativeService( |
273 const HostPortPair& origin, | 279 const HostPortPair& origin, |
274 const AlternativeService& alternative_service, | 280 const AlternativeService& alternative_service, |
| 281 double alternative_probability, |
275 base::Time expiration) = 0; | 282 base::Time expiration) = 0; |
276 | 283 |
277 // Set alternative services for |origin|. Previous alternative services for | 284 // Set alternative services for |origin|. Previous alternative services for |
278 // |origin| are discarded. | 285 // |origin| are discarded. |
279 // Hostnames in |alternative_service_info_vector| may be empty. | 286 // Hostnames in |alternative_service_info_vector| may be empty. |
280 // Return true if |alternative_service_map_| is changed. | 287 // Return true if |alternative_service_map_| is changed. |
281 virtual bool SetAlternativeServices( | 288 virtual bool SetAlternativeServices( |
282 const HostPortPair& origin, | 289 const HostPortPair& origin, |
283 const AlternativeServiceInfoVector& alternative_service_info_vector) = 0; | 290 const AlternativeServiceInfoVector& alternative_service_info_vector) = 0; |
284 | 291 |
(...skipping 26 matching lines...) Expand all Loading... |
311 virtual void ClearAlternativeServices(const HostPortPair& origin) = 0; | 318 virtual void ClearAlternativeServices(const HostPortPair& origin) = 0; |
312 | 319 |
313 // Returns all alternative service mappings. | 320 // Returns all alternative service mappings. |
314 // Returned alternative services may have empty hostnames. | 321 // Returned alternative services may have empty hostnames. |
315 virtual const AlternativeServiceMap& alternative_service_map() const = 0; | 322 virtual const AlternativeServiceMap& alternative_service_map() const = 0; |
316 | 323 |
317 // Returns all alternative service mappings as human readable strings. | 324 // Returns all alternative service mappings as human readable strings. |
318 // Empty alternative service hostnames will be printed as such. | 325 // Empty alternative service hostnames will be printed as such. |
319 virtual scoped_ptr<base::Value> GetAlternativeServiceInfoAsValue() const = 0; | 326 virtual scoped_ptr<base::Value> GetAlternativeServiceInfoAsValue() const = 0; |
320 | 327 |
| 328 // Sets the threshold to be used when evaluating alternative service |
| 329 // advertisments. Only advertisements with a probability greater than or equal |
| 330 // to |threshold| will be honored. |threshold| must be between 0.0 and 1.0 |
| 331 // inclusive. Hence, a threshold of 0.0 implies that all advertisements will |
| 332 // be honored. |
| 333 virtual void SetAlternativeServiceProbabilityThreshold(double threshold) = 0; |
| 334 |
321 // Gets a reference to the SettingsMap stored for a host. | 335 // Gets a reference to the SettingsMap stored for a host. |
322 // If no settings are stored, returns an empty SettingsMap. | 336 // If no settings are stored, returns an empty SettingsMap. |
323 virtual const SettingsMap& GetSpdySettings( | 337 virtual const SettingsMap& GetSpdySettings( |
324 const HostPortPair& host_port_pair) = 0; | 338 const HostPortPair& host_port_pair) = 0; |
325 | 339 |
326 // Saves an individual SPDY setting for a host. Returns true if SPDY setting | 340 // Saves an individual SPDY setting for a host. Returns true if SPDY setting |
327 // is to be persisted. | 341 // is to be persisted. |
328 virtual bool SetSpdySetting(const HostPortPair& host_port_pair, | 342 virtual bool SetSpdySetting(const HostPortPair& host_port_pair, |
329 SpdySettingsIds id, | 343 SpdySettingsIds id, |
330 SpdySettingsFlags flags, | 344 SpdySettingsFlags flags, |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 virtual void SetMaxServerConfigsStoredInProperties( | 386 virtual void SetMaxServerConfigsStoredInProperties( |
373 size_t max_server_configs_stored_in_properties) = 0; | 387 size_t max_server_configs_stored_in_properties) = 0; |
374 | 388 |
375 private: | 389 private: |
376 DISALLOW_COPY_AND_ASSIGN(HttpServerProperties); | 390 DISALLOW_COPY_AND_ASSIGN(HttpServerProperties); |
377 }; | 391 }; |
378 | 392 |
379 } // namespace net | 393 } // namespace net |
380 | 394 |
381 #endif // NET_HTTP_HTTP_SERVER_PROPERTIES_H_ | 395 #endif // NET_HTTP_HTTP_SERVER_PROPERTIES_H_ |
OLD | NEW |