OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 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 import os | 5 import os |
6 | 6 |
7 from core import perf_benchmark | 7 from core import perf_benchmark |
8 | 8 |
9 from telemetry import benchmark | 9 from telemetry import benchmark |
10 from telemetry.core import util | 10 from telemetry.core import util |
11 from telemetry import page as page_module | 11 from telemetry import page as page_module |
12 from telemetry.page import page_test | 12 from telemetry.page import page_test |
13 from telemetry.page import shared_page_state | 13 from telemetry.page import shared_page_state |
14 from telemetry import story | 14 from telemetry import story |
15 from telemetry.value import list_of_scalar_values | 15 from telemetry.value import list_of_scalar_values |
16 | 16 |
17 from benchmarks import pywebsocket_server | |
18 from page_sets import webgl_supported_shared_state | 17 from page_sets import webgl_supported_shared_state |
19 | 18 |
20 | 19 |
21 BLINK_PERF_BASE_DIR = os.path.join(util.GetChromiumSrcDir(), | 20 BLINK_PERF_BASE_DIR = os.path.join(util.GetChromiumSrcDir(), |
22 'third_party', 'WebKit', 'PerformanceTests') | 21 'third_party', 'WebKit', 'PerformanceTests') |
23 SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped') | 22 SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped') |
24 | 23 |
25 | 24 |
26 def CreateStorySetFromPath(path, skipped_file, | 25 def CreateStorySetFromPath(path, skipped_file, |
27 shared_page_state_class=( | 26 shared_page_state_class=( |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 self._blink_perf_js += '\nwindow.fullFrameMeasurement = true;' | 116 self._blink_perf_js += '\nwindow.fullFrameMeasurement = true;' |
118 | 117 |
119 def CustomizeBrowserOptions(self, options): | 118 def CustomizeBrowserOptions(self, options): |
120 super(_BlinkPerfFullFrameMeasurement, self).CustomizeBrowserOptions( | 119 super(_BlinkPerfFullFrameMeasurement, self).CustomizeBrowserOptions( |
121 options) | 120 options) |
122 # Full layout measurement needs content_shell with internals testing API. | 121 # Full layout measurement needs content_shell with internals testing API. |
123 assert 'content-shell' in options.browser_type | 122 assert 'content-shell' in options.browser_type |
124 options.AppendExtraBrowserArgs(['--expose-internals-for-testing']) | 123 options.AppendExtraBrowserArgs(['--expose-internals-for-testing']) |
125 | 124 |
126 | 125 |
127 class _BlinkPerfPywebsocketMeasurement(_BlinkPerfMeasurement): | |
128 def CustomizeBrowserOptions(self, options): | |
129 super(_BlinkPerfPywebsocketMeasurement, self).CustomizeBrowserOptions( | |
130 options) | |
131 # Cross-origin accesses are needed to run benchmarks spanning two servers, | |
132 # the Telemetry's HTTP server and the pywebsocket server. | |
133 options.AppendExtraBrowserArgs(['--disable-web-security']) | |
134 | |
135 | |
136 class _SharedPywebsocketPageState(shared_page_state.SharedPageState): | |
137 """Runs a pywebsocket server.""" | |
138 def __init__(self, test, finder_options, user_story_set): | |
139 super(_SharedPywebsocketPageState, self).__init__( | |
140 test, finder_options, user_story_set) | |
141 self._pywebsocket_server = pywebsocket_server.PywebsocketServer() | |
142 self.platform.StartLocalServer(self._pywebsocket_server) | |
143 | |
144 def TearDownState(self): | |
145 super(_SharedPywebsocketPageState, self).TearDownState() | |
146 self._pywebsocket_server.Close() | |
147 | |
148 | |
149 class BlinkPerfBindings(perf_benchmark.PerfBenchmark): | 126 class BlinkPerfBindings(perf_benchmark.PerfBenchmark): |
150 tag = 'bindings' | 127 tag = 'bindings' |
151 test = _BlinkPerfMeasurement | 128 test = _BlinkPerfMeasurement |
152 | 129 |
153 @classmethod | 130 @classmethod |
154 def Name(cls): | 131 def Name(cls): |
155 return 'blink_perf.bindings' | 132 return 'blink_perf.bindings' |
156 | 133 |
157 def CreateStorySet(self, options): | 134 def CreateStorySet(self, options): |
158 path = os.path.join(BLINK_PERF_BASE_DIR, 'Bindings') | 135 path = os.path.join(BLINK_PERF_BASE_DIR, 'Bindings') |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 tag = 'xml_http_request' | 294 tag = 'xml_http_request' |
318 test = _BlinkPerfMeasurement | 295 test = _BlinkPerfMeasurement |
319 | 296 |
320 @classmethod | 297 @classmethod |
321 def Name(cls): | 298 def Name(cls): |
322 return 'blink_perf.xml_http_request' | 299 return 'blink_perf.xml_http_request' |
323 | 300 |
324 def CreateStorySet(self, options): | 301 def CreateStorySet(self, options): |
325 path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest') | 302 path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest') |
326 return CreateStorySetFromPath(path, SKIPPED_FILE) | 303 return CreateStorySetFromPath(path, SKIPPED_FILE) |
327 | |
328 | |
329 # Disabled due to https://crbug.com/521887 | |
330 @benchmark.Disabled('win', 'chromeos') | |
331 class BlinkPerfPywebsocket(perf_benchmark.PerfBenchmark): | |
332 tag = 'pywebsocket' | |
333 test = _BlinkPerfPywebsocketMeasurement | |
334 | |
335 @classmethod | |
336 def Name(cls): | |
337 return 'blink_perf.pywebsocket' | |
338 | |
339 def CreateStorySet(self, options): | |
340 path = os.path.join(BLINK_PERF_BASE_DIR, 'Pywebsocket') | |
341 return CreateStorySetFromPath(path, SKIPPED_FILE, | |
342 shared_page_state_class=_SharedPywebsocketPageState) | |
OLD | NEW |