Index: tools/chrome_proxy/common/chrome_proxy_metrics.py |
diff --git a/tools/chrome_proxy/common/chrome_proxy_metrics.py b/tools/chrome_proxy/common/chrome_proxy_metrics.py |
index 46c7ed89d80d4bd32977437d73e716b5c2ee5784..3c1b7f222b3665a68f4fca2635085e05198b5a92 100644 |
--- a/tools/chrome_proxy/common/chrome_proxy_metrics.py |
+++ b/tools/chrome_proxy/common/chrome_proxy_metrics.py |
@@ -38,6 +38,20 @@ class ChromeProxyResponse(network_metrics.HTTPResponse): |
return False |
return True |
+ def HasResponseHeader(self, key, value): |
+ response_header = self.response.GetHeader(key) |
+ if not response_header: |
+ return False |
+ values = [v.strip() for v in response_header.split(',')] |
+ return any(v == value for v in values) |
+ |
+ def HasRequestHeader(self, key, value): |
+ if key not in self.response.request_headers: |
+ return False |
+ request_header = self.response.request_headers[key] |
+ values = [v.strip() for v in request_header.split(',')] |
+ return any(v == value for v in values) |
+ |
def HasChromeProxyViaHeader(self): |
via_header = self.response.GetHeader('Via') |
if not via_header: |
@@ -48,11 +62,7 @@ class ChromeProxyResponse(network_metrics.HTTPResponse): |
return any(v[4:] == CHROME_PROXY_VIA_HEADER for v in vias) |
def HasExtraViaHeader(self, extra_header): |
- via_header = self.response.GetHeader('Via') |
- if not via_header: |
- return False |
- vias = [v.strip(' ') for v in via_header.split(',')] |
- return any(v == extra_header for v in vias) |
+ return self.HasResponseHeader('Via', extra_header) |
def IsValidByViaHeader(self): |
return (not self.ShouldHaveChromeProxyViaHeader() or |
@@ -79,15 +89,10 @@ class ChromeProxyResponse(network_metrics.HTTPResponse): |
return None |
def HasChromeProxyLoFiRequest(self): |
- if 'Chrome-Proxy' not in self.response.request_headers: |
- return False |
- chrome_proxy_request_header = self.response.request_headers['Chrome-Proxy'] |
- values = [v.strip() for v in chrome_proxy_request_header.split(',')] |
- return any(v == "q=low" for v in values) |
+ return self.HasRequestHeader('Chrome-Proxy', "q=low") |
def HasChromeProxyLoFiResponse(self): |
- chrome_proxy_response_header = self.response.GetHeader('Chrome-Proxy') |
- if not chrome_proxy_response_header: |
- return False |
- values = [v.strip() for v in chrome_proxy_response_header.split(',')] |
- return any(v == "q=low" for v in values) |
+ return self.HasResponseHeader('Chrome-Proxy', "q=low") |
+ |
+ def HasChromeProxyPassThroughRequest(self): |
+ return self.HasRequestHeader('Chrome-Proxy', "pass-through") |