| 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 measurements import PageTestMeasurement |
| 5 from metrics import power | 6 from metrics import power |
| 6 | |
| 7 from telemetry.core.platform import tracing_category_filter | 7 from telemetry.core.platform import tracing_category_filter |
| 8 from telemetry.core.platform import tracing_options | 8 from telemetry.core.platform import tracing_options |
| 9 from telemetry.page import page_test | |
| 10 from telemetry.timeline import model | 9 from telemetry.timeline import model |
| 11 from telemetry.value import scalar | 10 from telemetry.value import scalar |
| 12 | 11 |
| 13 | 12 |
| 14 class ImageDecoding(page_test.PageTest): | 13 class ImageDecoding(PageTestMeasurement): |
| 15 def __init__(self): | 14 def __init__(self): |
| 16 super(ImageDecoding, self).__init__() | 15 super(ImageDecoding, self).__init__() |
| 17 self._power_metric = None | 16 self._power_metric = None |
| 18 | 17 |
| 19 def CustomizeBrowserOptions(self, options): | 18 def CustomizeBrowserOptions(self, options): |
| 19 super(ImageDecoding, self).CustomizeBrowserOptions(options) |
| 20 options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') | 20 options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') |
| 21 power.PowerMetric.CustomizeBrowserOptions(options) | 21 power.PowerMetric.CustomizeBrowserOptions(options) |
| 22 | 22 |
| 23 def WillStartBrowser(self, platform): | 23 def WillStartBrowser(self, platform): |
| 24 self._power_metric = power.PowerMetric(platform) | 24 self._power_metric = power.PowerMetric(platform) |
| 25 | 25 |
| 26 def WillNavigateToPage(self, page, tab): | 26 def WillNavigateToPage(self, page, tab): |
| 27 tab.ExecuteJavaScript(""" | 27 tab.ExecuteJavaScript(""" |
| 28 if (window.chrome && | 28 if (window.chrome && |
| 29 chrome.gpuBenchmarking && | 29 chrome.gpuBenchmarking && |
| (...skipping 25 matching lines...) Expand all Loading... |
| 55 tab.browser.platform.tracing_controller.Start(options, category_filter) | 55 tab.browser.platform.tracing_controller.Start(options, category_filter) |
| 56 | 56 |
| 57 def StopBrowserAfterPage(self, browser, page): | 57 def StopBrowserAfterPage(self, browser, page): |
| 58 return not browser.tabs[0].ExecuteJavaScript(""" | 58 return not browser.tabs[0].ExecuteJavaScript(""" |
| 59 window.chrome && | 59 window.chrome && |
| 60 chrome.gpuBenchmarking && | 60 chrome.gpuBenchmarking && |
| 61 chrome.gpuBenchmarking.clearImageCache; | 61 chrome.gpuBenchmarking.clearImageCache; |
| 62 """) | 62 """) |
| 63 | 63 |
| 64 def ValidateAndMeasurePage(self, page, tab, results): | 64 def ValidateAndMeasurePage(self, page, tab, results): |
| 65 super(ImageDecoding, self).ValidateAndMeasurePage(page, tab, results) |
| 65 timeline_data = tab.browser.platform.tracing_controller.Stop() | 66 timeline_data = tab.browser.platform.tracing_controller.Stop() |
| 66 timeline_model = model.TimelineModel(timeline_data) | 67 timeline_model = model.TimelineModel(timeline_data) |
| 67 self._power_metric.Stop(page, tab) | 68 self._power_metric.Stop(page, tab) |
| 68 self._power_metric.AddResults(tab, results) | 69 self._power_metric.AddResults(tab, results) |
| 69 | 70 |
| 70 def _IsDone(): | 71 def _IsDone(): |
| 71 return tab.EvaluateJavaScript('isDone') | 72 return tab.EvaluateJavaScript('isDone') |
| 72 | 73 |
| 73 decode_image_events = timeline_model.GetAllEventsOfName( | 74 decode_image_events = timeline_model.GetAllEventsOfName( |
| 74 'ImageFrameGenerator::decode') | 75 'ImageFrameGenerator::decode') |
| (...skipping 20 matching lines...) Expand all Loading... |
| 95 'formats: gif, png, jpg, and webp. The image files are ' | 96 'formats: gif, png, jpg, and webp. The image files are ' |
| 96 'located at chrome/test/data/image_decoding.')) | 97 'located at chrome/test/data/image_decoding.')) |
| 97 results.AddValue(scalar.ScalarValue( | 98 results.AddValue(scalar.ScalarValue( |
| 98 results.current_page, 'ImageLoading_avg', 'ms', | 99 results.current_page, 'ImageLoading_avg', 'ms', |
| 99 tab.EvaluateJavaScript('averageLoadingTimeMs()'))) | 100 tab.EvaluateJavaScript('averageLoadingTimeMs()'))) |
| 100 | 101 |
| 101 def CleanUpAfterPage(self, page, tab): | 102 def CleanUpAfterPage(self, page, tab): |
| 102 tracing_controller = tab.browser.platform.tracing_controller | 103 tracing_controller = tab.browser.platform.tracing_controller |
| 103 if tracing_controller.is_tracing_running: | 104 if tracing_controller.is_tracing_running: |
| 104 tracing_controller.Stop() | 105 tracing_controller.Stop() |
| OLD | NEW |