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
import story
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 super(ServiceWorkerBenchmarkPage
, self
).RunNavigateSteps(action_runner
)
17 action_runner
.WaitForJavaScriptCondition('window.done')
20 class ServiceWorkerMicroBenchmarkPageSet(story
.StorySet
):
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 cloud_storage_bucket
=story
.PUBLIC_BUCKET
)
28 # pylint: disable=C0301
29 # The code of localhost:8091 is placed in
30 # https://github.com/coonsta/Service-Worker-Performance
31 # but currently the following is used:
32 # https://github.com/amiq11/Service-Worker-Performance/tree/follow_spec_and_many_registration
33 # (rev: 3238098ea0225f53dab2f69f7406db8a2712dbf9)
34 # This will be merged into the main repository.
35 # pylint: enable=C0301
36 # Why: to measure performance of many concurrent fetches
37 self
.AddStory(ServiceWorkerBenchmarkPage(
38 'http://localhost:8091/index.html', self
,
39 make_javascript_deterministic
=False))