| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 cpu | 5 from metrics import cpu |
| 6 from metrics import media | 6 from metrics import media |
| 7 from metrics import system_memory | 7 from metrics import system_memory |
| 8 from metrics import power | 8 from metrics import power |
| 9 from telemetry.page import page_test | 9 from telemetry.page import page_test |
| 10 | 10 |
| 11 | 11 |
| 12 class Media(page_test.PageTest): | 12 class Media(page_test.PageTest): |
| 13 """The MediaMeasurement class gathers media-related metrics on a page set. | 13 """The MediaMeasurement class gathers media-related metrics on a page set. |
| 14 | 14 |
| 15 Media metrics recorded are controlled by metrics/media.js. At the end of the | 15 Media metrics recorded are controlled by metrics/media.js. At the end of the |
| 16 test each metric for every media element in the page are reported. | 16 test each metric for every media element in the page are reported. |
| 17 """ | 17 """ |
| 18 | 18 |
| 19 def __init__(self): | 19 def __init__(self): |
| 20 super(Media, self).__init__('RunMediaMetrics') | 20 super(Media, self).__init__('RunMediaMetrics') |
| 21 self._media_metric = None | 21 self._media_metric = None |
| 22 # Used to add browser power and CPU metrics to results per test. | 22 # Used to add browser power and CPU metrics to results per test. |
| 23 self._add_browser_metrics = False | 23 self._add_browser_metrics = False |
| 24 self._cpu_metric = None | 24 self._cpu_metric = None |
| 25 self._memory_metric = None | 25 self._memory_metric = None |
| 26 self._power_metric = None | 26 self._power_metric = None |
| 27 | 27 |
| 28 def WillStartBrowser(self, browser): | 28 def WillStartBrowser(self, platform): |
| 29 self._power_metric = power.PowerMetric(browser) | 29 self._power_metric = power.PowerMetric(platform) |
| 30 | 30 |
| 31 def CustomizeBrowserOptions(self, options): | 31 def CustomizeBrowserOptions(self, options): |
| 32 # Needed to run media actions in JS on touch-based devices as on Android. | 32 # Needed to run media actions in JS on touch-based devices as on Android. |
| 33 options.AppendExtraBrowserArgs( | 33 options.AppendExtraBrowserArgs( |
| 34 '--disable-gesture-requirement-for-media-playback') | 34 '--disable-gesture-requirement-for-media-playback') |
| 35 power.PowerMetric.CustomizeBrowserOptions(options) | 35 power.PowerMetric.CustomizeBrowserOptions(options) |
| 36 | 36 |
| 37 def DidNavigateToPage(self, page, tab): | 37 def DidNavigateToPage(self, page, tab): |
| 38 """Override to do operations right after the page is navigated.""" | 38 """Override to do operations right after the page is navigated.""" |
| 39 self._media_metric = media.MediaMetric(tab) | 39 self._media_metric = media.MediaMetric(tab) |
| (...skipping 19 matching lines...) Expand all Loading... |
| 59 self._cpu_metric.Stop(page, tab) | 59 self._cpu_metric.Stop(page, tab) |
| 60 self._memory_metric.Stop(page, tab) | 60 self._memory_metric.Stop(page, tab) |
| 61 self._power_metric.Stop(page, tab) | 61 self._power_metric.Stop(page, tab) |
| 62 self._cpu_metric.AddResults(tab, results, trace_name=trace_name) | 62 self._cpu_metric.AddResults(tab, results, trace_name=trace_name) |
| 63 exclude_metrics = ['WorkingSetSizePeak', 'SystemCommitCharge', 'VMPeak', | 63 exclude_metrics = ['WorkingSetSizePeak', 'SystemCommitCharge', 'VMPeak', |
| 64 'VM'] | 64 'VM'] |
| 65 self._memory_metric.AddResults(tab, results, | 65 self._memory_metric.AddResults(tab, results, |
| 66 trace_name=trace_name, | 66 trace_name=trace_name, |
| 67 exclude_metrics=exclude_metrics) | 67 exclude_metrics=exclude_metrics) |
| 68 self._power_metric.AddResults(tab, results) | 68 self._power_metric.AddResults(tab, results) |
| OLD | NEW |