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 |
17 from page_sets import webgl_supported_shared_state | 18 from page_sets import webgl_supported_shared_state |
18 | 19 |
19 | 20 |
20 BLINK_PERF_BASE_DIR = os.path.join(util.GetChromiumSrcDir(), | 21 BLINK_PERF_BASE_DIR = os.path.join(util.GetChromiumSrcDir(), |
21 'third_party', 'WebKit', 'PerformanceTests') | 22 'third_party', 'WebKit', 'PerformanceTests') |
22 SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped') | 23 SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped') |
23 | 24 |
24 | 25 |
25 def CreateStorySetFromPath(path, skipped_file, | 26 def CreateStorySetFromPath(path, skipped_file, |
26 shared_page_state_class=( | 27 shared_page_state_class=( |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 self._blink_perf_js += '\nwindow.fullFrameMeasurement = true;' | 117 self._blink_perf_js += '\nwindow.fullFrameMeasurement = true;' |
117 | 118 |
118 def CustomizeBrowserOptions(self, options): | 119 def CustomizeBrowserOptions(self, options): |
119 super(_BlinkPerfFullFrameMeasurement, self).CustomizeBrowserOptions( | 120 super(_BlinkPerfFullFrameMeasurement, self).CustomizeBrowserOptions( |
120 options) | 121 options) |
121 # Full layout measurement needs content_shell with internals testing API. | 122 # Full layout measurement needs content_shell with internals testing API. |
122 assert 'content-shell' in options.browser_type | 123 assert 'content-shell' in options.browser_type |
123 options.AppendExtraBrowserArgs(['--expose-internals-for-testing']) | 124 options.AppendExtraBrowserArgs(['--expose-internals-for-testing']) |
124 | 125 |
125 | 126 |
| 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 |
126 class BlinkPerfBindings(perf_benchmark.PerfBenchmark): | 149 class BlinkPerfBindings(perf_benchmark.PerfBenchmark): |
127 tag = 'bindings' | 150 tag = 'bindings' |
128 test = _BlinkPerfMeasurement | 151 test = _BlinkPerfMeasurement |
129 | 152 |
130 @classmethod | 153 @classmethod |
131 def Name(cls): | 154 def Name(cls): |
132 return 'blink_perf.bindings' | 155 return 'blink_perf.bindings' |
133 | 156 |
134 def CreateStorySet(self, options): | 157 def CreateStorySet(self, options): |
135 path = os.path.join(BLINK_PERF_BASE_DIR, 'Bindings') | 158 path = os.path.join(BLINK_PERF_BASE_DIR, 'Bindings') |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 tag = 'xml_http_request' | 317 tag = 'xml_http_request' |
295 test = _BlinkPerfMeasurement | 318 test = _BlinkPerfMeasurement |
296 | 319 |
297 @classmethod | 320 @classmethod |
298 def Name(cls): | 321 def Name(cls): |
299 return 'blink_perf.xml_http_request' | 322 return 'blink_perf.xml_http_request' |
300 | 323 |
301 def CreateStorySet(self, options): | 324 def CreateStorySet(self, options): |
302 path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest') | 325 path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest') |
303 return CreateStorySetFromPath(path, SKIPPED_FILE) | 326 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 |