1 # Copyright (c) 2012 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.
5 """Runs Facebook's JSGameBench benchmark."""
9 from metrics import power
10 from telemetry import test
11 from telemetry.page import page_measurement
12 from telemetry.page import page_set
15 class _JsgamebenchMeasurement(page_measurement.PageMeasurement):
17 super(_JsgamebenchMeasurement, self).__init__()
18 self._power_metric = power.PowerMetric()
20 def CustomizeBrowserOptions(self, options):
21 power.PowerMetric.CustomizeBrowserOptions(options)
23 def DidNavigateToPage(self, page, tab):
24 self._power_metric.Start(page, tab)
26 def MeasurePage(self, page, tab, results):
27 tab.ExecuteJavaScript('UI.call({}, "perftest")')
28 tab.WaitForJavaScriptExpression(
29 'document.getElementById("perfscore0") != null', 1800)
31 self._power_metric.Stop(page, tab)
32 self._power_metric.AddResults(tab, results)
34 js_get_results = 'document.getElementById("perfscore0").innerHTML'
35 result = int(tab.EvaluateJavaScript(js_get_results))
36 results.Add('Score', 'score (bigger is better)', result)
39 class Jsgamebench(test.Test):
40 """Counts how many animating sprites can move around on the screen at once."""
41 test = _JsgamebenchMeasurement
43 def CreatePageSet(self, options):
44 return page_set.PageSet.FromDict({
45 'archive_data_file': '../page_sets/data/jsgamebench.json',
47 { 'url': 'http://localhost/' }
49 }, os.path.dirname(__file__))