Index: net/http/http_response_headers.cc |
diff --git a/net/http/http_response_headers.cc b/net/http/http_response_headers.cc |
index 88017d0b93ecfb286c2a2503c3a94ef814a56bfb..0072976ada2e16891a487683d7c2ed1dd214be71 100644 |
--- a/net/http/http_response_headers.cc |
+++ b/net/http/http_response_headers.cc |
@@ -1419,6 +1419,31 @@ bool HttpResponseHeaders::GetChromeProxyInfo( |
return false; |
} |
+ |
+bool HttpResponseHeaders::IsChromeProxyResponse() const { |
+ const size_t kVersionSize = 4; |
+ const char kChromeProxyViaValue[] = "Chrome-Compression-Proxy"; |
+ size_t value_len = strlen(kChromeProxyViaValue); |
+ void* iter = NULL; |
+ std::string value; |
+ |
+ // Case-sensitive comparison of |value|. Assumes the received protocol and the |
+ // space following it are always |kVersionSize| characters. E.g., |
+ // 'Via: 1.1 Chrome-Compression-Proxy' |
+ while (EnumerateHeader(&iter, "via", &value)) { |
+ if (!value.compare(kVersionSize, value_len, kChromeProxyViaValue)) |
+ return true; |
+ } |
+ |
+ // TODO(bengr): Remove deprecated header value. |
+ const char kDeprecatedChromeProxyViaValue[] = "1.1 Chrome Compression Proxy"; |
+ iter = NULL; |
+ while (EnumerateHeader(&iter, "via", &value)) |
+ if (value == kDeprecatedChromeProxyViaValue) |
+ return true; |
+ |
+ return false; |
+} |
#endif // defined(SPDY_PROXY_AUTH_ORIGIN) |
} // namespace net |