1# Copyright 2013 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 5from metrics import power 6from measurements import smoothness_controller 7from telemetry.page import page_measurement 8 9 10class Smoothness(page_measurement.PageMeasurement): 11 def __init__(self): 12 super(Smoothness, self).__init__('RunSmoothness') 13 self._power_metric = None 14 self._smoothness_controller = None 15 16 @classmethod 17 def CustomizeBrowserOptions(cls, options): 18 options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') 19 options.AppendExtraBrowserArgs('--touch-events=enabled') 20 power.PowerMetric.CustomizeBrowserOptions(options) 21 22 def WillRunActions(self, page, tab): 23 self._power_metric = power.PowerMetric() 24 self._power_metric.Start(page, tab) 25 self._smoothness_controller = smoothness_controller.SmoothnessController() 26 self._smoothness_controller.Start(page, tab) 27 28 def DidRunActions(self, page, tab): 29 self._power_metric.Stop(page, tab) 30 self._smoothness_controller.Stop(tab) 31 32 def MeasurePage(self, page, tab, results): 33 self._power_metric.AddResults(tab, results) 34 self._smoothness_controller.AddResults(tab, results) 35 36 def CleanUpAfterPage(self, _, tab): 37 self._smoothness_controller.CleanUp(tab) 38