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 memory | 7 from metrics import memory |
8 from telemetry.page import page_measurement | 8 from telemetry.page import page_measurement |
9 | 9 |
10 | 10 |
11 class Media(page_measurement.PageMeasurement): | 11 class Media(page_measurement.PageMeasurement): |
12 """The MediaMeasurement class gathers media-related metrics on a page set. | 12 """The MediaMeasurement class gathers media-related metrics on a page set. |
13 | 13 |
14 Media metrics recorded are controlled by metrics/media.js. At the end of the | 14 Media metrics recorded are controlled by metrics/media.js. At the end of the |
15 test each metric for every media element in the page are reported. | 15 test each metric for every media element in the page are reported. |
16 """ | 16 """ |
17 | 17 |
18 def __init__(self): | 18 def __init__(self): |
19 super(Media, self).__init__('media_metrics') | 19 super(Media, self).__init__('media_metrics') |
20 self._media_metric = None | 20 self._media_metric = None |
21 # Used to add browser memory and CPU metrics to results per test. | 21 # Used to add browser memory and CPU metrics to results per test. |
22 self._add_browser_metrics = False | 22 self._add_browser_metrics = False |
23 self._cpu_metric = None | 23 self._cpu_metric = None |
24 self._memory_metric = None | 24 self._memory_metric = None |
25 | 25 |
26 def results_are_the_same_on_every_page(self): | 26 def results_are_the_same_on_every_page(self): |
27 """Results can vary from page to page based on media events taking place.""" | 27 """Results can vary from page to page based on media events taking place.""" |
28 return False | 28 return False |
29 | 29 |
| 30 def CustomizeBrowserOptions(self, options): |
| 31 memory.MemoryMetric.CustomizeBrowserOptions(options) |
| 32 |
30 def DidNavigateToPage(self, page, tab): | 33 def DidNavigateToPage(self, page, tab): |
31 """Override to do operations right after the page is navigated.""" | 34 """Override to do operations right after the page is navigated.""" |
32 self._media_metric = media.MediaMetric(tab) | 35 self._media_metric = media.MediaMetric(tab) |
33 self._media_metric.Start(page, tab) | 36 self._media_metric.Start(page, tab) |
34 # Reset to false for every page. | 37 # Reset to false for every page. |
35 self._add_browser_metrics = False | 38 self._add_browser_metrics = False |
36 if hasattr(page, 'add_browser_metrics'): | 39 if hasattr(page, 'add_browser_metrics'): |
37 self._add_browser_metrics = page.add_browser_metrics | 40 self._add_browser_metrics = page.add_browser_metrics |
38 | 41 |
39 # Start browser metrics at page level to isolate startup CPU usage. | 42 # Start browser metrics at page level to isolate startup CPU usage. |
40 if self._add_browser_metrics: | 43 if self._add_browser_metrics: |
41 self._cpu_metric = cpu.CpuMetric(tab.browser) | 44 self._cpu_metric = cpu.CpuMetric(tab.browser) |
42 self._cpu_metric.Start(page, tab) | 45 self._cpu_metric.Start(page, tab) |
43 # No need to start memory metric since we are only interested in Summary | |
44 # results. | |
45 self._memory_metric = memory.MemoryMetric(tab.browser) | 46 self._memory_metric = memory.MemoryMetric(tab.browser) |
| 47 self._memory_metric.Start(page, tab) |
46 | 48 |
47 def MeasurePage(self, page, tab, results): | 49 def MeasurePage(self, page, tab, results): |
48 """Measure the page's performance.""" | 50 """Measure the page's performance.""" |
49 self._media_metric.Stop(page, tab) | 51 self._media_metric.Stop(page, tab) |
50 trace_name = self._media_metric.AddResults(tab, results) | 52 trace_name = self._media_metric.AddResults(tab, results) |
51 if self._add_browser_metrics: | 53 if self._add_browser_metrics: |
52 self._cpu_metric.Stop(page, tab) | 54 self._cpu_metric.Stop(page, tab) |
53 self._cpu_metric.AddResults(tab, results, trace_name=trace_name) | 55 self._cpu_metric.AddResults(tab, results, trace_name=trace_name) |
54 self._memory_metric.AddSummaryResults(results, trace_name=trace_name) | 56 self._memory_metric.Stop(page, tab) |
| 57 self._memory_metric.AddResults(tab, results, trace_name=trace_name) |
OLD | NEW |