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_UTIL_H_ | 5 #ifndef NET_HTTP_HTTP_UTIL_H_ |
6 #define NET_HTTP_HTTP_UTIL_H_ | 6 #define NET_HTTP_HTTP_UTIL_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/memory/ref_counted.h" | 11 #include "base/memory/ref_counted.h" |
12 #include "base/strings/string_tokenizer.h" | 12 #include "base/strings/string_tokenizer.h" |
13 #include "net/base/net_export.h" | 13 #include "net/base/net_export.h" |
14 #include "net/http/http_byte_range.h" | 14 #include "net/http/http_byte_range.h" |
15 #include "net/http/http_version.h" | 15 #include "net/http/http_version.h" |
16 #include "url/gurl.h" | 16 #include "url/gurl.h" |
17 | 17 |
18 // This is a macro to support extending this string literal at compile time. | 18 // This is a macro to support extending this string literal at compile time. |
19 // Please excuse me polluting your global namespace! | 19 // Please excuse me polluting your global namespace! |
20 #define HTTP_LWS " \t" | 20 #define HTTP_LWS " \t" |
21 | 21 |
22 namespace net { | 22 namespace net { |
23 | 23 |
| 24 class CertVerifyResult; |
| 25 class SSLInfo; |
| 26 class TransportSecurityState; |
| 27 |
24 class NET_EXPORT HttpUtil { | 28 class NET_EXPORT HttpUtil { |
25 public: | 29 public: |
26 // Returns the absolute path of the URL, to be used for the http request. | 30 // Returns the absolute path of the URL, to be used for the http request. |
27 // The absolute path starts with a '/' and may contain a query. | 31 // The absolute path starts with a '/' and may contain a query. |
28 static std::string PathForRequest(const GURL& url); | 32 static std::string PathForRequest(const GURL& url); |
29 | 33 |
30 // Returns the absolute URL, to be used for the http request. This url is | 34 // Returns the absolute URL, to be used for the http request. This url is |
31 // made up of the protocol, host, [port], path, [query]. Everything else | 35 // made up of the protocol, host, [port], path, [query]. Everything else |
32 // is stripped (username, password, reference). | 36 // is stripped (username, password, reference). |
33 static std::string SpecForRequest(const GURL& url); | 37 static std::string SpecForRequest(const GURL& url); |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 | 195 |
192 // Gets a vector of common HTTP status codes for histograms of status | 196 // Gets a vector of common HTTP status codes for histograms of status |
193 // codes. Currently returns everything in the range [100, 600), plus 0 | 197 // codes. Currently returns everything in the range [100, 600), plus 0 |
194 // (for invalid responses/status codes). | 198 // (for invalid responses/status codes). |
195 static std::vector<int> GetStatusCodesForHistogram(); | 199 static std::vector<int> GetStatusCodesForHistogram(); |
196 | 200 |
197 // Maps an HTTP status code to one of the status codes in the vector | 201 // Maps an HTTP status code to one of the status codes in the vector |
198 // returned by GetStatusCodesForHistogram. | 202 // returned by GetStatusCodesForHistogram. |
199 static int MapStatusCodeForHistogram(int code); | 203 static int MapStatusCodeForHistogram(int code); |
200 | 204 |
| 205 // Returns true if |hostname| can be pooled into an existing connection |
| 206 // associated with |ssl_info|. |
| 207 static bool CanPool(TransportSecurityState* transport_security_state, |
| 208 const SSLInfo& ssl_info, |
| 209 const std::string& old_hostname, |
| 210 const std::string& new_hostname); |
| 211 |
201 // Used to iterate over the name/value pairs of HTTP headers. To iterate | 212 // Used to iterate over the name/value pairs of HTTP headers. To iterate |
202 // over the values in a multi-value header, use ValuesIterator. | 213 // over the values in a multi-value header, use ValuesIterator. |
203 // See AssembleRawHeaders for joining line continuations (this iterator | 214 // See AssembleRawHeaders for joining line continuations (this iterator |
204 // does not expect any). | 215 // does not expect any). |
205 class NET_EXPORT HeadersIterator { | 216 class NET_EXPORT HeadersIterator { |
206 public: | 217 public: |
207 HeadersIterator(std::string::const_iterator headers_begin, | 218 HeadersIterator(std::string::const_iterator headers_begin, |
208 std::string::const_iterator headers_end, | 219 std::string::const_iterator headers_end, |
209 const std::string& line_delimiter); | 220 const std::string& line_delimiter); |
210 ~HeadersIterator(); | 221 ~HeadersIterator(); |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 // into the original's unquoted_value_ member. | 361 // into the original's unquoted_value_ member. |
351 std::string unquoted_value_; | 362 std::string unquoted_value_; |
352 | 363 |
353 bool value_is_quoted_; | 364 bool value_is_quoted_; |
354 }; | 365 }; |
355 }; | 366 }; |
356 | 367 |
357 } // namespace net | 368 } // namespace net |
358 | 369 |
359 #endif // NET_HTTP_HTTP_UTIL_H_ | 370 #endif // NET_HTTP_HTTP_UTIL_H_ |
OLD | NEW |