| Index: components/data_reduction_proxy/common/data_reduction_proxy_headers.h
|
| diff --git a/components/data_reduction_proxy/common/data_reduction_proxy_headers.h b/components/data_reduction_proxy/common/data_reduction_proxy_headers.h
|
| index 28eccee3073e6c84e4779a338e6e36eb035761e9..319d90da8194c7aa26267192c38f326da497fb1d 100644
|
| --- a/components/data_reduction_proxy/common/data_reduction_proxy_headers.h
|
| +++ b/components/data_reduction_proxy/common/data_reduction_proxy_headers.h
|
| @@ -41,8 +41,12 @@ bool ParseHeadersAndSetProxyInfo(const net::HttpResponseHeaders* headers,
|
| DataReductionProxyInfo* proxy_info);
|
|
|
| // Returns true if the response contains the data reduction proxy Via header
|
| -// value. Used to check the integrity of data reduction proxy responses.
|
| -bool HasDataReductionProxyViaHeader(const net::HttpResponseHeaders* headers);
|
| +// value. If non-NULL, sets |has_intermediary| to true if another server added
|
| +// a Via header after the data reduction proxy, and to false otherwise. Used to
|
| +// check the integrity of data reduction proxy responses and whether there are
|
| +// other middleboxes between the data reduction proxy and the client.
|
| +bool HasDataReductionProxyViaHeader(const net::HttpResponseHeaders* headers,
|
| + bool* has_intermediary);
|
|
|
| // Returns the reason why the Chrome proxy should be bypassed or not, and
|
| // populates |proxy_info| with information on how long to bypass if
|
| @@ -51,11 +55,44 @@ net::ProxyService::DataReductionProxyBypassType GetDataReductionProxyBypassType(
|
| const net::HttpResponseHeaders* headers,
|
| DataReductionProxyInfo* proxy_info);
|
|
|
| +// Searches for the specified Chrome-Proxy action, and if present saves its
|
| +// value as a string in |action_value|. Only returns the first one and ignores
|
| +// the rest if multiple actions match |action_prefix|.
|
| +bool GetDataReductionProxyActionValue(
|
| + const net::HttpResponseHeaders* headers,
|
| + const std::string& action_prefix,
|
| + std::string* action_value);
|
| +
|
| // Searches for the specified Chrome-Proxy action, and if present interprets
|
| // its value as a duration in seconds.
|
| bool ParseHeadersAndSetBypassDuration(const net::HttpResponseHeaders* headers,
|
| const std::string& action_prefix,
|
| base::TimeDelta* bypass_duration);
|
|
|
| +// Gets the fingerprint of the Chrome-Proxy header.
|
| +bool GetDataReductionProxyActionFingerprintChromeProxy(
|
| + const net::HttpResponseHeaders* headers,
|
| + std::string* chrome_proxy_fingerprint);
|
| +
|
| +// Gets the fingerprint of the Via header.
|
| +bool GetDataReductionProxyActionFingerprintVia(
|
| + const net::HttpResponseHeaders* headers,
|
| + std::string* via_fingerprint);
|
| +
|
| +// Gets the fingerprint of a list of headers.
|
| +bool GetDataReductionProxyActionFingerprintOtherHeaders(
|
| + const net::HttpResponseHeaders* headers,
|
| + std::string* other_headers_fingerprint);
|
| +
|
| +// Gets the fingerprint of Content-Length header.
|
| +bool GetDataReductionProxyActionFingerprintContentLength(
|
| + const net::HttpResponseHeaders* headers,
|
| + std::string* content_length_fingerprint);
|
| +
|
| +// Returns values of the Chrome-Proxy header, but with its fingerprint removed.
|
| +void GetDataReductionProxyHeaderWithFingerprintRemoved(
|
| + const net::HttpResponseHeaders* headers,
|
| + std::vector<std::string>* values);
|
| +
|
| } // namespace data_reduction_proxy
|
| #endif // COMPONENTS_DATA_REDUCTION_PROXY_COMMON_DATA_REDUCTION_PROXY_HEADERS_H_
|
|
|