Chromium Code Reviews| Index: tools/perf/benchmarks/blink_perf.py |
| diff --git a/tools/perf/benchmarks/blink_perf.py b/tools/perf/benchmarks/blink_perf.py |
| index dfb16534923970bd93b0f914fb290f3c7bbd0bab..aa309083e26f0e54c45173ec2e60baf9110ef426 100644 |
| --- a/tools/perf/benchmarks/blink_perf.py |
| +++ b/tools/perf/benchmarks/blink_perf.py |
| @@ -4,11 +4,15 @@ |
| import os |
| +from benchmarks import pywebsocket_server |
| from telemetry import benchmark |
| +from telemetry.core import local_server |
| +from telemetry.core import platform as platform_module |
| from telemetry.core import util |
| from telemetry import page as page_module |
| from telemetry.page import page_set |
| from telemetry.page import page_test |
| +from telemetry.page import shared_page_state |
| from telemetry.value import list_of_scalar_values |
| @@ -17,7 +21,9 @@ BLINK_PERF_BASE_DIR = os.path.join(util.GetChromiumSrcDir(), |
| SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped') |
| -def CreatePageSetFromPath(path, skipped_file): |
| +def CreatePageSetFromPath( |
| + path, skipped_file, |
| + shared_page_state_class=shared_page_state.SharedPageState): |
| assert os.path.exists(path) |
| page_urls = [] |
| @@ -57,7 +63,8 @@ def CreatePageSetFromPath(path, skipped_file): |
| ps = page_set.PageSet(file_path=os.getcwd()+os.sep, |
| serving_dirs=serving_dirs) |
| for url in page_urls: |
| - ps.AddUserStory(page_module.Page(url, ps, ps.base_dir)) |
| + ps.AddUserStory(page_module.Page( |
| + url, ps, ps.base_dir, shared_page_state_class=shared_page_state_class)) |
| return ps |
| @@ -114,6 +121,29 @@ 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() |
| + platform_module.GetHostPlatform().StartLocalServer( |
|
nednguyen
2015/04/23 15:29:19
Does this benchmark work for the case browser runs
hiroshige
2015/04/24 08:15:44
I tested and, no, this didn't work on android tryb
nednguyen
2015/04/24 15:04:37
Then we should figure out patch 12 doesn't work on
hiroshige
2015/07/30 05:29:07
This was because on Android platform.GetPlatformFo
|
| + self._pywebsocket_server) |
| + |
| + def TearDownState(self, results): |
| + super(_SharedPywebsocketPageState, self).TearDownState(results) |
| + self._pywebsocket_server.Close() |
| + |
| + |
| class BlinkPerfAnimation(benchmark.Benchmark): |
| tag = 'animation' |
| test = _BlinkPerfMeasurement |
| @@ -306,3 +336,17 @@ class BlinkPerfXMLHttpRequest(benchmark.Benchmark): |
| def CreatePageSet(self, options): |
| path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest') |
| return CreatePageSetFromPath(path, SKIPPED_FILE) |
| + |
| + |
| +class BlinkPerfPywebsocket(benchmark.Benchmark): |
| + tag = 'pywebsocket' |
| + test = _BlinkPerfPywebsocketMeasurement |
| + |
| + @classmethod |
| + def Name(cls): |
| + return 'blink_perf.pywebsocket' |
| + |
| + def CreatePageSet(self, options): |
| + path = os.path.join(BLINK_PERF_BASE_DIR, 'Pywebsocket') |
| + return CreatePageSetFromPath(path, SKIPPED_FILE, |
| + shared_page_state_class=_SharedPywebsocketPageState) |