| 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 |