Chromium Code Reviews| Index: chrome/browser/net/spdyproxy/data_reduction_proxy_settings.cc |
| diff --git a/chrome/browser/net/spdyproxy/data_reduction_proxy_settings.cc b/chrome/browser/net/spdyproxy/data_reduction_proxy_settings.cc |
| index c8aa7c9c53e782c0c66160433e38d7038d850c76..7e3af65c07672c6a7dd4e8eada41c090f552cee7 100644 |
| --- a/chrome/browser/net/spdyproxy/data_reduction_proxy_settings.cc |
| +++ b/chrome/browser/net/spdyproxy/data_reduction_proxy_settings.cc |
| @@ -209,12 +209,32 @@ bool DataReductionProxySettings::IsPreconnectHintingAllowed() { |
| // static |
| bool DataReductionProxySettings::WasFetchedViaProxy( |
| - const net::HttpResponseHeaders* headers) { |
| - const char kChromeProxyViaValue[] = "1.1 Chrome Compression Proxy"; |
| + const net::HttpResponseHeaders* response_headers) { |
| + if (!response_headers) { |
| + return false; |
| + } |
| + |
| + const size_t kVersionSize = 4; |
| + const char kDataReductionProxyViaValue[] = "Chrome-Compression-Proxy"; |
|
mef
2014/02/07 20:33:25
Any particular reason to skip version?
Also, I t
bengr
2014/02/07 23:55:36
The version is the HTTP version from the origin, w
mef
2014/02/12 18:12:18
Are you sure? From this comment in rfc2616 it seem
bengr
2014/02/12 21:14:00
It is always the protocol used for the response fr
|
| + size_t value_len = strlen(kDataReductionProxyViaValue); |
| void* iter = NULL; |
| std::string value; |
| - while (headers->EnumerateHeader(&iter, "via", &value)) |
| - if (value == kChromeProxyViaValue) return true; |
| + |
| + // Case-sensitive comparison. Assumes the received protocol and the space |
| + // following it are always |kVersionSize| characters. E.g., |
| + // 'Via: 1.1 Chrome-Compression-Proxy' |
| + while (response_headers->EnumerateHeader(&iter, "via", &value)) { |
| + if (!value.compare(kVersionSize, value_len, kDataReductionProxyViaValue)) |
| + return true; |
| + } |
| + |
| + // TODO(bengr): Remove deprecated header value. |
| + const char kDeprecatedDataReductionProxyViaValue[] = |
| + "1.1 Chrome Compression Proxy"; |
| + iter = NULL; |
| + while (response_headers->EnumerateHeader(&iter, "via", &value)) |
| + if (value == kDeprecatedDataReductionProxyViaValue) return true; |
| + |
| return false; |
| } |