| 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 import logging | 5 import logging |
| 6 import time | 6 import time |
| 7 | 7 |
| 8 from common import chrome_proxy_metrics | 8 from common import chrome_proxy_metrics |
| 9 from common import network_metrics | 9 from common import network_metrics |
| 10 from common.chrome_proxy_metrics import ChromeProxyMetricException | 10 from common.chrome_proxy_metrics import ChromeProxyMetricException |
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 254 raise ChromeProxyMetricException, ( | 254 raise ChromeProxyMetricException, ( |
| 255 'Expected at least one LoFi response, but zero such responses were ' | 255 'Expected at least one LoFi response, but zero such responses were ' |
| 256 'received.') | 256 'received.') |
| 257 | 257 |
| 258 results.AddValue(scalar.ScalarValue( | 258 results.AddValue(scalar.ScalarValue( |
| 259 results.current_page, 'lo_fi_request', 'count', lo_fi_request_count)) | 259 results.current_page, 'lo_fi_request', 'count', lo_fi_request_count)) |
| 260 results.AddValue(scalar.ScalarValue( | 260 results.AddValue(scalar.ScalarValue( |
| 261 results.current_page, 'lo_fi_response', 'count', lo_fi_response_count)) | 261 results.current_page, 'lo_fi_response', 'count', lo_fi_response_count)) |
| 262 super(ChromeProxyMetric, self).AddResults(tab, results) | 262 super(ChromeProxyMetric, self).AddResults(tab, results) |
| 263 | 263 |
| 264 def AddResultsForPassThrough(self, tab, results): |
| 265 compressed_count = 0 |
| 266 compressed_size = 0 |
| 267 pass_through_count = 0 |
| 268 pass_through_size = 0 |
| 269 |
| 270 for resp in self.IterResponses(tab): |
| 271 if 'favicon.ico' in resp.response.url: |
| 272 continue |
| 273 if not resp.HasChromeProxyViaHeader(): |
| 274 r = resp.response |
| 275 raise ChromeProxyMetricException, ( |
| 276 '%s: Should have Via header (%s) (refer=%s, status=%d)' % ( |
| 277 r.url, r.GetHeader('Via'), r.GetHeader('Referer'), r.status)) |
| 278 if resp.HasChromeProxyPassThroughRequest(): |
| 279 pass_through_count += 1 |
| 280 pass_through_size = resp.content_length |
| 281 else: |
| 282 compressed_count += 1 |
| 283 compressed_size = resp.content_length |
| 284 |
| 285 if pass_through_count != 1: |
| 286 raise ChromeProxyMetricException, ( |
| 287 'Expected exactly one Chrome-Proxy pass-through request, but %d ' |
| 288 'such requests were sent.' % (pass_through_count)) |
| 289 |
| 290 if compressed_count != 1: |
| 291 raise ChromeProxyMetricException, ( |
| 292 'Expected exactly one compressed request, but %d such requests were ' |
| 293 'received.' % (compressed_count)) |
| 294 |
| 295 if compressed_size >= pass_through_size: |
| 296 raise ChromeProxyMetricException, ( |
| 297 'Compressed image is %d bytes and pass-through image is %d. ' |
| 298 'Expecting compressed image size to be less than pass-through ' |
| 299 'image.' % (compressed_size, pass_through_size)) |
| 300 |
| 301 results.AddValue(scalar.ScalarValue( |
| 302 results.current_page, 'compressed', 'count', compressed_count)) |
| 303 results.AddValue(scalar.ScalarValue( |
| 304 results.current_page, 'compressed_size', 'bytes', compressed_size)) |
| 305 results.AddValue(scalar.ScalarValue( |
| 306 results.current_page, 'pass_through', 'count', pass_through_count)) |
| 307 results.AddValue(scalar.ScalarValue( |
| 308 results.current_page, 'pass_through_size', 'bytes', pass_through_size)) |
| 309 |
| 264 def AddResultsForBypass(self, tab, results): | 310 def AddResultsForBypass(self, tab, results): |
| 265 bypass_count = 0 | 311 bypass_count = 0 |
| 266 | 312 |
| 267 for resp in self.IterResponses(tab): | 313 for resp in self.IterResponses(tab): |
| 268 if resp.HasChromeProxyViaHeader(): | 314 if resp.HasChromeProxyViaHeader(): |
| 269 r = resp.response | 315 r = resp.response |
| 270 raise ChromeProxyMetricException, ( | 316 raise ChromeProxyMetricException, ( |
| 271 '%s: Should not have Via header (%s) (refer=%s, status=%d)' % ( | 317 '%s: Should not have Via header (%s) (refer=%s, status=%d)' % ( |
| 272 r.url, r.GetHeader('Via'), r.GetHeader('Referer'), r.status)) | 318 r.url, r.GetHeader('Via'), r.GetHeader('Referer'), r.status)) |
| 273 bypass_count += 1 | 319 bypass_count += 1 |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 via_count += 1 | 556 via_count += 1 |
| 511 if via_count == 0: | 557 if via_count == 0: |
| 512 raise ChromeProxyMetricException, ( | 558 raise ChromeProxyMetricException, ( |
| 513 'Expected at least one response through the proxy after the bypass ' | 559 'Expected at least one response through the proxy after the bypass ' |
| 514 'expired, but zero such responses were received.') | 560 'expired, but zero such responses were received.') |
| 515 | 561 |
| 516 results.AddValue(scalar.ScalarValue( | 562 results.AddValue(scalar.ScalarValue( |
| 517 results.current_page, 'bypass', 'count', bypass_count)) | 563 results.current_page, 'bypass', 'count', bypass_count)) |
| 518 results.AddValue(scalar.ScalarValue( | 564 results.AddValue(scalar.ScalarValue( |
| 519 results.current_page, 'via', 'count', via_count)) | 565 results.current_page, 'via', 'count', via_count)) |
| OLD | NEW |