Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / tools / perf / measurements / smoothness.py
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_test
8
9
10 class Smoothness(page_test.PageTest):
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     options.AppendExtraBrowserArgs('--running-performance-benchmark')
21     power.PowerMetric.CustomizeBrowserOptions(options)
22
23   def WillStartBrowser(self, platform):
24     self._power_metric = power.PowerMetric(platform)
25
26   def WillNavigateToPage(self, page, tab):
27     self._power_metric.Start(page, tab)
28     self._smoothness_controller = smoothness_controller.SmoothnessController()
29     self._smoothness_controller.SetUp(page, tab)
30
31   def WillRunActions(self, page, tab):
32     self._smoothness_controller.Start(tab)
33
34   def DidRunActions(self, page, tab):
35     self._power_metric.Stop(page, tab)
36     self._smoothness_controller.Stop(tab)
37
38   def ValidateAndMeasurePage(self, page, tab, results):
39     self._power_metric.AddResults(tab, results)
40     self._smoothness_controller.AddResults(tab, results)
41
42   def CleanUpAfterPage(self, page, tab):
43     if self._power_metric:
44       self._power_metric.Stop(page, tab)
45     if self._smoothness_controller:
46       self._smoothness_controller.CleanUp(tab)