| 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 base64 | 5 import base64 |
| 6 import gzip | 6 import gzip |
| 7 import hashlib | 7 import hashlib |
| 8 import io | 8 import io |
| 9 import logging | 9 import logging |
| 10 import zlib | 10 import zlib |
| 11 | 11 |
| 12 from metrics import Metric | 12 from metrics import Metric |
| 13 from telemetry.page import page_measurement | 13 from telemetry.page import page_measurement |
| 14 # All network metrics are Chrome only for now. | 14 # All network metrics are Chrome only for now. |
| 15 from telemetry.core.backends.chrome import inspector_network | 15 from telemetry.core.backends.chrome import inspector_network |
| 16 from telemetry.timeline import recording_options | 16 from telemetry.timeline import recording_options |
| 17 from telemetry.value import scalar | |
| 18 | 17 |
| 19 | 18 |
| 20 class NetworkMetricException(page_measurement.MeasurementFailure): | 19 class NetworkMetricException(page_measurement.MeasurementFailure): |
| 21 pass | 20 pass |
| 22 | 21 |
| 23 | 22 |
| 24 class HTTPResponse(object): | 23 class HTTPResponse(object): |
| 25 """ Represents an HTTP response from a timeline event.""" | 24 """ Represents an HTTP response from a timeline event.""" |
| 26 def __init__(self, event): | 25 def __init__(self, event): |
| 27 self._response = ( | 26 self._response = ( |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 161 | 160 |
| 162 resource = resp.response.url | 161 resource = resp.response.url |
| 163 resource_signature = resp.url_signature | 162 resource_signature = resp.url_signature |
| 164 cl = resp.content_length | 163 cl = resp.content_length |
| 165 if resp.has_original_content_length: | 164 if resp.has_original_content_length: |
| 166 ocl = resp.original_content_length | 165 ocl = resp.original_content_length |
| 167 if ocl < cl: | 166 if ocl < cl: |
| 168 logging.warning('original content length (%d) is less than content ' | 167 logging.warning('original content length (%d) is less than content ' |
| 169 'lenght(%d) for resource %s', ocl, cl, resource) | 168 'lenght(%d) for resource %s', ocl, cl, resource) |
| 170 if self.add_result_for_resource: | 169 if self.add_result_for_resource: |
| 171 results.AddValue(scalar.ScalarValue( | 170 results.Add('resource_data_saving_' + resource_signature, |
| 172 results.current_page, | 171 'percent', resp.data_saving_rate * 100) |
| 173 'resource_data_saving_' + resource_signature, 'percent', | 172 results.Add('resource_original_content_length_' + resource_signature, |
| 174 resp.data_saving_rate * 100)) | 173 'bytes', ocl) |
| 175 results.AddValue(scalar.ScalarValue( | |
| 176 results.current_page, | |
| 177 'resource_original_content_length_' + resource_signature, 'bytes', | |
| 178 ocl)) | |
| 179 original_content_length += ocl | 174 original_content_length += ocl |
| 180 else: | 175 else: |
| 181 original_content_length += cl | 176 original_content_length += cl |
| 182 if self.add_result_for_resource: | 177 if self.add_result_for_resource: |
| 183 results.AddValue(scalar.ScalarValue( | 178 results.Add( |
| 184 results.current_page, | 179 'resource_content_length_' + resource_signature, 'bytes', cl) |
| 185 'resource_content_length_' + resource_signature, 'bytes', cl)) | |
| 186 content_length += cl | 180 content_length += cl |
| 187 | 181 |
| 188 results.AddValue(scalar.ScalarValue( | 182 results.Add('content_length', 'bytes', content_length) |
| 189 results.current_page, 'content_length', 'bytes', content_length)) | 183 results.Add('original_content_length', 'bytes', original_content_length) |
| 190 results.AddValue(scalar.ScalarValue( | |
| 191 results.current_page, 'original_content_length', 'bytes', | |
| 192 original_content_length)) | |
| 193 if self.compute_data_saving: | 184 if self.compute_data_saving: |
| 194 if (original_content_length > 0 and | 185 if (original_content_length > 0 and |
| 195 original_content_length >= content_length): | 186 original_content_length >= content_length): |
| 196 saving = (float(original_content_length-content_length) * 100 / | 187 saving = (float(original_content_length-content_length) * 100 / |
| 197 original_content_length) | 188 original_content_length) |
| 198 results.AddValue(scalar.ScalarValue( | 189 results.Add('data_saving', 'percent', saving) |
| 199 results.current_page, 'data_saving', 'percent', saving)) | |
| 200 else: | 190 else: |
| 201 results.AddValue(scalar.ScalarValue( | 191 results.Add('data_saving', 'percent', 0.0) |
| 202 results.current_page, 'data_saving', 'percent', 0.0)) | |
| OLD | NEW |