Index: tools/perf/benchmarks/smoothness.py |
diff --git a/tools/perf/benchmarks/smoothness.py b/tools/perf/benchmarks/smoothness.py |
index 6021c4a26f6ead7541469c0f8f65ed4cfe5d95b3..0dd6d9afecb91f5e7c6cc25925e81bb059cfa8ad 100644 |
--- a/tools/perf/benchmarks/smoothness.py |
+++ b/tools/perf/benchmarks/smoothness.py |
@@ -11,12 +11,35 @@ import page_sets.key_silk_cases |
from telemetry import benchmark |
-class SmoothnessTop25(perf_benchmark.PerfBenchmark): |
+class _Smoothness(perf_benchmark.PerfBenchmark): |
+ """Base class for smoothness-based benchmarks.""" |
+ |
+ # Certain smoothness pages do not perform gesture scrolling, in turn yielding |
+ # an empty first_gesture_scroll_update_latency result. Such empty results |
+ # should be ignored, allowing aggregate metrics for that page set. |
+ _PAGES_WITHOUT_SCROLL_GESTURE_BLACKLIST = [ |
+ 'http://mobile-news.sandbox.google.com/news/pt0'] |
+ |
+ test = smoothness.Smoothness |
+ |
+ @classmethod |
+ def Name(cls): |
+ return 'smoothness' |
+ |
+ @classmethod |
+ def ValueCanBeAddedPredicate(cls, value, _): |
+ if (value.name == 'first_gesture_scroll_update_latency' and |
+ value.page.url in cls._PAGES_WITHOUT_SCROLL_GESTURE_BLACKLIST and |
+ value.values is None): |
+ return False |
+ return True |
+ |
+ |
+class SmoothnessTop25(_Smoothness): |
"""Measures rendering statistics while scrolling down the top 25 web pages. |
http://www.chromium.org/developers/design-documents/rendering-benchmarks |
""" |
- test = smoothness.Smoothness |
page_set = page_sets.Top25SmoothPageSet |
@classmethod |
@@ -24,12 +47,11 @@ class SmoothnessTop25(perf_benchmark.PerfBenchmark): |
return 'smoothness.top_25_smooth' |
-class SmoothnessToughFiltersCases(perf_benchmark.PerfBenchmark): |
+class SmoothnessToughFiltersCases(_Smoothness): |
"""Measures frame rate and a variety of other statistics. |
Uses a selection of pages making use of SVG and CSS Filter Effects. |
""" |
- test = smoothness.Smoothness |
page_set = page_sets.ToughFiltersCasesPageSet |
@classmethod |
@@ -37,11 +59,10 @@ class SmoothnessToughFiltersCases(perf_benchmark.PerfBenchmark): |
return 'smoothness.tough_filters_cases' |
-class SmoothnessToughPathRenderingCases(perf_benchmark.PerfBenchmark): |
+class SmoothnessToughPathRenderingCases(_Smoothness): |
"""Tests a selection of pages with SVG and 2D Canvas paths. |
Measures frame rate and a variety of other statistics. """ |
- test = smoothness.Smoothness |
page_set = page_sets.ToughPathRenderingCasesPageSet |
@classmethod |
@@ -50,12 +71,11 @@ class SmoothnessToughPathRenderingCases(perf_benchmark.PerfBenchmark): |
@benchmark.Disabled('android') # crbug.com/526901 |
-class SmoothnessToughCanvasCases(perf_benchmark.PerfBenchmark): |
+class SmoothnessToughCanvasCases(_Smoothness): |
"""Measures frame rate and a variety of other statistics. |
Uses a selection of pages making use of the 2D Canvas API. |
""" |
- test = smoothness.Smoothness |
page_set = page_sets.ToughCanvasCasesPageSet |
@classmethod |
@@ -64,8 +84,7 @@ class SmoothnessToughCanvasCases(perf_benchmark.PerfBenchmark): |
@benchmark.Disabled('android') # crbug.com/373812 |
-class SmoothnessToughWebGLCases(perf_benchmark.PerfBenchmark): |
- test = smoothness.Smoothness |
+class SmoothnessToughWebGLCases(_Smoothness): |
page_set = page_sets.ToughWebglCasesPageSet |
@classmethod |
@@ -83,8 +102,7 @@ class SmoothnessMaps(perf_benchmark.PerfBenchmark): |
@benchmark.Disabled('android') |
-class SmoothnessKeyDesktopMoveCases(perf_benchmark.PerfBenchmark): |
- test = smoothness.Smoothness |
+class SmoothnessKeyDesktopMoveCases(_Smoothness): |
page_set = page_sets.KeyDesktopMoveCasesPageSet |
@classmethod |
@@ -93,12 +111,11 @@ class SmoothnessKeyDesktopMoveCases(perf_benchmark.PerfBenchmark): |
@benchmark.Enabled('android') |
-class SmoothnessKeyMobileSites(perf_benchmark.PerfBenchmark): |
+class SmoothnessKeyMobileSites(_Smoothness): |
"""Measures rendering statistics while scrolling down the key mobile sites. |
http://www.chromium.org/developers/design-documents/rendering-benchmarks |
""" |
- test = smoothness.Smoothness |
page_set = page_sets.KeyMobileSitesSmoothPageSet |
@classmethod |
@@ -106,7 +123,7 @@ class SmoothnessKeyMobileSites(perf_benchmark.PerfBenchmark): |
return 'smoothness.key_mobile_sites_smooth' |
-class SmoothnessToughAnimationCases(perf_benchmark.PerfBenchmark): |
+class SmoothnessToughAnimationCases(_Smoothness): |
test = smoothness.SmoothnessWithRestart |
page_set = page_sets.ToughAnimationCasesPageSet |
@@ -116,11 +133,10 @@ class SmoothnessToughAnimationCases(perf_benchmark.PerfBenchmark): |
@benchmark.Enabled('android') |
-class SmoothnessKeySilkCases(perf_benchmark.PerfBenchmark): |
+class SmoothnessKeySilkCases(_Smoothness): |
"""Measures rendering statistics for the key silk cases without GPU |
rasterization. |
""" |
- test = smoothness.Smoothness |
page_set = page_sets.KeySilkCasesPageSet |
@classmethod |
@@ -138,11 +154,10 @@ class SmoothnessKeySilkCases(perf_benchmark.PerfBenchmark): |
@benchmark.Enabled('android') |
-class SmoothnessGpuRasterizationTop25(perf_benchmark.PerfBenchmark): |
+class SmoothnessGpuRasterizationTop25(_Smoothness): |
"""Measures rendering statistics for the top 25 with GPU rasterization. |
""" |
tag = 'gpu_rasterization' |
- test = smoothness.Smoothness |
page_set = page_sets.Top25SmoothPageSet |
def SetExtraBrowserOptions(self, options): |
@@ -154,12 +169,11 @@ class SmoothnessGpuRasterizationTop25(perf_benchmark.PerfBenchmark): |
@benchmark.Enabled('android') |
-class SmoothnessGpuRasterizationKeyMobileSites(perf_benchmark.PerfBenchmark): |
+class SmoothnessGpuRasterizationKeyMobileSites(_Smoothness): |
"""Measures rendering statistics for the key mobile sites with GPU |
rasterization. |
""" |
tag = 'gpu_rasterization' |
- test = smoothness.Smoothness |
page_set = page_sets.KeyMobileSitesSmoothPageSet |
def SetExtraBrowserOptions(self, options): |
@@ -170,13 +184,11 @@ class SmoothnessGpuRasterizationKeyMobileSites(perf_benchmark.PerfBenchmark): |
return 'smoothness.gpu_rasterization.key_mobile_sites_smooth' |
-class SmoothnessGpuRasterizationToughPathRenderingCases( |
- perf_benchmark.PerfBenchmark): |
+class SmoothnessGpuRasterizationToughPathRenderingCases(_Smoothness): |
"""Tests a selection of pages with SVG and 2D canvas paths with GPU |
rasterization. |
""" |
tag = 'gpu_rasterization' |
- test = smoothness.Smoothness |
page_set = page_sets.ToughPathRenderingCasesPageSet |
def SetExtraBrowserOptions(self, options): |
@@ -187,12 +199,11 @@ class SmoothnessGpuRasterizationToughPathRenderingCases( |
return 'smoothness.gpu_rasterization.tough_path_rendering_cases' |
-class SmoothnessGpuRasterizationFiltersCases(perf_benchmark.PerfBenchmark): |
+class SmoothnessGpuRasterizationFiltersCases(_Smoothness): |
"""Tests a selection of pages with SVG and CSS filter effects with GPU |
rasterization. |
""" |
tag = 'gpu_rasterization' |
- test = smoothness.Smoothness |
page_set = page_sets.ToughFiltersCasesPageSet |
def SetExtraBrowserOptions(self, options): |
@@ -204,12 +215,11 @@ class SmoothnessGpuRasterizationFiltersCases(perf_benchmark.PerfBenchmark): |
@benchmark.Enabled('android') |
-class SmoothnessSyncScrollKeyMobileSites(perf_benchmark.PerfBenchmark): |
+class SmoothnessSyncScrollKeyMobileSites(_Smoothness): |
"""Measures rendering statistics for the key mobile sites with synchronous |
(main thread) scrolling. |
""" |
tag = 'sync_scroll' |
- test = smoothness.Smoothness |
page_set = page_sets.KeyMobileSitesSmoothPageSet |
def SetExtraBrowserOptions(self, options): |
@@ -221,10 +231,9 @@ class SmoothnessSyncScrollKeyMobileSites(perf_benchmark.PerfBenchmark): |
@benchmark.Enabled('android') |
-class SmoothnessSimpleMobilePages(perf_benchmark.PerfBenchmark): |
+class SmoothnessSimpleMobilePages(_Smoothness): |
"""Measures rendering statistics for simple mobile sites page set. |
""" |
- test = smoothness.Smoothness |
page_set = page_sets.SimpleMobileSitesPageSet |
@classmethod |
@@ -233,10 +242,9 @@ class SmoothnessSimpleMobilePages(perf_benchmark.PerfBenchmark): |
@benchmark.Enabled('android') |
-class SmoothnessFlingSimpleMobilePages(perf_benchmark.PerfBenchmark): |
+class SmoothnessFlingSimpleMobilePages(_Smoothness): |
"""Measures rendering statistics for flinging a simple mobile sites page set. |
""" |
- test = smoothness.Smoothness |
page_set = page_sets.SimpleMobileSitesFlingPageSet |
def SetExtraBrowserOptions(self, options): |
@@ -251,11 +259,10 @@ class SmoothnessFlingSimpleMobilePages(perf_benchmark.PerfBenchmark): |
@benchmark.Enabled('android', 'chromeos', 'mac') |
-class SmoothnessToughPinchZoomCases(perf_benchmark.PerfBenchmark): |
+class SmoothnessToughPinchZoomCases(_Smoothness): |
"""Measures rendering statistics for pinch-zooming into the tough pinch zoom |
cases. |
""" |
- test = smoothness.Smoothness |
page_set = page_sets.ToughPinchZoomCasesPageSet |
@classmethod |
@@ -264,9 +271,8 @@ class SmoothnessToughPinchZoomCases(perf_benchmark.PerfBenchmark): |
@benchmark.Enabled('android', 'chromeos') |
-class SmoothnessToughScrollingWhileZoomedInCases(perf_benchmark.PerfBenchmark): |
+class SmoothnessToughScrollingWhileZoomedInCases(_Smoothness): |
"""Measures rendering statistics for pinch-zooming then diagonal scrolling""" |
- test = smoothness.Smoothness |
page_set = page_sets.ToughScrollingWhileZoomedInCasesPageSet |
@classmethod |
@@ -275,10 +281,9 @@ class SmoothnessToughScrollingWhileZoomedInCases(perf_benchmark.PerfBenchmark): |
@benchmark.Enabled('android') |
-class SmoothnessPolymer(perf_benchmark.PerfBenchmark): |
+class SmoothnessPolymer(_Smoothness): |
"""Measures rendering statistics for Polymer cases. |
""" |
- test = smoothness.Smoothness |
page_set = page_sets.PolymerPageSet |
@classmethod |
@@ -287,11 +292,10 @@ class SmoothnessPolymer(perf_benchmark.PerfBenchmark): |
@benchmark.Enabled('android') |
-class SmoothnessGpuRasterizationPolymer(perf_benchmark.PerfBenchmark): |
+class SmoothnessGpuRasterizationPolymer(_Smoothness): |
"""Measures rendering statistics for the Polymer cases with GPU rasterization. |
""" |
tag = 'gpu_rasterization' |
- test = smoothness.Smoothness |
page_set = page_sets.PolymerPageSet |
def SetExtraBrowserOptions(self, options): |
@@ -302,8 +306,7 @@ class SmoothnessGpuRasterizationPolymer(perf_benchmark.PerfBenchmark): |
return 'smoothness.gpu_rasterization.polymer' |
-class SmoothnessToughScrollingCases(perf_benchmark.PerfBenchmark): |
- test = smoothness.Smoothness |
+class SmoothnessToughScrollingCases(_Smoothness): |
page_set = page_sets.ToughScrollingCasesPageSet |
@classmethod |
@@ -311,8 +314,7 @@ class SmoothnessToughScrollingCases(perf_benchmark.PerfBenchmark): |
return 'smoothness.tough_scrolling_cases' |
@benchmark.Disabled('android') # http://crbug.com/531593 |
-class SmoothnessToughImageDecodeCases(perf_benchmark.PerfBenchmark): |
- test = smoothness.Smoothness |
+class SmoothnessToughImageDecodeCases(_Smoothness): |
page_set = page_sets.ToughImageDecodeCasesPageSet |
@classmethod |
@@ -320,10 +322,9 @@ class SmoothnessToughImageDecodeCases(perf_benchmark.PerfBenchmark): |
return 'smoothness.tough_image_decode_cases' |
@benchmark.Disabled('android') # http://crbug.com/513699 |
-class SmoothnessImageDecodingCases(perf_benchmark.PerfBenchmark): |
+class SmoothnessImageDecodingCases(_Smoothness): |
"""Measures decoding statistics for jpeg images. |
""" |
- test = smoothness.Smoothness |
page_set = page_sets.ImageDecodingCasesPageSet |
def SetExtraBrowserOptions(self, options): |
@@ -336,11 +337,10 @@ class SmoothnessImageDecodingCases(perf_benchmark.PerfBenchmark): |
@benchmark.Disabled('android') # http://crbug.com/513699 |
-class SmoothnessGpuImageDecodingCases(perf_benchmark.PerfBenchmark): |
+class SmoothnessGpuImageDecodingCases(_Smoothness): |
"""Measures decoding statistics for jpeg images with GPU rasterization. |
""" |
tag = 'gpu_rasterization_and_decoding' |
- test = smoothness.Smoothness |
page_set = page_sets.ImageDecodingCasesPageSet |
def SetExtraBrowserOptions(self, options): |
@@ -354,10 +354,9 @@ class SmoothnessGpuImageDecodingCases(perf_benchmark.PerfBenchmark): |
@benchmark.Enabled('android') |
-class SmoothnessPathologicalMobileSites(perf_benchmark.PerfBenchmark): |
+class SmoothnessPathologicalMobileSites(_Smoothness): |
"""Measures task execution statistics while scrolling pathological sites. |
""" |
- test = smoothness.Smoothness |
page_set = page_sets.PathologicalMobileSitesPageSet |
@classmethod |
@@ -365,8 +364,7 @@ class SmoothnessPathologicalMobileSites(perf_benchmark.PerfBenchmark): |
return 'smoothness.pathological_mobile_sites' |
-class SmoothnessToughAnimatedImageCases(perf_benchmark.PerfBenchmark): |
- test = smoothness.Smoothness |
+class SmoothnessToughAnimatedImageCases(_Smoothness): |
page_set = page_sets.ToughAnimatedImageCasesPageSet |
@classmethod |
@@ -375,8 +373,7 @@ class SmoothnessToughAnimatedImageCases(perf_benchmark.PerfBenchmark): |
@benchmark.Disabled('reference') # http://crbug.com/499489 |
-class SmoothnessToughTextureUploadCases(perf_benchmark.PerfBenchmark): |
- test = smoothness.Smoothness |
+class SmoothnessToughTextureUploadCases(_Smoothness): |
page_set = page_sets.ToughTextureUploadCasesPageSet |
@classmethod |
@@ -385,9 +382,8 @@ class SmoothnessToughTextureUploadCases(perf_benchmark.PerfBenchmark): |
@benchmark.Disabled('reference') # http://crbug.com/496684 |
-class SmoothnessToughAdCases(perf_benchmark.PerfBenchmark): |
+class SmoothnessToughAdCases(_Smoothness): |
"""Measures rendering statistics while displaying advertisements.""" |
- test = smoothness.Smoothness |
page_set = page_sets.ToughAdCasesPageSet |
@classmethod |
@@ -398,9 +394,8 @@ class SmoothnessToughAdCases(perf_benchmark.PerfBenchmark): |
# http://crbug.com/496684 (reference) |
# http://crbug.com/522619 (mac/win) |
@benchmark.Disabled('reference', 'win', 'mac') |
-class SmoothnessScrollingToughAdCases(perf_benchmark.PerfBenchmark): |
+class SmoothnessScrollingToughAdCases(_Smoothness): |
"""Measures rendering statistics while scrolling advertisements.""" |
- test = smoothness.Smoothness |
page_set = page_sets.ScrollingToughAdCasesPageSet |
@classmethod |
@@ -411,10 +406,8 @@ class SmoothnessScrollingToughAdCases(perf_benchmark.PerfBenchmark): |
# http://crbug.com/496684 (reference) |
# http://crbug.com/522619 (mac/win) |
@benchmark.Disabled('reference', 'win', 'mac') |
-class SmoothnessBidirectionallyScrollingToughAdCases( |
- perf_benchmark.PerfBenchmark): |
+class SmoothnessBidirectionallyScrollingToughAdCases(_Smoothness): |
"""Measures rendering statistics while scrolling advertisements.""" |
- test = smoothness.Smoothness |
page_set = page_sets.BidirectionallyScrollingToughAdCasesPageSet |
def SetExtraBrowserOptions(self, options): |
@@ -427,9 +420,8 @@ class SmoothnessBidirectionallyScrollingToughAdCases( |
@benchmark.Disabled('reference') # http://crbug.com/496684 |
-class SmoothnessToughWebGLAdCases(perf_benchmark.PerfBenchmark): |
+class SmoothnessToughWebGLAdCases(_Smoothness): |
"""Measures rendering statistics while scrolling advertisements.""" |
- test = smoothness.Smoothness |
page_set = page_sets.ToughWebglAdCasesPageSet |
@classmethod |