| 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 benchmark | 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 from telemetry.value import scalar |
| 18 | 19 |
| 19 | 20 |
| 20 class _HTML5GamingMeasurement(page_measurement.PageMeasurement): | 21 class _HTML5GamingMeasurement(page_measurement.PageMeasurement): |
| 21 def MeasurePage(self, _, tab, results): | 22 def MeasurePage(self, _, tab, results): |
| 22 tab.ExecuteJavaScript('benchmark();') | 23 tab.ExecuteJavaScript('benchmark();') |
| 23 # Default value of score element is 87485, its value is updated with actual | 24 # Default value of score element is 87485, its value is updated with actual |
| 24 # score when test finish. | 25 # score when test finish. |
| 25 tab.WaitForJavaScriptExpression( | 26 tab.WaitForJavaScriptExpression( |
| 26 'document.getElementById("score").innerHTML != "87485"', 200) | 27 'document.getElementById("score").innerHTML != "87485"', 200) |
| 27 result = int(tab.EvaluateJavaScript( | 28 result = int(tab.EvaluateJavaScript( |
| 28 'document.getElementById("score").innerHTML')) | 29 'document.getElementById("score").innerHTML')) |
| 29 results.Add('Score', 'score', result) | 30 results.AddValue( |
| 31 scalar.ScalarValue(results.current_page, 'Score', 'score', result)) |
| 32 |
| 30 | 33 |
| 31 | 34 |
| 32 @benchmark.Disabled | 35 @benchmark.Disabled |
| 33 class HTML5Gaming(benchmark.Benchmark): | 36 class HTML5Gaming(benchmark.Benchmark): |
| 34 """Imapct HTML5 smooth running games benchmark suite.""" | 37 """Imapct HTML5 smooth running games benchmark suite.""" |
| 35 test = _HTML5GamingMeasurement | 38 test = _HTML5GamingMeasurement |
| 36 def CreatePageSet(self, options): | 39 def CreatePageSet(self, options): |
| 37 ps = page_set.PageSet( | 40 ps = page_set.PageSet( |
| 38 file_path=os.path.abspath(__file__), | 41 file_path=os.path.abspath(__file__), |
| 39 archive_data_file='../page_sets/data/html5gaming.json', | 42 archive_data_file='../page_sets/data/html5gaming.json', |
| 40 make_javascript_deterministic=False) | 43 make_javascript_deterministic=False) |
| 41 ps.AddPageWithDefaultRunNavigate('http://html5-benchmark.com/') | 44 ps.AddPageWithDefaultRunNavigate('http://html5-benchmark.com/') |
| 42 return ps | 45 return ps |
| OLD | NEW |