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. If non-NULL, sets |has_intermediary| to true if another server added | 44 // value. Used to check the integrity of data reduction proxy responses. |
45 // a Via header after the data reduction proxy, and to false otherwise. Used to | 45 bool HasDataReductionProxyViaHeader(const net::HttpResponseHeaders* headers); |
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); | |
50 | 46 |
51 // Returns the reason why the Chrome proxy should be bypassed or not, and | 47 // Returns the reason why the Chrome proxy should be bypassed or not, and |
52 // populates |proxy_info| with information on how long to bypass if | 48 // populates |proxy_info| with information on how long to bypass if |
53 // applicable. | 49 // applicable. |
54 net::ProxyService::DataReductionProxyBypassType GetDataReductionProxyBypassType( | 50 net::ProxyService::DataReductionProxyBypassType GetDataReductionProxyBypassType( |
55 const net::HttpResponseHeaders* headers, | 51 const net::HttpResponseHeaders* headers, |
56 DataReductionProxyInfo* proxy_info); | 52 DataReductionProxyInfo* proxy_info); |
57 | 53 |
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 | |
66 // Searches for the specified Chrome-Proxy action, and if present interprets | 54 // Searches for the specified Chrome-Proxy action, and if present interprets |
67 // its value as a duration in seconds. | 55 // its value as a duration in seconds. |
68 bool ParseHeadersAndSetBypassDuration(const net::HttpResponseHeaders* headers, | 56 bool ParseHeadersAndSetBypassDuration(const net::HttpResponseHeaders* headers, |
69 const std::string& action_prefix, | 57 const std::string& action_prefix, |
70 base::TimeDelta* bypass_duration); | 58 base::TimeDelta* bypass_duration); |
71 | 59 |
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 | |
97 } // namespace data_reduction_proxy | 60 } // namespace data_reduction_proxy |
98 #endif // COMPONENTS_DATA_REDUCTION_PROXY_COMMON_DATA_REDUCTION_PROXY_HEADERS_H
_ | 61 #endif // COMPONENTS_DATA_REDUCTION_PROXY_COMMON_DATA_REDUCTION_PROXY_HEADERS_H
_ |
OLD | NEW |