OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """Impact HTML5 Gaming benchmark. | 5 """Impact HTML5 Gaming benchmark. |
6 | 6 |
7 Tests one very specific use case: smooth running games rendered with the | 7 Tests one very specific use case: smooth running games rendered with the |
8 <canvas> element. The score for the HTML5-Benchmark takes the total time the | 8 <canvas> element. The score for the HTML5-Benchmark takes the total time the |
9 browser spent rendering frames (formula is 1000000/(sqrt(totalTime) + lagTime * | 9 browser spent rendering frames (formula is 1000000/(sqrt(totalTime) + lagTime * |
10 0.1)). The benchmark automatically runs at a reasonable screen size. Final | 10 0.1)). The benchmark automatically runs at a reasonable screen size. Final |
11 score is a indicator for the browser's ability to smoothly run HTML5 games.""" | 11 score is a indicator for the browser's ability to smoothly run HTML5 games.""" |
12 | 12 |
13 import os | 13 import os |
14 | 14 |
15 from telemetry import test | 15 from telemetry import benchmark |
16 from telemetry.page import page_measurement | 16 from telemetry.page import page_measurement |
17 from telemetry.page import page_set | 17 from telemetry.page import page_set |
18 | 18 |
19 class _HTML5GamingMeasurement(page_measurement.PageMeasurement): | 19 class _HTML5GamingMeasurement(page_measurement.PageMeasurement): |
20 def MeasurePage(self, _, tab, results): | 20 def MeasurePage(self, _, tab, results): |
21 tab.ExecuteJavaScript('benchmark();') | 21 tab.ExecuteJavaScript('benchmark();') |
22 # Default value of score element is 87485, its value is updated with actual | 22 # Default value of score element is 87485, its value is updated with actual |
23 # score when test finish. | 23 # score when test finish. |
24 tab.WaitForJavaScriptExpression( | 24 tab.WaitForJavaScriptExpression( |
25 'document.getElementById("score").innerHTML != "87485"', 200) | 25 'document.getElementById("score").innerHTML != "87485"', 200) |
26 result = int(tab.EvaluateJavaScript( | 26 result = int(tab.EvaluateJavaScript( |
27 'document.getElementById("score").innerHTML')) | 27 'document.getElementById("score").innerHTML')) |
28 results.Add('Score', 'score', result) | 28 results.Add('Score', 'score', result) |
29 | 29 |
30 | 30 |
31 class HTML5Gaming(test.Test): | 31 class HTML5Gaming(benchmark.Benchmark): |
32 """Imapct HTML5 smooth running games benchmark suite.""" | 32 """Imapct HTML5 smooth running games benchmark suite.""" |
33 test = _HTML5GamingMeasurement | 33 test = _HTML5GamingMeasurement |
34 def CreatePageSet(self, options): | 34 def CreatePageSet(self, options): |
35 ps = page_set.PageSet( | 35 ps = page_set.PageSet( |
36 file_path=os.path.abspath(__file__), | 36 file_path=os.path.abspath(__file__), |
37 archive_data_file='../page_sets/data/html5gaming.json', | 37 archive_data_file='../page_sets/data/html5gaming.json', |
38 make_javascript_deterministic=False) | 38 make_javascript_deterministic=False) |
39 ps.AddPageWithDefaultRunNavigate('http://html5-benchmark.com/') | 39 ps.AddPageWithDefaultRunNavigate('http://html5-benchmark.com/') |
40 return ps | 40 return ps |
OLD | NEW |