OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 COMPONENTS_DATA_REDUCTION_PROXY_COMMON_DATA_REDUCTION_PROXY_HEADERS_H_ | 5 #ifndef COMPONENTS_DATA_REDUCTION_PROXY_COMMON_DATA_REDUCTION_PROXY_HEADERS_H_ |
6 #define COMPONENTS_DATA_REDUCTION_PROXY_COMMON_DATA_REDUCTION_PROXY_HEADERS_H_ | 6 #define COMPONENTS_DATA_REDUCTION_PROXY_COMMON_DATA_REDUCTION_PROXY_HEADERS_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 23 matching lines...) Expand all Loading... |
34 // Returns true if the Chrome-Proxy header is present and contains a bypass | 34 // Returns true if the Chrome-Proxy header is present and contains a bypass |
35 // delay. Sets |proxy_info->bypass_duration| to the specified delay if greater | 35 // delay. Sets |proxy_info->bypass_duration| to the specified delay if greater |
36 // than 0, and to 0 otherwise to indicate that the default proxy delay | 36 // than 0, and to 0 otherwise to indicate that the default proxy delay |
37 // (as specified in |ProxyList::UpdateRetryInfoOnFallback|) should be used. | 37 // (as specified in |ProxyList::UpdateRetryInfoOnFallback|) should be used. |
38 // If all available data reduction proxies should by bypassed, |bypass_all| is | 38 // If all available data reduction proxies should by bypassed, |bypass_all| is |
39 // set to true. |proxy_info| must be non-NULL. | 39 // set to true. |proxy_info| must be non-NULL. |
40 bool ParseHeadersAndSetProxyInfo(const net::HttpResponseHeaders* headers, | 40 bool ParseHeadersAndSetProxyInfo(const net::HttpResponseHeaders* headers, |
41 DataReductionProxyInfo* proxy_info); | 41 DataReductionProxyInfo* proxy_info); |
42 | 42 |
43 // Returns true if the response contains the data reduction proxy Via header | 43 // Returns true if the response contains the data reduction proxy Via header |
44 // value. Used to check the integrity of data reduction proxy responses. | 44 // value. If non-NULL, sets |has_intermediary| to true if another server added |
45 bool HasDataReductionProxyViaHeader(const net::HttpResponseHeaders* headers); | 45 // a Via header after the data reduction proxy, and to false otherwise. Used to |
| 46 // check the integrity of data reduction proxy responses and whether there are |
| 47 // other middleboxes between the data reduction proxy and the client. |
| 48 bool HasDataReductionProxyViaHeader(const net::HttpResponseHeaders* headers, |
| 49 bool* has_intermediary); |
46 | 50 |
47 // Returns the reason why the Chrome proxy should be bypassed or not, and | 51 // Returns the reason why the Chrome proxy should be bypassed or not, and |
48 // populates |proxy_info| with information on how long to bypass if | 52 // populates |proxy_info| with information on how long to bypass if |
49 // applicable. | 53 // applicable. |
50 net::ProxyService::DataReductionProxyBypassType GetDataReductionProxyBypassType( | 54 net::ProxyService::DataReductionProxyBypassType GetDataReductionProxyBypassType( |
51 const net::HttpResponseHeaders* headers, | 55 const net::HttpResponseHeaders* headers, |
52 DataReductionProxyInfo* proxy_info); | 56 DataReductionProxyInfo* proxy_info); |
53 | 57 |
| 58 // Searches for the specified Chrome-Proxy action, and if present saves its |
| 59 // value as a string in |action_value|. Only returns the first one and ignores |
| 60 // the rest if multiple actions match |action_prefix|. |
| 61 bool GetDataReductionProxyActionValue( |
| 62 const net::HttpResponseHeaders* headers, |
| 63 const std::string& action_prefix, |
| 64 std::string* action_value); |
| 65 |
54 // Searches for the specified Chrome-Proxy action, and if present interprets | 66 // Searches for the specified Chrome-Proxy action, and if present interprets |
55 // its value as a duration in seconds. | 67 // its value as a duration in seconds. |
56 bool ParseHeadersAndSetBypassDuration(const net::HttpResponseHeaders* headers, | 68 bool ParseHeadersAndSetBypassDuration(const net::HttpResponseHeaders* headers, |
57 const std::string& action_prefix, | 69 const std::string& action_prefix, |
58 base::TimeDelta* bypass_duration); | 70 base::TimeDelta* bypass_duration); |
59 | 71 |
| 72 // Gets the fingerprint of the Chrome-Proxy header. |
| 73 bool GetDataReductionProxyActionFingerprintChromeProxy( |
| 74 const net::HttpResponseHeaders* headers, |
| 75 std::string* chrome_proxy_fingerprint); |
| 76 |
| 77 // Gets the fingerprint of the Via header. |
| 78 bool GetDataReductionProxyActionFingerprintVia( |
| 79 const net::HttpResponseHeaders* headers, |
| 80 std::string* via_fingerprint); |
| 81 |
| 82 // Gets the fingerprint of a list of headers. |
| 83 bool GetDataReductionProxyActionFingerprintOtherHeaders( |
| 84 const net::HttpResponseHeaders* headers, |
| 85 std::string* other_headers_fingerprint); |
| 86 |
| 87 // Gets the fingerprint of Content-Length header. |
| 88 bool GetDataReductionProxyActionFingerprintContentLength( |
| 89 const net::HttpResponseHeaders* headers, |
| 90 std::string* content_length_fingerprint); |
| 91 |
| 92 // Returns values of the Chrome-Proxy header, but with its fingerprint removed. |
| 93 void GetDataReductionProxyHeaderWithFingerprintRemoved( |
| 94 const net::HttpResponseHeaders* headers, |
| 95 std::vector<std::string>* values); |
| 96 |
60 } // namespace data_reduction_proxy | 97 } // namespace data_reduction_proxy |
61 #endif // COMPONENTS_DATA_REDUCTION_PROXY_COMMON_DATA_REDUCTION_PROXY_HEADERS_H
_ | 98 #endif // COMPONENTS_DATA_REDUCTION_PROXY_COMMON_DATA_REDUCTION_PROXY_HEADERS_H
_ |
OLD | NEW |