diff options
-rw-r--r-- | tools/perf/benchmarks/service_worker.py | 25 | ||||
-rw-r--r-- | tools/perf/page_sets/data/service_worker.json | 11 | ||||
-rw-r--r-- | tools/perf/page_sets/data/service_worker_019.wpr.sha1 | 1 | ||||
-rw-r--r-- | tools/perf/page_sets/service_worker.py | 26 |
4 files changed, 63 insertions, 0 deletions
diff --git a/tools/perf/benchmarks/service_worker.py b/tools/perf/benchmarks/service_worker.py new file mode 100644 index 0000000..a719fe4 --- /dev/null +++ b/tools/perf/benchmarks/service_worker.py @@ -0,0 +1,25 @@ +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +from telemetry import test +from telemetry.page import page_measurement + + +class _ServiceWorkerMeasurement(page_measurement.PageMeasurement): + def CustomizeBrowserOptions(self, options): + options.AppendExtraBrowserArgs([ + '--enable-experimental-web-platform-features', + '--enable-service-worker' + ]) + + def MeasurePage(self, _, tab, results): + tab.WaitForJavaScriptExpression('window.done', 40) + json = tab.EvaluateJavaScript('window.results') + for key, value in json.iteritems(): + results.Add(key, value['units'], value['value']) + + +class ServiceWorkerPerfTest(test.Test): + test = _ServiceWorkerMeasurement + page_set = 'page_sets/service_worker.py' diff --git a/tools/perf/page_sets/data/service_worker.json b/tools/perf/page_sets/data/service_worker.json new file mode 100644 index 0000000..a3d3e8e --- /dev/null +++ b/tools/perf/page_sets/data/service_worker.json @@ -0,0 +1,11 @@ +{ + "description": "Describes the Web Page Replay archives for a page set. Don't edit by hand! Use record_wpr for updating.", + "archives": { + "service_worker_011.wpr": [ + "http://localhost:8080/index.html" + ], + "service_worker_019.wpr": [ + "http://localhost:8091/index.html" + ] + } +}
\ No newline at end of file diff --git a/tools/perf/page_sets/data/service_worker_019.wpr.sha1 b/tools/perf/page_sets/data/service_worker_019.wpr.sha1 new file mode 100644 index 0000000..a2978c5 --- /dev/null +++ b/tools/perf/page_sets/data/service_worker_019.wpr.sha1 @@ -0,0 +1 @@ +41b8cda2c77d0d8e889e4fac2c4a2075895145d8
\ No newline at end of file diff --git a/tools/perf/page_sets/service_worker.py b/tools/perf/page_sets/service_worker.py new file mode 100644 index 0000000..934b9fb --- /dev/null +++ b/tools/perf/page_sets/service_worker.py @@ -0,0 +1,26 @@ +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +from telemetry.page import page +from telemetry.page import page_set +from telemetry.page.actions import all_page_actions as actions + + +archive_data_file_path = 'data/service_worker.json' + + +class ServiceWorkerPage(page.Page): + def RunNavigateSteps(self, action_runner): + action_runner.RunAction(actions.NavigateAction()) + action_runner.RunAction(actions.WaitAction({'javascript': 'window.done'})) + + +class ServiceWorkerPageSet(page_set.PageSet): + def __init__(self): + super(ServiceWorkerPageSet, self).__init__( + description='ServiceWorker performance tests', + archive_data_file=archive_data_file_path, + make_javascript_deterministic=False) + + self.AddPage(ServiceWorkerPage('http://localhost:8091/index.html', self)) |