OLD | NEW |
1 # Copyright 2012 The Chromium Authors. All rights reserved. | 1 # Copyright 2012 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 from metrics import power | 5 from metrics import power |
6 from telemetry.page import page_measurement | 6 from telemetry.page import page_measurement |
7 from telemetry.timeline import model | 7 from telemetry.timeline import model |
| 8 from telemetry.value import scalar |
8 | 9 |
9 | 10 |
10 class ImageDecoding(page_measurement.PageMeasurement): | 11 class ImageDecoding(page_measurement.PageMeasurement): |
11 def __init__(self): | 12 def __init__(self): |
12 super(ImageDecoding, self).__init__() | 13 super(ImageDecoding, self).__init__() |
13 self._power_metric = None | 14 self._power_metric = None |
14 | 15 |
15 def CustomizeBrowserOptions(self, options): | 16 def CustomizeBrowserOptions(self, options): |
16 options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') | 17 options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') |
17 power.PowerMetric.CustomizeBrowserOptions(options) | 18 power.PowerMetric.CustomizeBrowserOptions(options) |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 'image_decoding_measurement_limit_results_to_min_iterations') and | 61 'image_decoding_measurement_limit_results_to_min_iterations') and |
61 page.image_decoding_measurement_limit_results_to_min_iterations): | 62 page.image_decoding_measurement_limit_results_to_min_iterations): |
62 assert _IsDone() | 63 assert _IsDone() |
63 min_iterations = tab.EvaluateJavaScript('minIterations') | 64 min_iterations = tab.EvaluateJavaScript('minIterations') |
64 decode_image_events = decode_image_events[-min_iterations:] | 65 decode_image_events = decode_image_events[-min_iterations:] |
65 | 66 |
66 durations = [d.duration for d in decode_image_events] | 67 durations = [d.duration for d in decode_image_events] |
67 assert durations, 'Failed to find "Decode Image" trace events.' | 68 assert durations, 'Failed to find "Decode Image" trace events.' |
68 | 69 |
69 image_decoding_avg = sum(durations) / len(durations) | 70 image_decoding_avg = sum(durations) / len(durations) |
70 results.Add('ImageDecoding_avg', 'ms', image_decoding_avg) | 71 results.AddValue(scalar.ScalarValue( |
71 results.Add('ImageLoading_avg', 'ms', | 72 results.current_page, 'ImageDecoding_avg', 'ms', image_decoding_avg)) |
72 tab.EvaluateJavaScript('averageLoadingTimeMs()')) | 73 results.AddValue(scalar.ScalarValue( |
| 74 results.current_page, 'ImageLoading_avg', 'ms', |
| 75 tab.EvaluateJavaScript('averageLoadingTimeMs()'))) |
73 | 76 |
74 def CleanUpAfterPage(self, page, tab): | 77 def CleanUpAfterPage(self, page, tab): |
75 if tab.browser.is_tracing_running: | 78 if tab.browser.is_tracing_running: |
76 tab.browser.StopTracing() | 79 tab.browser.StopTracing() |
OLD | NEW |