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