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
3 # found in the LICENSE file.
7 from telemetry
.page
import page_test
8 from telemetry
.value
import scalar
10 from measurements
import smoothness
13 class RecordPerArea(page_test
.PageTest
):
14 def __init__(self
, start_wait_time
=2):
15 super(RecordPerArea
, self
).__init
__(
16 needs_browser_restart_after_each_page
=True)
17 self
._start
_wait
_time
= start_wait_time
19 def CustomizeBrowserOptions(self
, options
):
20 smoothness
.Smoothness
.CustomizeBrowserOptions(options
)
21 options
.AppendExtraBrowserArgs([
22 '--enable-impl-side-painting',
23 '--enable-threaded-compositing',
24 '--enable-gpu-benchmarking'
27 def ValidateAndMeasurePage(self
, page
, tab
, results
):
28 # Wait until the page has loaded and come to a somewhat steady state.
29 # Needs to be adjusted for every device (~2 seconds for workstation).
30 time
.sleep(self
._start
_wait
_time
)
33 tab
.ExecuteJavaScript("""
34 window.benchmark_results = {};
35 window.benchmark_results.done = false;
36 chrome.gpuBenchmarking.runMicroBenchmark(
37 "picture_record_benchmark",
39 window.benchmark_results.done = true;
40 window.benchmark_results.results = value;
41 }, [{width: 1, height: 1},
42 {width: 250, height: 250},
43 {width: 500, height: 500},
44 {width: 750, height: 750},
45 {width: 1000, height: 1000},
46 {width: 256, height: 1024},
47 {width: 1024, height: 256}]);
50 tab
.WaitForJavaScriptExpression('window.benchmark_results.done', 300)
52 all_data
= tab
.EvaluateJavaScript('window.benchmark_results.results')
55 height
= data
['height']
57 time_ms
= data
['time_ms']
59 results
.AddValue(scalar
.ScalarValue(
60 results
.current_page
, 'area_%07d_%dx%d' % (area
, width
, height
),