# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
from telemetry.page import legacy_page_test
class MultipageSkpicturePrinter(legacy_page_test.LegacyPageTest):
def __init__(self, mskp_outdir):
super(MultipageSkpicturePrinter, self).__init__()
self._mskp_outdir = mskp_outdir
def CustomizeBrowserOptions(self, options):
options.AppendExtraBrowserArgs(['--enable-gpu-benchmarking',
'--no-sandbox',
'--enable-deferred-image-decoding'])
def ValidateAndMeasurePage(self, page, tab, results):
if tab.browser.platform.GetOSName() in ['android', 'chromeos']:
raise legacy_page_test.MeasurementFailure(
'Multipage SkPicture printing not supported on this platform')
outpath = os.path.abspath(
os.path.join(self._mskp_outdir, page.file_safe_name + '.mskp'))
# Replace win32 path separator char '\' with '\\'.
outpath = outpath.replace('\\', '\\\\')
tab.EvaluateJavaScript(
'chrome.gpuBenchmarking.printPagesToSkPictures({{ outpath }});',
outpath=outpath)