| OLD | NEW |
| (Empty) |
| 1 # Copyright 2014 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 from telemetry.page import legacy_page_test | |
| 6 | |
| 7 | |
| 8 def Repaint(action_runner, mode='viewport', width=None, height=None): | |
| 9 action_runner.WaitForJavaScriptCondition( | |
| 10 'document.readyState == "complete"', timeout=90) | |
| 11 # Rasterize only what's visible. | |
| 12 action_runner.ExecuteJavaScript( | |
| 13 'chrome.gpuBenchmarking.setRasterizeOnlyVisibleContent();') | |
| 14 | |
| 15 args = {} | |
| 16 args['mode'] = mode | |
| 17 if width: | |
| 18 args['width'] = width | |
| 19 if height: | |
| 20 args['height'] = height | |
| 21 | |
| 22 # Enqueue benchmark | |
| 23 action_runner.ExecuteJavaScript(""" | |
| 24 window.benchmark_results = {}; | |
| 25 window.benchmark_results.id = | |
| 26 chrome.gpuBenchmarking.runMicroBenchmark( | |
| 27 "invalidation_benchmark", | |
| 28 function(value) {}, | |
| 29 {{ args }} | |
| 30 ); | |
| 31 """, | |
| 32 args=args) | |
| 33 | |
| 34 micro_benchmark_id = action_runner.EvaluateJavaScript( | |
| 35 'window.benchmark_results.id') | |
| 36 if not micro_benchmark_id: | |
| 37 raise legacy_page_test.MeasurementFailure( | |
| 38 'Failed to schedule invalidation_benchmark.') | |
| 39 | |
| 40 with action_runner.CreateInteraction('Repaint'): | |
| 41 action_runner.RepaintContinuously(seconds=5) | |
| 42 | |
| 43 action_runner.ExecuteJavaScript(""" | |
| 44 window.benchmark_results.message_handled = | |
| 45 chrome.gpuBenchmarking.sendMessageToMicroBenchmark( | |
| 46 {{ micro_benchmark_id }}, { | |
| 47 "notify_done": true | |
| 48 }); | |
| 49 """, | |
| 50 micro_benchmark_id=micro_benchmark_id) | |
| 51 | |
| 52 | |
| 53 def WaitThenRepaint(action_runner): | |
| 54 action_runner.Wait(2) | |
| 55 Repaint(action_runner) | |
| OLD | NEW |