ozone: evdev: Sync caps lock LED state to evdev
[chromium-blink-merge.git] / tools / perf / measurements / skpicture_printer.py
blob139b08c011be9f530aa7bc9d32aac0d1d652e052
1 # Copyright 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4 import glob
5 import os
7 from telemetry.page import page_test
8 from telemetry.value import scalar
11 _JS = 'chrome.gpuBenchmarking.printToSkPicture("{0}");'
14 class SkpicturePrinter(page_test.PageTest):
15 def __init__(self, skp_outdir):
16 super(SkpicturePrinter, self).__init__(
17 action_name_to_run='RunPageInteractions')
18 self._skp_outdir = skp_outdir
20 def CustomizeBrowserOptions(self, options):
21 options.AppendExtraBrowserArgs(['--enable-gpu-benchmarking',
22 '--no-sandbox',
23 '--enable-deferred-image-decoding'])
25 def ValidateAndMeasurePage(self, page, tab, results):
26 if tab.browser.platform.GetOSName() in ['android', 'chromeos']:
27 raise page_test.MeasurementFailure(
28 'SkPicture printing not supported on this platform')
30 # Replace win32 path separator char '\' with '\\'.
31 outpath = os.path.abspath(
32 os.path.join(self._skp_outdir, page.file_safe_name))
33 js = _JS.format(outpath.replace('\\', '\\\\'))
34 tab.EvaluateJavaScript(js)
35 pictures = glob.glob(os.path.join(outpath, '*.skp'))
36 results.AddValue(scalar.ScalarValue(
37 results.current_page, 'saved_picture_count', 'count', len(pictures)))