| OLD | NEW |
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 # The test takes a list of URLs through stdin and prints results in CSV format. | 5 # The test takes a list of URLs through stdin and prints results in CSV format. |
| 6 # Example: python run_scroll_test.py < data/urls.txt > test_results.csv | 6 # Example: python run_scroll_test.py < data/urls.txt > test_results.csv |
| 7 from chrome_remote_control import multi_page_benchmark | 7 from telemetry import multi_page_benchmark |
| 8 from chrome_remote_control import util | 8 from telemetry import util |
| 9 | 9 |
| 10 class FirstPaintTimeBenchmark(multi_page_benchmark.MultiPageBenchmark): | 10 class FirstPaintTimeBenchmark(multi_page_benchmark.MultiPageBenchmark): |
| 11 def MeasurePage(self, _, tab, results): | 11 def MeasurePage(self, _, tab, results): |
| 12 if tab.browser.is_content_shell: | 12 if tab.browser.is_content_shell: |
| 13 results.Add('first_paint', 'seconds', 'unsupported') | 13 results.Add('first_paint', 'seconds', 'unsupported') |
| 14 return | 14 return |
| 15 | 15 |
| 16 tab.runtime.Execute(""" | 16 tab.runtime.Execute(""" |
| 17 window.__rafFired = false; | 17 window.__rafFired = false; |
| 18 window.webkitRequestAnimationFrame(function() { | 18 window.webkitRequestAnimationFrame(function() { |
| 19 window.__rafFired = true; | 19 window.__rafFired = true; |
| 20 }); | 20 }); |
| 21 """) | 21 """) |
| 22 util.WaitFor(lambda: tab.runtime.Evaluate('window.__rafFired'), 60) | 22 util.WaitFor(lambda: tab.runtime.Evaluate('window.__rafFired'), 60) |
| 23 | 23 |
| 24 first_paint_secs = tab.runtime.Evaluate( | 24 first_paint_secs = tab.runtime.Evaluate( |
| 25 'window.chrome.loadTimes().firstPaintTime - ' + | 25 'window.chrome.loadTimes().firstPaintTime - ' + |
| 26 'window.chrome.loadTimes().requestTime') | 26 'window.chrome.loadTimes().requestTime') |
| 27 | 27 |
| 28 results.Add('first_paint', 'seconds', round(first_paint_secs, 1)) | 28 results.Add('first_paint', 'seconds', round(first_paint_secs, 1)) |
| OLD | NEW |