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, platform): | 28 def WillStartBrowser(self, browser): |
29 self._power_metric = power.PowerMetric(platform) | 29 self._power_metric = power.PowerMetric(browser) |
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 |