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_measurement | 9 from telemetry.page import page_measurement |
10 | 10 |
11 | 11 |
12 class Media(page_measurement.PageMeasurement): | 12 class Media(page_measurement.PageMeasurement): |
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 results_are_the_same_on_every_page(self): | |
29 """Results can vary from page to page based on media events taking place.""" | |
30 return False | |
31 | |
32 def WillStartBrowser(self, browser): | 28 def WillStartBrowser(self, browser): |
33 self._power_metric = power.PowerMetric(browser) | 29 self._power_metric = power.PowerMetric(browser) |
34 | 30 |
35 def CustomizeBrowserOptions(self, options): | 31 def CustomizeBrowserOptions(self, options): |
36 # 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. |
37 options.AppendExtraBrowserArgs( | 33 options.AppendExtraBrowserArgs( |
38 '--disable-gesture-requirement-for-media-playback') | 34 '--disable-gesture-requirement-for-media-playback') |
39 power.PowerMetric.CustomizeBrowserOptions(options) | 35 power.PowerMetric.CustomizeBrowserOptions(options) |
40 | 36 |
41 def DidNavigateToPage(self, page, tab): | 37 def DidNavigateToPage(self, page, tab): |
(...skipping 21 matching lines...) Expand all Loading... |
63 self._cpu_metric.Stop(page, tab) | 59 self._cpu_metric.Stop(page, tab) |
64 self._memory_metric.Stop(page, tab) | 60 self._memory_metric.Stop(page, tab) |
65 self._power_metric.Stop(page, tab) | 61 self._power_metric.Stop(page, tab) |
66 self._cpu_metric.AddResults(tab, results, trace_name=trace_name) | 62 self._cpu_metric.AddResults(tab, results, trace_name=trace_name) |
67 exclude_metrics = ['WorkingSetSizePeak', 'SystemCommitCharge', 'VMPeak', | 63 exclude_metrics = ['WorkingSetSizePeak', 'SystemCommitCharge', 'VMPeak', |
68 'VM'] | 64 'VM'] |
69 self._memory_metric.AddResults(tab, results, | 65 self._memory_metric.AddResults(tab, results, |
70 trace_name=trace_name, | 66 trace_name=trace_name, |
71 exclude_metrics=exclude_metrics) | 67 exclude_metrics=exclude_metrics) |
72 self._power_metric.AddResults(tab, results) | 68 self._power_metric.AddResults(tab, results) |
73 | |
OLD | NEW |