146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# found in the LICENSE file. 468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)from metrics import power 623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)from measurements import smoothness_controller 76e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)from telemetry.page import page_test 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 106e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class Smoothness(page_test.PageTest): 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) def __init__(self): 1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) super(Smoothness, self).__init__('RunSmoothness') 135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._power_metric = None 1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) self._smoothness_controller = None 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) @classmethod 17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) def CustomizeBrowserOptions(cls, options): 188bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu options.AppendExtraBrowserArgs('--touch-events=enabled') 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) options.AppendExtraBrowserArgs('--running-performance-benchmark') 215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) power.PowerMetric.CustomizeBrowserOptions(options) 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci def WillStartBrowser(self, platform): 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self._power_metric = power.PowerMetric(platform) 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def WillNavigateToPage(self, page, tab): 275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._power_metric.Start(page, tab) 2823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) self._smoothness_controller = smoothness_controller.SmoothnessController() 295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self._smoothness_controller.SetUp(page, tab) 305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def WillRunActions(self, page, tab): 325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self._smoothness_controller.Start(tab) 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 34a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) def DidRunActions(self, page, tab): 355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._power_metric.Stop(page, tab) 3623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) self._smoothness_controller.Stop(tab) 37424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 386e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) def ValidateAndMeasurePage(self, page, tab, results): 395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._power_metric.AddResults(tab, results) 4023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) self._smoothness_controller.AddResults(tab, results) 41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) def CleanUpAfterPage(self, page, tab): 435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) if self._power_metric: 445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self._power_metric.Stop(page, tab) 455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) if self._smoothness_controller: 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self._smoothness_controller.CleanUp(tab) 47