Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Side by Side Diff: tools/perf/page_sets/todomvc.py

Issue 1782033002: [telemetry] Add page load interaction to V8.todomvc (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updates Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/perf/benchmarks/v8.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 from telemetry.page import page as page_module 5 from telemetry.page import page as page_module
6 from telemetry.page import shared_page_state 6 from telemetry.page import shared_page_state
7 from telemetry import story 7 from telemetry import story
8 8
9 9
10 URL_LIST = [ 10 URL_LIST = [
11 ('Polymer', 'http://todomvc.com/examples/polymer'), 11 ('Polymer', 'http://todomvc.com/examples/polymer'),
12 ('AngularJS', 'http://todomvc.com/examples/angularjs'), 12 ('AngularJS', 'http://todomvc.com/examples/angularjs'),
13 ('React', 'http://todomvc.com/examples/react'), 13 ('React', 'http://todomvc.com/examples/react'),
14 ('Backbone.js', 'http://todomvc.com/examples/backbone'), 14 ('Backbone.js', 'http://todomvc.com/examples/backbone'),
15 ('Ember.js', 'http://todomvc.com/examples/emberjs'), 15 ('Ember.js', 'http://todomvc.com/examples/emberjs'),
16 ('Closure', 'http://todomvc.com/examples/closure'), 16 ('Closure', 'http://todomvc.com/examples/closure'),
17 ('GWT', 'http://todomvc.com/examples/gwt'), 17 ('GWT', 'http://todomvc.com/examples/gwt'),
18 ('Dart', 'http://todomvc.com/examples/vanilladart/build/web'), 18 ('Dart', 'http://todomvc.com/examples/vanilladart/build/web'),
19 ('Vanilla JS', 'http://todomvc.com/examples/vanillajs'), 19 ('Vanilla JS', 'http://todomvc.com/examples/vanillajs'),
20 ] 20 ]
21 21
22 INTERACTION_NAME = 'Interaction.AppLoad'
23
22 24
23 class TodoMVCPage(page_module.Page): 25 class TodoMVCPage(page_module.Page):
24 26
25 def __init__(self, url, page_set, name): 27 def __init__(self, url, page_set, name):
26 super(TodoMVCPage, self).__init__( 28 super(TodoMVCPage, self).__init__(
27 url=url, page_set=page_set, name=name, 29 url=url, page_set=page_set, name=name,
28 shared_page_state_class=shared_page_state.SharedDesktopPageState) 30 shared_page_state_class=shared_page_state.SharedDesktopPageState)
31 # TODO(jochen): This interaction does not include the
32 # WindowProxy::initialize portion before the commit. To fix this, we'll
33 # have to migrate to TBMv2.
34 self.script_to_evaluate_on_commit = (
35 'console.time("%s");' % INTERACTION_NAME)
29 36
30 def RunPageInteractions(self, action_runner): 37 def RunPageInteractions(self, action_runner):
31 pass 38 action_runner.ExecuteJavaScript(
39 """
40 this.becameIdle = false;
41 this.idleCallback = function(deadline) {
42 if (deadline.timeRemaining() > 20)
43 this.becameIdle = true;
44 else
45 requestIdleCallback(this.idleCallback);
46 };
47 requestIdleCallback(this.idleCallback);
48 """
49 )
50 action_runner.WaitForJavaScriptCondition('this.becameIdle === true')
51 action_runner.ExecuteJavaScript('console.timeEnd("%s");' % INTERACTION_NAME)
32 52
33 53
34 class TodoMVCPageSet(story.StorySet): 54 class TodoMVCPageSet(story.StorySet):
35 55
36 """ TodoMVC examples """ 56 """ TodoMVC examples """
37 57
38 def __init__(self): 58 def __init__(self):
39 super(TodoMVCPageSet, self).__init__( 59 super(TodoMVCPageSet, self).__init__(
40 archive_data_file='data/todomvc.json', 60 archive_data_file='data/todomvc.json',
41 cloud_storage_bucket=story.PUBLIC_BUCKET) 61 cloud_storage_bucket=story.PUBLIC_BUCKET)
42 62
43 for name, url in URL_LIST: 63 for name, url in URL_LIST:
44 self.AddStory(TodoMVCPage(url, self, name)) 64 self.AddStory(TodoMVCPage(url, self, name))
OLDNEW
« no previous file with comments | « tools/perf/benchmarks/v8.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698