Index: tools/perf/benchmarks/blink_perf.py |
diff --git a/tools/perf/benchmarks/blink_perf.py b/tools/perf/benchmarks/blink_perf.py |
index eb7e35377985f20c1686c1b75c7a08eb175c59e9..dfd1384657938d16a40e0550a11c1a2bfe18c668 100644 |
--- a/tools/perf/benchmarks/blink_perf.py |
+++ b/tools/perf/benchmarks/blink_perf.py |
@@ -14,6 +14,7 @@ from telemetry.page import shared_page_state |
from telemetry import story |
from telemetry.value import list_of_scalar_values |
+from benchmarks import pywebsocket_server |
from page_sets import webgl_supported_shared_state |
@@ -123,6 +124,28 @@ class _BlinkPerfFullFrameMeasurement(_BlinkPerfMeasurement): |
options.AppendExtraBrowserArgs(['--expose-internals-for-testing']) |
+class _BlinkPerfPywebsocketMeasurement(_BlinkPerfMeasurement): |
+ def CustomizeBrowserOptions(self, options): |
+ super(_BlinkPerfPywebsocketMeasurement, self).CustomizeBrowserOptions( |
+ options) |
+ # Cross-origin accesses are needed to run benchmarks spanning two servers, |
+ # the Telemetry's HTTP server and the pywebsocket server. |
+ options.AppendExtraBrowserArgs(['--disable-web-security']) |
+ |
+ |
+class _SharedPywebsocketPageState(shared_page_state.SharedPageState): |
+ """Runs a pywebsocket server.""" |
+ def __init__(self, test, finder_options, user_story_set): |
+ super(_SharedPywebsocketPageState, self).__init__( |
+ test, finder_options, user_story_set) |
+ self._pywebsocket_server = pywebsocket_server.PywebsocketServer() |
+ self.platform.StartLocalServer(self._pywebsocket_server) |
+ |
+ def TearDownState(self): |
+ super(_SharedPywebsocketPageState, self).TearDownState() |
+ self._pywebsocket_server.Close() |
+ |
+ |
class BlinkPerfBindings(perf_benchmark.PerfBenchmark): |
tag = 'bindings' |
test = _BlinkPerfMeasurement |
@@ -301,3 +324,19 @@ class BlinkPerfXMLHttpRequest(perf_benchmark.PerfBenchmark): |
def CreateStorySet(self, options): |
path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest') |
return CreateStorySetFromPath(path, SKIPPED_FILE) |
+ |
+ |
+# Disabled due to https://crbug.com/521887 |
+@benchmark.Disabled('win', 'chromeos') |
+class BlinkPerfPywebsocket(perf_benchmark.PerfBenchmark): |
+ tag = 'pywebsocket' |
+ test = _BlinkPerfPywebsocketMeasurement |
+ |
+ @classmethod |
+ def Name(cls): |
+ return 'blink_perf.pywebsocket' |
+ |
+ def CreateStorySet(self, options): |
+ path = os.path.join(BLINK_PERF_BASE_DIR, 'Pywebsocket') |
+ return CreateStorySetFromPath(path, SKIPPED_FILE, |
+ shared_page_state_class=_SharedPywebsocketPageState) |