Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright 2013 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 measurements import media | |
| 5 from telemetry import test | 6 from telemetry import test |
| 6 from telemetry.page import page_measurement | 7 from telemetry.page import page_measurement |
| 7 | 8 |
| 8 from measurements import media | |
| 9 | |
| 10 | 9 |
| 11 class MSEMeasurement(page_measurement.PageMeasurement): | 10 class MSEMeasurement(page_measurement.PageMeasurement): |
| 12 def MeasurePage(self, page, tab, results): | 11 def MeasurePage(self, page, tab, results): |
| 13 media_metric = tab.EvaluateJavaScript('window.__testMetrics') | 12 media_metric = tab.EvaluateJavaScript('window.__testMetrics') |
| 14 trace = media_metric['id'] if 'id' in media_metric else None | 13 trace = media_metric['id'] if 'id' in media_metric else None |
| 15 metrics = media_metric['metrics'] if 'metrics' in media_metric else [] | 14 metrics = media_metric['metrics'] if 'metrics' in media_metric else [] |
| 16 for m in metrics: | 15 for m in metrics: |
| 17 if isinstance(metrics[m], list): | 16 if isinstance(metrics[m], list): |
| 18 values = [float(v) for v in metrics[m]] | 17 values = [float(v) for v in metrics[m]] |
| 19 else: | 18 else: |
| 20 values = float(metrics[m]) | 19 values = float(metrics[m]) |
| 21 results.Add(trace, 'ms', values, chart_name=m) | 20 results.Add(trace, 'ms', values, chart_name=m) |
| 22 | 21 |
| 23 | 22 |
| 24 class Media(test.Test): | 23 class Media(test.Test): |
| 25 """Obtains media metrics for key user scenarios.""" | 24 """Obtains media metrics for key user scenarios.""" |
| 26 test = media.Media | 25 test = media.Media |
| 27 page_set = 'page_sets/tough_video_cases.json' | 26 page_set = 'page_sets/tough_video_cases.json' |
| 28 | 27 |
| 28 | |
| 29 class MediaNetworkSimulation(test.Test): | 29 class MediaNetworkSimulation(test.Test): |
| 30 """Obtains media metrics under different network simulations.""" | 30 """Obtains media metrics under different network simulations.""" |
| 31 test = media.Media | 31 test = media.Media |
| 32 page_set = 'page_sets/media_cns_cases.json' | 32 page_set = 'page_sets/media_cns_cases.json' |
| 33 | 33 |
| 34 | |
| 34 class MediaAndroid(test.Test): | 35 class MediaAndroid(test.Test): |
| 35 """Obtains media metrics for key user scenarios on Android.""" | 36 """Obtains media metrics for key user scenarios on Android.""" |
| 36 test = media.Media | 37 test = media.Media |
| 37 tag = 'android' | 38 tag = 'android' |
| 38 page_set = 'page_sets/tough_video_cases.json' | 39 page_set = 'page_sets/tough_video_cases.json' |
| 39 # Exclude 4k and 50 fps media files (garden* & crowd*). | 40 # Exclude 4k and 50 fps media files (garden* & crowd*). |
| 40 options = { | 41 options = { |
| 41 'page_filter_exclude': '.*(crowd|garden).*' | 42 'page_label_filter_exclude': '4k,50fps'} |
| 42 } | 43 |
| 44 | |
| 45 class MediaChromeOS4kOnly(test.Test): | |
| 46 """Benchmark for media performance on ChromeOS using only 4k test content.""" | |
| 47 test = media.Media | |
| 48 tag = 'chromeOS4kOnly' | |
| 49 page_set = 'page_sets/tough_video_cases.json' | |
| 50 options = {'page_label_filter': '4k', | |
|
Pawel Osciak
2014/01/31 23:50:27
Could you please explain what decides whether this
anandc
2014/02/01 00:58:42
That's right. This benchmark runs only on pages th
| |
| 51 # Exclude 50fps test files: crbug/331816 | |
| 52 'page_label_filter_exclude': '50fps'} | |
| 53 | |
| 43 | 54 |
| 44 class MediaChromeOS(test.Test): | 55 class MediaChromeOS(test.Test): |
| 45 """Obtains media metrics for key user scenarios on ChromeOS.""" | 56 """Benchmark for media performance on all ChromeOS platforms. |
| 57 | |
| 58 This benchmark does not run 4k content, there's a separate benchmark for that. | |
| 59 """ | |
| 46 test = media.Media | 60 test = media.Media |
| 47 tag = 'chromeOS' | 61 tag = 'chromeOS' |
| 48 page_set = 'page_sets/tough_video_cases.json' | 62 page_set = 'page_sets/tough_video_cases.json' |
| 49 # Exclude crowd* media files (50fps 2160p): crbug/331816 | 63 # Exclude 50fps test files: crbug/331816 |
| 50 options = { | 64 options = {'page_label_filter_exclude': '4k,50fps'} |
|
Pawel Osciak
2014/01/31 23:50:27
Does this mean we don't want to test 50fps on any
anandc
2014/02/01 00:58:42
We do.
There was a problem with 50fps content ti
| |
| 51 'page_filter_exclude': '.*crowd.*' | 65 |
| 52 } | |
| 53 | 66 |
| 54 class MediaSourceExtensions(test.Test): | 67 class MediaSourceExtensions(test.Test): |
| 55 """Obtains media metrics for key media source extensions functions.""" | 68 """Obtains media metrics for key media source extensions functions.""" |
| 56 test = MSEMeasurement | 69 test = MSEMeasurement |
| 57 page_set = 'page_sets/mse_cases.json' | 70 page_set = 'page_sets/mse_cases.json' |
| 58 | 71 |
| 59 def CustomizeBrowserOptions(self, options): | 72 def CustomizeBrowserOptions(self, options): |
| 60 # Needed to allow XHR requests to return stream objects. | 73 # Needed to allow XHR requests to return stream objects. |
| 61 options.AppendExtraBrowserArgs( | 74 options.AppendExtraBrowserArgs( |
| 62 ['--enable-experimental-web-platform-features', | 75 ['--enable-experimental-web-platform-features', |
| 63 '--disable-gesture-requirement-for-media-playback']) | 76 '--disable-gesture-requirement-for-media-playback']) |
| OLD | NEW |