Chromium Code Reviews| Index: tools/perf/measurements/rasterize_and_record_micro.py |
| diff --git a/tools/perf/measurements/rasterize_and_record_micro.py b/tools/perf/measurements/rasterize_and_record_micro.py |
| index 0928d3330e01a78a8fa3e6d36f459abf5f2ba423..12f86cff4ef22bf1fd87da519abaff1a2f9fe036 100644 |
| --- a/tools/perf/measurements/rasterize_and_record_micro.py |
| +++ b/tools/perf/measurements/rasterize_and_record_micro.py |
| @@ -7,10 +7,12 @@ import time |
| from telemetry.core.util import TimeoutException |
| from telemetry.page import page_measurement |
| +from telemetry.page import page_test |
| class RasterizeAndRecordMicro(page_measurement.PageMeasurement): |
| def __init__(self): |
| super(RasterizeAndRecordMicro, self).__init__('', True) |
| + self._compositing_features_enabled = False |
| def AddCommandLineOptions(self, parser): |
| parser.add_option('--start-wait-time', dest='start_wait_time', |
| @@ -38,15 +40,29 @@ class RasterizeAndRecordMicro(page_measurement.PageMeasurement): |
| '--enable-gpu-benchmarking' |
| ]) |
| + def DidStartBrowser(self, browser): |
| + # Check if the we actually have threaded forced compositing enabled. |
|
vmpstr
2013/12/20 23:20:10
nit: s/the // and possibly s/forced //
|
| + system_info = browser.GetSystemInfo() |
| + if (system_info.gpu.feature_status |
| + and system_info.gpu.feature_status.get( |
|
vmpstr
2013/12/20 23:20:10
nit: I don't really know the (chromium) python sty
|
| + 'compositing', None) == 'enabled_force_threaded'): |
|
vmpstr
2013/12/20 23:20:10
I think None is not needed here, assuming feature_
|
| + self._compositing_features_enabled = True |
| + |
| def MeasurePage(self, page, tab, results): |
| + # Throw an exception if threaded forced compositing is not enabled. |
| + if (not self._compositing_features_enabled): |
| + raise page_test.TestNotSupportedOnPlatformFailure( |
| + 'Compositing feature status unknown or not '+ |
| + 'forced and threaded. Skipping measurement.') |
| + |
| # TODO(vmpstr): Remove this temporary workaround when reference build has |
| # been updated to branch 1713 or later. |
| backend = tab.browser._browser_backend # pylint: disable=W0212 |
| if (not hasattr(backend, 'chrome_branch_number') or |
| (sys.platform != 'android' and backend.chrome_branch_number < 1713)): |
| - print ('Warning: rasterize_and_record_micro requires Chrome branch 1713 ' |
| - 'or later. Skipping measurement.') |
| - sys.exit(0) |
| + raise page_test.TestNotSupportedOnPlatformFailure( |
| + 'rasterize_and_record_micro requires Chrome branch 1713 ' |
| + 'or later. Skipping measurement.') |
| try: |
| tab.WaitForJavaScriptExpression("document.readyState == 'complete'", 10) |
| @@ -91,4 +107,3 @@ class RasterizeAndRecordMicro(page_measurement.PageMeasurement): |
| results.Add('record_time', 'ms', record_time) |
| results.Add('pixels_rasterized', '', pixels_rasterized) |
| results.Add('rasterize_time', 'ms', rasterize_time) |
| - |