1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved.
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# found in the LICENSE file.
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
5f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)import page_sets
6116680a4aac90f2aa7413d9095a592090648e557Ben Murdochfrom telemetry import benchmark
76e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)from telemetry.page import page_test
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdochfrom telemetry.value import scalar
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)class _ServiceWorkerMeasurement(page_test.PageTest):
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  def CustomizeBrowserOptions(self, options):
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    options.AppendExtraBrowserArgs([
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        '--enable-experimental-web-platform-features'
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      ])
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
176e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  def ValidateAndMeasurePage(self, _, tab, results):
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    tab.WaitForJavaScriptExpression('window.done', 40)
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    json = tab.EvaluateJavaScript('window.results')
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    for key, value in json.iteritems():
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      results.AddValue(scalar.ScalarValue(
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          results.current_page, key, value['units'], value['value']))
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch@benchmark.Disabled
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass ServiceWorkerPerfTest(benchmark.Benchmark):
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  test = _ServiceWorkerMeasurement
28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  page_set = page_sets.ServiceWorkerPageSet
29