1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 from telemetry
.page
import page
as page
6 from telemetry
.page
import page_set
as page_set
9 archive_data_file_path
= 'data/service_worker_micro_benchmark.json'
12 class ServiceWorkerBenchmarkPage(page
.Page
):
13 """Page for workload to measure some specific functions in JS"""
15 def RunNavigateSteps(self
, action_runner
):
16 action_runner
.NavigateToPage(self
)
17 action_runner
.WaitForJavaScriptCondition('window.done')
20 class ServiceWorkerMicroBenchmarkPageSet(page_set
.PageSet
):
21 """Page set for micro benchmarking of each functions with ServiceWorker"""
24 super(ServiceWorkerMicroBenchmarkPageSet
, self
).__init
__(
25 archive_data_file
=archive_data_file_path
,
26 make_javascript_deterministic
=False,
27 bucket
=page_set
.PUBLIC_BUCKET
)
29 # pylint: disable=C0301
30 # The code of localhost:8091 is placed in
31 # https://github.com/coonsta/Service-Worker-Performance
32 # but currently the following is used:
33 # https://github.com/amiq11/Service-Worker-Performance/tree/follow_spec_and_many_registration
34 # (rev: 3238098ea0225f53dab2f69f7406db8a2712dbf9)
35 # This will be merged into the main repository.
36 # pylint: enable=C0301
37 # Why: to measure performance of many concurrent fetches
38 self
.AddPage(ServiceWorkerBenchmarkPage(
39 'http://localhost:8091/index.html', self
))