summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/perf/benchmarks/service_worker.py25
-rw-r--r--tools/perf/page_sets/data/service_worker.json11
-rw-r--r--tools/perf/page_sets/data/service_worker_019.wpr.sha11
-rw-r--r--tools/perf/page_sets/service_worker.py26
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))