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

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

Issue 451483002: Use standalone widget pages rather than the integrated widget sampler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove shadow for polymer bug, update wpr Created 6 years, 4 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/page_sets/data/polymer_004.wpr.sha1 ('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 2014 The Chromium Authors. All rights reserved. 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 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 from telemetry.page import page as page_module 4 from telemetry.page import page as page_module
5 from telemetry.page import page_set as page_set_module 5 from telemetry.page import page_set as page_set_module
6 6
7 class PolymerPage(page_module.Page): 7 class PolymerPage(page_module.Page):
8 8
9 def __init__(self, url, page_set): 9 def __init__(self, url, page_set):
10 super(PolymerPage, self).__init__( 10 super(PolymerPage, self).__init__(
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 def __init__(self, page_set): 73 def __init__(self, page_set):
74 super(PolymerShadowPage, self).__init__( 74 super(PolymerShadowPage, self).__init__(
75 url='http://www.polymer-project.org/components/paper-shadow/demo.html', 75 url='http://www.polymer-project.org/components/paper-shadow/demo.html',
76 page_set=page_set) 76 page_set=page_set)
77 77
78 def RunSmoothness(self, action_runner): 78 def RunSmoothness(self, action_runner):
79 action_runner.ExecuteJavaScript( 79 action_runner.ExecuteJavaScript(
80 "document.getElementById('fab').scrollIntoView()") 80 "document.getElementById('fab').scrollIntoView()")
81 action_runner.Wait(5) 81 action_runner.Wait(5)
82 self.AnimateShadow(action_runner, 'card') 82 self.AnimateShadow(action_runner, 'card')
83 self.AnimateShadow(action_runner, 'fab') 83 #FIXME(wiltzius) disabling until this issue is fixed:
84 # https://github.com/Polymer/paper-shadow/issues/12
85 #self.AnimateShadow(action_runner, 'fab')
84 86
85 def AnimateShadow(self, action_runner, eid): 87 def AnimateShadow(self, action_runner, eid):
86 for i in range(1, 6): 88 for i in range(1, 6):
87 action_runner.ExecuteJavaScript( 89 action_runner.ExecuteJavaScript(
88 'document.getElementById("{0}").z = {1}'.format(eid, i)) 90 'document.getElementById("{0}").z = {1}'.format(eid, i))
89 action_runner.Wait(1) 91 action_runner.Wait(1)
90 92
91 93
92 class PolymerSampler(PolymerPage): 94 class PolymerSampler(PolymerPage):
93 95
94 def __init__(self, page_set, anchor, scrolling_page=False): 96 def __init__(self, page_set, anchor, scrolling_page=False):
95 """Page exercising interactions with a single Paper Sampler subpage. 97 """Page exercising interactions with a single Paper Sampler subpage.
96 98
97 Args: 99 Args:
98 page_set: Page set to inforporate this page into. 100 page_set: Page set to inforporate this page into.
99 anchor: string indicating which subpage to load (matches the element 101 anchor: string indicating which subpage to load (matches the element
100 type that page is displaying) 102 type that page is displaying)
101 scrolling_page: Whether scrolling the content pane is relevant to this 103 scrolling_page: Whether scrolling the content pane is relevant to this
102 content page or not. 104 content page or not.
103 """ 105 """
104 super(PolymerSampler, self).__init__( 106 super(PolymerSampler, self).__init__(
105 url=('http://www.polymer-project.org/components/paper-elements/demo.html#' 107 url=('http://www.polymer-project.org/components/%s/demo.html' % anchor),
106 + anchor),
107 page_set=page_set) 108 page_set=page_set)
108 self.scrolling_page = scrolling_page 109 self.scrolling_page = scrolling_page
109 self.iframe_js = 'document.querySelector("sampler-scaffold").$.frame' 110 self.iframe_js = 'document'
110 111
111 def RunNavigateSteps(self, action_runner): 112 def RunNavigateSteps(self, action_runner):
112 #FIXME(wiltzius) workaround for crbug.com/391672
113 action_runner.ExecuteJavaScript('window.location.href="about:blank";')
114 super(PolymerSampler, self).RunNavigateSteps(action_runner) 113 super(PolymerSampler, self).RunNavigateSteps(action_runner)
115 waitForLoadJS = """ 114 waitForLoadJS = """
116 window.Polymer.whenPolymerReady(function() { 115 window.Polymer.whenPolymerReady(function() {
117 %s.contentWindow.Polymer.whenPolymerReady(function() { 116 %s.contentWindow.Polymer.whenPolymerReady(function() {
118 window.__polymer_ready = true; 117 window.__polymer_ready = true;
119 }) 118 })
120 }); 119 });
121 """ % self.iframe_js 120 """ % self.iframe_js
122 action_runner.ExecuteJavaScript(waitForLoadJS) 121 action_runner.ExecuteJavaScript(waitForLoadJS)
123 action_runner.WaitForJavaScriptCondition( 122 action_runner.WaitForJavaScriptCondition(
124 'window.__polymer_ready') 123 'window.__polymer_ready')
125 124
126 def RunSmoothness(self, action_runner): 125 def RunSmoothness(self, action_runner):
127 #TODO(wiltzius) Add interactions for input elements and shadow pages 126 #TODO(wiltzius) Add interactions for input elements and shadow pages
128 if self.scrolling_page: 127 if self.scrolling_page:
129 # Only bother scrolling the page if its been marked as worthwhile 128 # Only bother scrolling the page if its been marked as worthwhile
130 self.ScrollContentPane(action_runner) 129 self.ScrollContentPane(action_runner)
131 self.TouchEverything(action_runner) 130 self.TouchEverything(action_runner)
132 131
133 def ScrollContentPane(self, action_runner): 132 def ScrollContentPane(self, action_runner):
134 element_function = (self.iframe_js + '.contentDocument.querySelector(' 133 element_function = (self.iframe_js + '.querySelector('
135 '"core-scroll-header-panel").$.mainContainer') 134 '"core-scroll-header-panel").$.mainContainer')
136 interaction = action_runner.BeginInteraction('Scroll_Page', is_smooth=True) 135 interaction = action_runner.BeginInteraction('Scroll_Page', is_smooth=True)
137 action_runner.ScrollElement(use_touch=True, 136 action_runner.ScrollElement(use_touch=True,
138 direction='down', 137 direction='down',
139 distance='900', 138 distance='900',
140 element_function=element_function) 139 element_function=element_function)
141 interaction.End() 140 interaction.End()
142 interaction = action_runner.BeginInteraction('Scroll_Page', is_smooth=True) 141 interaction = action_runner.BeginInteraction('Scroll_Page', is_smooth=True)
143 action_runner.ScrollElement(use_touch=True, 142 action_runner.ScrollElement(use_touch=True,
144 direction='up', 143 direction='up',
(...skipping 16 matching lines...) Expand all
161 for tappable_type in tappable_types: 160 for tappable_type in tappable_types:
162 self.DoActionOnWidgetType(action_runner, tappable_type, self.TapWidget) 161 self.DoActionOnWidgetType(action_runner, tappable_type, self.TapWidget)
163 swipeable_types = ['paper-slider'] 162 swipeable_types = ['paper-slider']
164 for swipeable_type in swipeable_types: 163 for swipeable_type in swipeable_types:
165 self.DoActionOnWidgetType(action_runner, swipeable_type, self.SwipeWidget) 164 self.DoActionOnWidgetType(action_runner, swipeable_type, self.SwipeWidget)
166 165
167 def DoActionOnWidgetType(self, action_runner, widget_type, action_function): 166 def DoActionOnWidgetType(self, action_runner, widget_type, action_function):
168 # Find all widgets of this type, but skip any that are disabled or are 167 # Find all widgets of this type, but skip any that are disabled or are
169 # currently active as they typically don't produce animation frames. 168 # currently active as they typically don't produce animation frames.
170 element_list_query = (self.iframe_js + 169 element_list_query = (self.iframe_js +
171 ('.contentDocument.querySelectorAll("body %s:not([disabled]):' 170 ('.querySelectorAll("body %s:not([disabled]):'
172 'not([active])")' % widget_type)) 171 'not([active])")' % widget_type))
173 roles_count_query = element_list_query + '.length' 172 roles_count_query = element_list_query + '.length'
174 for i in range(action_runner.EvaluateJavaScript(roles_count_query)): 173 for i in range(action_runner.EvaluateJavaScript(roles_count_query)):
175 element_query = element_list_query + ("[%d]" % i) 174 element_query = element_list_query + ("[%d]" % i)
176 if action_runner.EvaluateJavaScript( 175 if action_runner.EvaluateJavaScript(
177 element_query + '.offsetParent != null'): 176 element_query + '.offsetParent != null'):
178 # Only try to tap on visible elements (offsetParent != null) 177 # Only try to tap on visible elements (offsetParent != null)
179 action_runner.ExecuteJavaScript(element_query + '.scrollIntoView()') 178 action_runner.ExecuteJavaScript(element_query + '.scrollIntoView()')
180 action_runner.Wait(1) # wait for page to settle after scrolling 179 action_runner.Wait(1) # wait for page to settle after scrolling
181 action_function(action_runner, element_query) 180 action_function(action_runner, element_query)
(...skipping 26 matching lines...) Expand all
208 self.AddPage(PolymerShadowPage(self)) 207 self.AddPage(PolymerShadowPage(self))
209 208
210 # Polymer Sampler subpages that are interesting to tap / swipe elements on 209 # Polymer Sampler subpages that are interesting to tap / swipe elements on
211 TAPPABLE_PAGES = [ 210 TAPPABLE_PAGES = [
212 'paper-button', 211 'paper-button',
213 'paper-checkbox', 212 'paper-checkbox',
214 'paper-fab', 213 'paper-fab',
215 'paper-icon-button', 214 'paper-icon-button',
216 # crbug.com/394756 215 # crbug.com/394756
217 # 'paper-radio-button', 216 # 'paper-radio-button',
218 'paper-shadow', 217 #FIXME(wiltzius) Disabling x-shadow until this issue is fixed:
218 # https://github.com/Polymer/paper-shadow/issues/12
219 #'paper-shadow',
219 'paper-tabs', 220 'paper-tabs',
220 'paper-toggle-button', 221 'paper-toggle-button',
221 ] 222 ]
222 for p in TAPPABLE_PAGES: 223 for p in TAPPABLE_PAGES:
223 self.AddPage(PolymerSampler(self, p)) 224 self.AddPage(PolymerSampler(self, p))
224 225
225 # Polymer Sampler subpages that are interesting to scroll 226 # Polymer Sampler subpages that are interesting to scroll
226 SCROLLABLE_PAGES = [ 227 SCROLLABLE_PAGES = [
227 # crbug.com/394756 228 'core-scroll-header-panel',
228 # 'core-scroll-header-panel',
229 ] 229 ]
230 for p in SCROLLABLE_PAGES: 230 for p in SCROLLABLE_PAGES:
231 self.AddPage(PolymerSampler(self, p, scrolling_page=True)) 231 self.AddPage(PolymerSampler(self, p, scrolling_page=True))
OLDNEW
« no previous file with comments | « tools/perf/page_sets/data/polymer_004.wpr.sha1 ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698