• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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