Home | History | Annotate | Download | only in measurements
      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 
      5 from metrics import power
      6 from measurements import smoothness_controller
      7 from telemetry.page import page_measurement
      8 
      9 
     10 class 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