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

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

Issue 2618333006: [tools/perf] Fix JavaScript interpolation in action_runner calls (Closed)
Patch Set: fix a few more interpolations Created 3 years, 11 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
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 from telemetry.util import js_template
8 9
9 10
10 URL_LIST = [ 11 URL_LIST = [
11 ('Polymer', 'http://todomvc.com/examples/polymer'), 12 ('Polymer', 'http://todomvc.com/examples/polymer'),
12 ('AngularJS', 'http://todomvc.com/examples/angularjs'), 13 ('AngularJS', 'http://todomvc.com/examples/angularjs'),
13 ('React', 'http://todomvc.com/examples/react'), 14 ('React', 'http://todomvc.com/examples/react'),
14 ('Backbone.js', 'http://todomvc.com/examples/backbone'), 15 ('Backbone.js', 'http://todomvc.com/examples/backbone'),
15 ('Ember.js', 'http://todomvc.com/examples/emberjs'), 16 ('Ember.js', 'http://todomvc.com/examples/emberjs'),
16 ('Closure', 'http://todomvc.com/examples/closure'), 17 ('Closure', 'http://todomvc.com/examples/closure'),
17 ('GWT', 'http://todomvc.com/examples/gwt'), 18 ('GWT', 'http://todomvc.com/examples/gwt'),
18 ('Dart', 'http://todomvc.com/examples/vanilladart/build/web'), 19 ('Dart', 'http://todomvc.com/examples/vanilladart/build/web'),
19 ('Vanilla JS', 'http://todomvc.com/examples/vanillajs'), 20 ('Vanilla JS', 'http://todomvc.com/examples/vanillajs'),
20 ] 21 ]
21 22
22 INTERACTION_NAME = 'Interaction.AppLoad' 23 INTERACTION_NAME = 'Interaction.AppLoad'
23 24
24 25
25 class TodoMVCPage(page_module.Page): 26 class TodoMVCPage(page_module.Page):
26 27
27 def __init__(self, url, page_set, name): 28 def __init__(self, url, page_set, name):
28 super(TodoMVCPage, self).__init__( 29 super(TodoMVCPage, self).__init__(
29 url=url, page_set=page_set, name=name, 30 url=url, page_set=page_set, name=name,
30 shared_page_state_class=shared_page_state.SharedDesktopPageState) 31 shared_page_state_class=shared_page_state.SharedDesktopPageState)
31 # TODO(jochen): This interaction does not include the 32 # TODO(jochen): This interaction does not include the
32 # WindowProxy::initialize portion before the commit. To fix this, we'll 33 # WindowProxy::initialize portion before the commit. To fix this, we'll
33 # have to migrate to TBMv2. 34 # have to migrate to TBMv2.
34 self.script_to_evaluate_on_commit = ( 35 self.script_to_evaluate_on_commit = js_template.Render(
35 'console.time("%s");' % INTERACTION_NAME) 36 'console.time({{ label }});', label=INTERACTION_NAME)
36 37
37 def RunPageInteractions(self, action_runner): 38 def RunPageInteractions(self, action_runner):
38 action_runner.ExecuteJavaScript( 39 action_runner.ExecuteJavaScript(
39 """ 40 """
40 this.becameIdle = false; 41 this.becameIdle = false;
41 this.idleCallback = function(deadline) { 42 this.idleCallback = function(deadline) {
42 if (deadline.timeRemaining() > 20) 43 if (deadline.timeRemaining() > 20)
43 this.becameIdle = true; 44 this.becameIdle = true;
44 else 45 else
45 requestIdleCallback(this.idleCallback); 46 requestIdleCallback(this.idleCallback);
46 }; 47 };
47 requestIdleCallback(this.idleCallback); 48 requestIdleCallback(this.idleCallback);
48 """ 49 """
49 ) 50 )
50 action_runner.WaitForJavaScriptCondition('this.becameIdle === true') 51 action_runner.WaitForJavaScriptCondition('this.becameIdle === true')
51 # TODO(catapult:#3028): Fix interpolation of JavaScript values. 52 action_runner.ExecuteJavaScript(
52 action_runner.ExecuteJavaScript('console.timeEnd("%s");' % INTERACTION_NAME) 53 'console.timeEnd({{ label }});', label=INTERACTION_NAME)
53 54
54 55
55 class TodoMVCPageSet(story.StorySet): 56 class TodoMVCPageSet(story.StorySet):
56 57
57 """ TodoMVC examples """ 58 """ TodoMVC examples """
58 59
59 def __init__(self): 60 def __init__(self):
60 super(TodoMVCPageSet, self).__init__( 61 super(TodoMVCPageSet, self).__init__(
61 archive_data_file='data/todomvc.json', 62 archive_data_file='data/todomvc.json',
62 cloud_storage_bucket=story.PUBLIC_BUCKET) 63 cloud_storage_bucket=story.PUBLIC_BUCKET)
63 64
64 for name, url in URL_LIST: 65 for name, url in URL_LIST:
65 self.AddStory(TodoMVCPage(url, self, name)) 66 self.AddStory(TodoMVCPage(url, self, name))
OLDNEW
« no previous file with comments | « tools/perf/page_sets/system_health/media_stories.py ('k') | tools/perf/page_sets/top_7_stress.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698