OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 core import perf_benchmark | 5 from core import perf_benchmark |
6 | 6 |
7 from telemetry import benchmark | 7 from telemetry import benchmark |
8 from telemetry.page import legacy_page_test | 8 from telemetry.page import legacy_page_test |
| 9 from telemetry.timeline import chrome_trace_category_filter |
9 from telemetry.value import list_of_scalar_values | 10 from telemetry.value import list_of_scalar_values |
10 from telemetry.value import scalar | 11 from telemetry.value import scalar |
| 12 from telemetry.web_perf import timeline_based_measurement |
11 | 13 |
12 from measurements import media | 14 from measurements import media |
13 import page_sets | 15 import page_sets |
14 | 16 |
15 | 17 |
16 class _MSEMeasurement(legacy_page_test.LegacyPageTest): | 18 class _MSEMeasurement(legacy_page_test.LegacyPageTest): |
17 | 19 |
18 def __init__(self): | 20 def __init__(self): |
19 super(_MSEMeasurement, self).__init__() | 21 super(_MSEMeasurement, self).__init__() |
20 | 22 |
(...skipping 12 matching lines...) Expand all Loading... |
33 | 35 |
34 else: | 36 else: |
35 results.AddValue(scalar.ScalarValue( | 37 results.AddValue(scalar.ScalarValue( |
36 results.current_page, trace_name, units='ms', | 38 results.current_page, trace_name, units='ms', |
37 value=float(metrics[m]), important=True)) | 39 value=float(metrics[m]), important=True)) |
38 | 40 |
39 | 41 |
40 # android: See media.android.tough_video_cases below | 42 # android: See media.android.tough_video_cases below |
41 # crbug.com/565180: Only include cases that report time_to_play | 43 # crbug.com/565180: Only include cases that report time_to_play |
42 @benchmark.Disabled('android') | 44 @benchmark.Disabled('android') |
43 class Media(perf_benchmark.PerfBenchmark): | 45 class MediaToughVideoCases(perf_benchmark.PerfBenchmark): |
44 """Obtains media metrics for key user scenarios.""" | 46 """Obtains media metrics for key user scenarios.""" |
45 test = media.Media | 47 test = media.Media |
46 page_set = page_sets.ToughVideoCasesPageSet | 48 page_set = page_sets.ToughVideoCasesPageSet |
47 | 49 |
48 @classmethod | 50 @classmethod |
49 def Name(cls): | 51 def Name(cls): |
50 return 'media.tough_video_cases' | 52 return 'media.tough_video_cases' |
51 | 53 |
52 | 54 |
| 55 @benchmark.Owner(emails=['johnchen@chromium.org', 'crouleau@chromium.org'], |
| 56 component='Internals>Media') |
| 57 @benchmark.Disabled('android') |
| 58 class MediaToughVideoCasesTBMv2(perf_benchmark.PerfBenchmark): |
| 59 """Obtains media metrics using TBMv2. |
| 60 Will eventually replace MediaToughVideoCases class.""" |
| 61 page_set = page_sets.ToughVideoCasesPageSet |
| 62 |
| 63 def CreateTimelineBasedMeasurementOptions(self): |
| 64 category_filter = chrome_trace_category_filter.ChromeTraceCategoryFilter() |
| 65 |
| 66 # 'toplevel' category provides CPU time slices used by # cpuTimeMetric. |
| 67 category_filter.AddIncludedCategory('toplevel') |
| 68 |
| 69 # 'rail' category is used by powerMetric to attribute different period of |
| 70 # time to different activities, such as video_animation, etc. |
| 71 category_filter.AddIncludedCategory('rail') |
| 72 |
| 73 options = timeline_based_measurement.Options(category_filter) |
| 74 options.config.enable_atrace_trace = True |
| 75 options.config.atrace_config.categories = ['sched'] |
| 76 options.config.enable_battor_trace = True |
| 77 options.SetTimelineBasedMetrics(['powerMetric', 'cpuTimeMetric']) |
| 78 return options |
| 79 |
| 80 @classmethod |
| 81 def Name(cls): |
| 82 return 'media.tough_video_cases_tbmv2' |
| 83 |
| 84 |
53 # crbug.com/565180: Only include cases that don't report time_to_play | 85 # crbug.com/565180: Only include cases that don't report time_to_play |
54 @benchmark.Disabled('android') | 86 @benchmark.Disabled('android') |
55 @benchmark.Owner(emails=['crouleau@chromium.org', 'videostack-eng@google.com']) | 87 @benchmark.Owner(emails=['crouleau@chromium.org', 'videostack-eng@google.com']) |
56 class MediaExtra(perf_benchmark.PerfBenchmark): | 88 class MediaExtra(perf_benchmark.PerfBenchmark): |
57 """Obtains extra media metrics for key user scenarios.""" | 89 """Obtains extra media metrics for key user scenarios.""" |
58 test = media.Media | 90 test = media.Media |
59 page_set = page_sets.ToughVideoCasesExtraPageSet | 91 page_set = page_sets.ToughVideoCasesExtraPageSet |
60 | 92 |
61 @classmethod | 93 @classmethod |
62 def Name(cls): | 94 def Name(cls): |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 | 172 |
141 @classmethod | 173 @classmethod |
142 def Name(cls): | 174 def Name(cls): |
143 return 'media.mse_cases' | 175 return 'media.mse_cases' |
144 | 176 |
145 def SetExtraBrowserOptions(self, options): | 177 def SetExtraBrowserOptions(self, options): |
146 # Needed to allow XHR requests to return stream objects. | 178 # Needed to allow XHR requests to return stream objects. |
147 options.AppendExtraBrowserArgs( | 179 options.AppendExtraBrowserArgs( |
148 ['--enable-experimental-web-platform-features', | 180 ['--enable-experimental-web-platform-features', |
149 '--disable-gesture-requirement-for-media-playback']) | 181 '--disable-gesture-requirement-for-media-playback']) |
OLD | NEW |