smoothness.py revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
1558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch# Copyright (c) 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 6a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)from metrics import smoothness 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)from telemetry.page import page_measurement 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass Smoothness(page_measurement.PageMeasurement): 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) def __init__(self): 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch super(Smoothness, self).__init__('smoothness') 135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._smoothness_metric = None 145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._power_metric = None 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) def CustomizeBrowserOptions(self, options): 178bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') 185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) power.PowerMetric.CustomizeBrowserOptions(options) 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) def CanRunForPage(self, page): 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return hasattr(page, 'smoothness') 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 23a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) def WillRunActions(self, page, tab): 245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._power_metric = power.PowerMetric() 255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._power_metric.Start(page, tab) 265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._smoothness_metric = smoothness.SmoothnessMetric() 275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._smoothness_metric.Start(page, tab) 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) def DidRunAction(self, page, tab, action): 305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._smoothness_metric.AddActionToIncludeInMetric(action) 31a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 32a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) def DidRunActions(self, page, tab): 335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._power_metric.Stop(page, tab) 345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._smoothness_metric.Stop(page, tab) 35424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) def MeasurePage(self, page, tab, results): 375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._power_metric.AddResults(tab, results) 385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) self._smoothness_metric.AddResults(tab, results) 39