| 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 measurements import webrtc | 7 from measurements import webrtc |
| 8 import page_sets | 8 import page_sets |
| 9 from telemetry import benchmark | 9 from telemetry import benchmark |
| 10 from telemetry.timeline import tracing_category_filter | 10 from telemetry.timeline import tracing_category_filter |
| 11 from telemetry.web_perf import timeline_based_measurement | 11 from telemetry.web_perf import timeline_based_measurement |
| 12 from telemetry.web_perf.metrics import webrtc_rendering_timeline | 12 from telemetry.web_perf.metrics import webrtc_rendering_timeline |
| 13 | 13 |
| 14 RENDERING_VALUE_PREFIX = 'WebRTCRendering_' | 14 RENDERING_VALUE_PREFIX = 'WebRTCRendering_' |
| 15 | 15 |
| 16 # TODO(qyearsley, mcasas): Add webrtc.audio when http://crbug.com/468732 | 16 # TODO(qyearsley, mcasas): Add webrtc.audio when http://crbug.com/468732 |
| 17 # is fixed, or revert https://codereview.chromium.org/1544573002/ when | 17 # is fixed, or revert https://codereview.chromium.org/1544573002/ when |
| 18 # http://crbug.com/568333 is fixed. | 18 # http://crbug.com/568333 is fixed. |
| 19 | 19 |
| 20 |
| 20 # Disabled because the reference set becomes flaky with the new | 21 # Disabled because the reference set becomes flaky with the new |
| 21 # https:// page set introduced in http://crbug.com/523517. | 22 # https:// page set introduced in http://crbug.com/523517. |
| 22 # Try removing once the Chrome used for ref builds advances | 23 # Try removing once the Chrome used for ref builds advances |
| 23 # past blink commit pos 200986. | 24 # past blink commit pos 200986. |
| 24 @benchmark.Disabled('reference') | 25 @benchmark.Disabled('reference') |
| 25 class _Webrtc(perf_benchmark.PerfBenchmark): | 26 class _Webrtc(perf_benchmark.PerfBenchmark): |
| 26 """Base class for WebRTC metrics for real-time communications tests.""" | 27 """Base class for WebRTC metrics for real-time communications tests.""" |
| 27 test = webrtc.WebRTC | 28 test = webrtc.WebRTC |
| 28 | 29 |
| 29 | 30 |
| 30 class WebrtcGetusermedia(_Webrtc): | 31 class WebrtcGetusermedia(_Webrtc): |
| 31 """Measures WebRtc GetUserMedia for video capture and local playback""" | 32 """Measures WebRtc GetUserMedia for video capture and local playback.""" |
| 32 page_set = page_sets.WebrtcGetusermediaPageSet | 33 page_set = page_sets.WebrtcGetusermediaPageSet |
| 33 | 34 |
| 34 @classmethod | 35 @classmethod |
| 35 def Name(cls): | 36 def Name(cls): |
| 36 return 'webrtc.getusermedia' | 37 return 'webrtc.getusermedia' |
| 37 | 38 |
| 38 | 39 |
| 39 class WebrtcPeerConnection(_Webrtc): | 40 class WebrtcPeerConnection(_Webrtc): |
| 40 """Measures WebRtc Peerconnection for remote video and audio communication """ | 41 """Measures WebRtc Peerconnection for remote video and audio communication.""" |
| 41 page_set = page_sets.WebrtcPeerconnectionPageSet | 42 page_set = page_sets.WebrtcPeerconnectionPageSet |
| 42 | 43 |
| 43 @classmethod | 44 @classmethod |
| 44 def Name(cls): | 45 def Name(cls): |
| 45 return 'webrtc.peerconnection' | 46 return 'webrtc.peerconnection' |
| 46 | 47 |
| 47 | 48 |
| 48 class WebrtcDataChannel(_Webrtc): | 49 class WebrtcDataChannel(_Webrtc): |
| 49 """Measures WebRtc DataChannel loopback """ | 50 """Measures WebRtc DataChannel loopback.""" |
| 50 page_set = page_sets.WebrtcDatachannelPageSet | 51 page_set = page_sets.WebrtcDatachannelPageSet |
| 51 | 52 |
| 52 @classmethod | 53 @classmethod |
| 53 def Name(cls): | 54 def Name(cls): |
| 54 return 'webrtc.datachannel' | 55 return 'webrtc.datachannel' |
| 55 | 56 |
| 56 | 57 |
| 57 # WebrtcRendering must be a PerfBenchmark, and not a _Webrtc, because it is a | 58 # WebrtcRendering must be a PerfBenchmark, and not a _Webrtc, because it is a |
| 58 # timeline-based. | 59 # timeline-based. |
| 60 # Disabled on reference builds because they crash and don't support tab |
| 61 # capture. See http://crbug.com/603232. |
| 62 @benchmark.Disabled('reference') |
| 59 class WebrtcRendering(perf_benchmark.PerfBenchmark): | 63 class WebrtcRendering(perf_benchmark.PerfBenchmark): |
| 60 """Specific time measurements (e.g. fps, smoothness) for WebRtc rendering.""" | 64 """Specific time measurements (e.g. fps, smoothness) for WebRtc rendering.""" |
| 61 | 65 |
| 62 page_set = page_sets.WebrtcPeerconnectionPageSet | 66 page_set = page_sets.WebrtcRenderingPageSet |
| 63 | 67 |
| 64 def CreateTimelineBasedMeasurementOptions(self): | 68 def CreateTimelineBasedMeasurementOptions(self): |
| 65 category_filter = tracing_category_filter.TracingCategoryFilter( | 69 category_filter = tracing_category_filter.TracingCategoryFilter( |
| 66 filter_string='webrtc,webkit.console,blink.console') | 70 filter_string='webrtc,webkit.console,blink.console') |
| 67 options = timeline_based_measurement.Options(category_filter) | 71 options = timeline_based_measurement.Options(category_filter) |
| 68 options.SetLegacyTimelineBasedMetrics( | 72 options.SetLegacyTimelineBasedMetrics( |
| 69 [webrtc_rendering_timeline.WebRtcRenderingTimelineMetric()]) | 73 [webrtc_rendering_timeline.WebRtcRenderingTimelineMetric()]) |
| 70 return options | 74 return options |
| 71 | 75 |
| 72 def SetExtraBrowserOptions(self, options): | 76 def SetExtraBrowserOptions(self, options): |
| 73 options.AppendExtraBrowserArgs('--use-fake-device-for-media-stream') | 77 options.AppendExtraBrowserArgs('--use-fake-device-for-media-stream') |
| 74 options.AppendExtraBrowserArgs('--use-fake-ui-for-media-stream') | 78 options.AppendExtraBrowserArgs('--use-fake-ui-for-media-stream') |
| 75 | 79 |
| 76 @classmethod | 80 @classmethod |
| 77 def Name(cls): | 81 def Name(cls): |
| 78 return 'webrtc.webrtc_smoothness' | 82 return 'webrtc.webrtc_smoothness' |
| OLD | NEW |