| OLD | NEW |
| (Empty) |
| 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. | |
| 4 | |
| 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 | |
| 7 from telemetry import multi_page_benchmark | |
| 8 from telemetry import util | |
| 9 | |
| 10 class FirstPaintTimeBenchmark(multi_page_benchmark.MultiPageBenchmark): | |
| 11 def MeasurePage(self, _, tab, results): | |
| 12 if tab.browser.is_content_shell: | |
| 13 results.Add('first_paint', 'seconds', 'unsupported') | |
| 14 return | |
| 15 | |
| 16 tab.runtime.Execute(""" | |
| 17 window.__rafFired = false; | |
| 18 window.webkitRequestAnimationFrame(function() { | |
| 19 window.__rafFired = true; | |
| 20 }); | |
| 21 """) | |
| 22 util.WaitFor(lambda: tab.runtime.Evaluate('window.__rafFired'), 60) | |
| 23 | |
| 24 first_paint_secs = tab.runtime.Evaluate( | |
| 25 'window.chrome.loadTimes().firstPaintTime - ' + | |
| 26 'window.chrome.loadTimes().requestTime') | |
| 27 | |
| 28 results.Add('first_paint', 'seconds', round(first_paint_secs, 1)) | |
| OLD | NEW |