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 import os | 4 import os |
5 | 5 |
6 from chrome_remote_control import multi_page_benchmark | 6 from chrome_remote_control import multi_page_benchmark |
7 from chrome_remote_control import util | 7 from chrome_remote_control import util |
8 | 8 |
9 class DidNotScrollException(multi_page_benchmark.MeasurementFailure): | 9 class DidNotScrollException(multi_page_benchmark.MeasurementFailure): |
10 def __init__(self): | 10 def __init__(self): |
11 super(DidNotScrollException, self).__init__('Page did not scroll') | 11 super(DidNotScrollException, self).__init__('Page did not scroll') |
12 | 12 |
13 def CalcScrollResults(rendering_stats_deltas, results): | 13 def CalcScrollResults(rendering_stats_deltas, results): |
14 num_frames_sent_to_screen = rendering_stats_deltas['numFramesSentToScreen'] | 14 num_frames_sent_to_screen = rendering_stats_deltas['rendererFrameCount'] |
15 | 15 |
16 mean_frame_time_seconds = ( | 16 mean_frame_time_seconds = ( |
17 rendering_stats_deltas['totalTimeInSeconds'] / | 17 rendering_stats_deltas['totalTimeInSeconds'] / |
18 float(num_frames_sent_to_screen)) | 18 float(num_frames_sent_to_screen)) |
19 | 19 |
20 dropped_percent = ( | 20 dropped_percent = ( |
21 rendering_stats_deltas['droppedFrameCount'] / | 21 rendering_stats_deltas['droppedFrameCount'] / |
22 float(num_frames_sent_to_screen)) | 22 float(rendering_stats_deltas['vsyncCount'])) |
23 | 23 |
24 results.Add('mean_frame_time', 'ms', round(mean_frame_time_seconds * 1000, 3)) | 24 results.Add('mean_frame_time', 'ms', round(mean_frame_time_seconds * 1000, 3)) |
25 results.Add('dropped_percent', '%', round(dropped_percent * 100, 1)) | 25 results.Add('dropped_percent', '%', round(dropped_percent * 100, 1)) |
26 | 26 |
27 class ScrollingBenchmark(multi_page_benchmark.MultiPageBenchmark): | 27 class ScrollingBenchmark(multi_page_benchmark.MultiPageBenchmark): |
28 def __init__(self): | 28 def __init__(self): |
29 super(ScrollingBenchmark, self).__init__() | 29 super(ScrollingBenchmark, self).__init__() |
30 | 30 |
31 def AddOptions(self, parser): | 31 def AddOptions(self, parser): |
32 parser.add_option('--no-gpu-benchmarking-extension', action='store_true', | 32 parser.add_option('--no-gpu-benchmarking-extension', action='store_true', |
(...skipping 29 matching lines...) Expand all Loading... |
62 tab.runtime.Execute('(function() { var element = document.body; %s})();' % | 62 tab.runtime.Execute('(function() { var element = document.body; %s})();' % |
63 start_scroll_js) | 63 start_scroll_js) |
64 | 64 |
65 # Poll for scroll benchmark completion. | 65 # Poll for scroll benchmark completion. |
66 util.WaitFor(lambda: tab.runtime.Evaluate( | 66 util.WaitFor(lambda: tab.runtime.Evaluate( |
67 'window.__renderingStatsDeltas'), 60) | 67 'window.__renderingStatsDeltas'), 60) |
68 | 68 |
69 rendering_stats_deltas = tab.runtime.Evaluate( | 69 rendering_stats_deltas = tab.runtime.Evaluate( |
70 'window.__renderingStatsDeltas') | 70 'window.__renderingStatsDeltas') |
71 | 71 |
72 if not (rendering_stats_deltas['numFramesSentToScreen'] > 0): | 72 if not (rendering_stats_deltas['rendererFrameCount'] > 0): |
73 raise DidNotScrollException() | 73 raise DidNotScrollException() |
74 return rendering_stats_deltas | 74 return rendering_stats_deltas |
75 | 75 |
76 def CustomizeBrowserOptions(self, options): | 76 def CustomizeBrowserOptions(self, options): |
77 if not options.no_gpu_benchmarking_extension: | 77 if not options.no_gpu_benchmarking_extension: |
78 options.extra_browser_args.append('--enable-gpu-benchmarking') | 78 options.extra_browser_args.append('--enable-gpu-benchmarking') |
79 | 79 |
80 def MeasurePage(self, page, tab, results): | 80 def MeasurePage(self, page, tab, results): |
81 rendering_stats_deltas = self.ScrollPageFully(page, tab) | 81 rendering_stats_deltas = self.ScrollPageFully(page, tab) |
82 CalcScrollResults(rendering_stats_deltas, results) | 82 CalcScrollResults(rendering_stats_deltas, results) |
83 if self.options.report_all_results: | 83 if self.options.report_all_results: |
84 for k, v in rendering_stats_deltas.iteritems(): | 84 for k, v in rendering_stats_deltas.iteritems(): |
85 results.Add(k, '', v) | 85 results.Add(k, '', v) |
OLD | NEW |