Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / tools / perf / page_sets / tough_animation_cases.py
blobca87da5ce698dfdfb444404184d5e3968954e1c4
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.
4 from telemetry.page import page as page_module
5 from telemetry import story
8 class ToughAnimationCasesPage(page_module.Page):
10 def __init__(self, url, page_set, need_measurement_ready):
11 super(ToughAnimationCasesPage, self).__init__(url=url, page_set=page_set)
12 self.archive_data_file = 'data/tough_animation_cases.json'
13 self._need_measurement_ready = need_measurement_ready
15 def RunNavigateSteps(self, action_runner):
16 super(ToughAnimationCasesPage, self).RunNavigateSteps(action_runner)
17 if self._need_measurement_ready:
18 action_runner.WaitForJavaScriptCondition('window.measurementReady')
20 def RunPageInteractions(self, action_runner):
21 with action_runner.CreateInteraction('ToughAnimation'):
22 action_runner.Wait(10)
24 class ToughAnimationCasesPageSet(story.StorySet):
26 """
27 Description: A collection of animation performance tests
28 """
30 def __init__(self):
31 super(ToughAnimationCasesPageSet, self).__init__(
32 archive_data_file='data/tough_animation_cases.json',
33 cloud_storage_bucket=story.PARTNER_BUCKET)
35 urls_list_one = [
36 # Why: Tests the balls animation implemented with SVG animations.
37 'file://tough_animation_cases/balls_svg_animations.html',
38 # Why: Tests the balls animation implemented with Javascript and canvas.
39 'file://tough_animation_cases/balls_javascript_canvas.html',
40 # Why: Tests the balls animation implemented with Javascript and CSS.
41 'file://tough_animation_cases/balls_javascript_css.html',
42 # Why: Tests the balls animation implemented with CSS keyframe animations.
43 'file://tough_animation_cases/balls_css_keyframe_animations.html',
44 # Why: Tests the balls animation implemented with transforms and CSS
45 # keyframe animations to be run on the compositor thread.
46 # pylint: disable=C0301
47 'file://tough_animation_cases/balls_css_keyframe_animations_composited_transform.html',
48 # Why: Tests the balls animation implemented with CSS transitions on 2
49 # properties.
50 'file://tough_animation_cases/balls_css_transition_2_properties.html',
51 # Why: Tests the balls animation implemented with CSS transitions on 40
52 # properties.
53 'file://tough_animation_cases/balls_css_transition_40_properties.html',
54 # Why: Tests the balls animation implemented with CSS transitions on all
55 # animatable properties.
56 'file://tough_animation_cases/balls_css_transition_all_properties.html',
57 # pylint: disable=C0301
58 'file://tough_animation_cases/overlay_background_color_css_transitions.html',
60 # Why: Tests many CSS Transitions all starting at the same time triggered
61 # by inserting new elements.
62 # pylint: disable=C0301
63 'file://tough_animation_cases/css_transitions_simultaneous_by_inserting_new_element.html?N=0316',
64 # Why: Tests many CSS Transitions all starting at the same time triggered
65 # by inserting style sheets.
66 # pylint: disable=C0301
67 'file://tough_animation_cases/css_transitions_simultaneous_by_inserting_style_element.html?N=0316',
68 # Why: Tests many CSS Transitions all starting at the same time triggered
69 # by updating class.
70 # pylint: disable=C0301
71 'file://tough_animation_cases/css_transitions_simultaneous_by_updating_class.html?N=0316',
72 # Why: Tests many CSS Transitions all starting at the same time triggered
73 # by updating inline style.
74 # pylint: disable=C0301
75 'file://tough_animation_cases/css_transitions_simultaneous_by_updating_inline_style.html?N=0316',
76 # Why: Tests many CSS Transitions chained together using events at
77 # different times triggered by inserting new elements.
78 # pylint: disable=C0301
79 'file://tough_animation_cases/css_transitions_staggered_chaining_by_inserting_new_element.html?N=0316',
80 # Why: Tests many CSS Transitions chained together using events at
81 # different times triggered by inserting style sheets.
82 # pylint: disable=C0301
83 'file://tough_animation_cases/css_transitions_staggered_chaining_by_inserting_style_element.html?N=0316',
84 # Why: Tests many CSS Transitions chained together using events at
85 # different times triggered by updating class.
86 # pylint: disable=C0301
87 'file://tough_animation_cases/css_transitions_staggered_chaining_by_updating_class.html?N=0316',
88 # Why: Tests many CSS Transitions chained together using events at
89 # different times triggered by updating inline style.
90 # pylint: disable=C0301
91 'file://tough_animation_cases/css_transitions_staggered_chaining_by_updating_inline_style.html?N=0316',
92 # Why: Tests many CSS Transitions starting at different times triggered by
93 # inserting new elements.
94 # pylint: disable=C0301
95 'file://tough_animation_cases/css_transitions_staggered_triggering_by_inserting_new_element.html?N=0316',
96 # Why: Tests many CSS Transitions starting at different times triggered by
97 # inserting style sheets.
98 # pylint: disable=C0301
99 'file://tough_animation_cases/css_transitions_staggered_triggering_by_inserting_style_element.html?N=0316',
100 # Why: Tests many CSS Transitions starting at different times triggered by
101 # updating class.
102 # pylint: disable=C0301
103 'file://tough_animation_cases/css_transitions_staggered_triggering_by_updating_class.html?N=0316',
104 # Why: Tests many CSS Transitions starting at different times triggered by
105 # updating inline style.
106 # pylint: disable=C0301
107 'file://tough_animation_cases/css_transitions_staggered_triggering_by_updating_inline_style.html?N=0316',
109 # Why: Tests many CSS Animations all starting at the same time with 500
110 # keyframes each.
111 'file://tough_animation_cases/css_animations_many_keyframes.html?N=0316',
112 # Why: Tests many CSS Animations all starting at the same time triggered
113 # by inserting new elements.
114 # pylint: disable=C0301
115 'file://tough_animation_cases/css_animations_simultaneous_by_inserting_new_element.html?N=0316',
116 # Why: Tests many CSS Animations all starting at the same time triggered
117 # by inserting style sheets.
118 # pylint: disable=C0301
119 'file://tough_animation_cases/css_animations_simultaneous_by_inserting_style_element.html?N=0316',
120 # Why: Tests many CSS Animations all starting at the same time triggered
121 # by updating class.
122 # pylint: disable=C0301
123 'file://tough_animation_cases/css_animations_simultaneous_by_updating_class.html?N=0316',
124 # Why: Tests many CSS Animations all starting at the same time triggered
125 # by updating inline style.
126 # pylint: disable=C0301
127 'file://tough_animation_cases/css_animations_simultaneous_by_updating_inline_style.html?N=0316',
128 # Why: Tests many CSS Animations chained together using events at
129 # different times triggered by inserting new elements.
130 # pylint: disable=C0301
131 'file://tough_animation_cases/css_animations_staggered_chaining_by_inserting_new_element.html?N=0316',
132 # Why: Tests many CSS Animations chained together using events at
133 # different times triggered by inserting style sheets.
134 # pylint: disable=C0301
135 'file://tough_animation_cases/css_animations_staggered_chaining_by_inserting_style_element.html?N=0316',
136 # Why: Tests many CSS Animations chained together using events at
137 # different times triggered by updating class.
138 # pylint: disable=C0301
139 'file://tough_animation_cases/css_animations_staggered_chaining_by_updating_class.html?N=0316',
140 # Why: Tests many CSS Animations chained together using events at
141 # different times triggered by updating inline style.
142 # pylint: disable=C0301
143 'file://tough_animation_cases/css_animations_staggered_chaining_by_updating_inline_style.html?N=0316',
144 # Why: Tests many CSS Animations starting at different times triggered by
145 # inserting new elements.
146 # pylint: disable=C0301
147 'file://tough_animation_cases/css_animations_staggered_triggering_by_inserting_new_element.html?N=0316',
148 # Why: Tests many CSS Animations all starting at the same time with
149 # staggered animation offsets.
150 # pylint: disable=C0301
151 'file://tough_animation_cases/css_animations_staggered_infinite_iterations.html?N=0316',
152 # Why: Tests many CSS Animations starting at different times triggered by
153 # inserting style sheets.
154 # pylint: disable=C0301
155 'file://tough_animation_cases/css_animations_staggered_triggering_by_inserting_style_element.html?N=0316',
156 # Why: Tests many CSS Animations starting at different times triggered by
157 # updating class.
158 # pylint: disable=C0301
159 'file://tough_animation_cases/css_animations_staggered_triggering_by_updating_class.html?N=0316',
160 # Why: Tests many CSS Animations starting at different times triggered by
161 # updating inline style.
162 # pylint: disable=C0301
163 'file://tough_animation_cases/css_animations_staggered_triggering_by_updating_inline_style.html?N=0316',
165 # Why: Tests many Web Animations all starting at the same time with 500
166 # keyframes each.
167 'file://tough_animation_cases/web_animations_many_keyframes.html?N=0316',
168 # Why: Tests many paused Web Animations having their currentTimes updated
169 # in every requestAnimationFrame.
170 # pylint: disable=C0301
171 'file://tough_animation_cases/web_animations_set_current_time_in_raf.html?N=0316',
172 # Why: Tests many Web Animations all starting at the same time.
173 'file://tough_animation_cases/web_animations_simultaneous.html?N=0316',
174 # Why: Tests many Web Animations all starting at different times then
175 # chained together using events.
176 # pylint: disable=C0301
177 'file://tough_animation_cases/web_animations_staggered_chaining.html?N=0316',
178 # Why: Tests many Web Animations all starting at different times with
179 # infinite iterations.
180 # pylint: disable=C0301
181 'file://tough_animation_cases/web_animations_staggered_infinite_iterations.html?N=0316',
182 # Why: Tests many Web Animations all starting at different times.
183 # pylint: disable=C0301
184 'file://tough_animation_cases/web_animations_staggered_triggering.html?N=0316',
186 # Why: Tests color animations using CSS Animations.
187 # pylint: disable=C0301
188 'file://tough_animation_cases/css_value_type_color.html?api=css_animations&N=0316',
189 # Why: Tests filter animations using CSS Animations.
190 # pylint: disable=C0301
191 'file://tough_animation_cases/css_value_type_filter.html?api=css_animations&N=0316',
192 # Why: Tests length 3D animations using CSS Animations.
193 # pylint: disable=C0301
194 'file://tough_animation_cases/css_value_type_length_3d.html?api=css_animations&N=0316',
195 # Why: Tests complex length animations using CSS Animations.
196 # pylint: disable=C0301
197 'file://tough_animation_cases/css_value_type_length_complex.html?api=css_animations&N=0316',
198 # Why: Tests simple length animations using CSS Animations.
199 # pylint: disable=C0301
200 'file://tough_animation_cases/css_value_type_length_simple.html?api=css_animations&N=0316',
201 # Why: Tests shadow animations using CSS Animations.
202 # pylint: disable=C0301
203 'file://tough_animation_cases/css_value_type_shadow.html?api=css_animations&N=0316',
204 # Why: Tests complex transform animations using CSS Animations.
205 # pylint: disable=C0301
206 'file://tough_animation_cases/css_value_type_transform_complex.html?api=css_animations&N=0316',
207 # Why: Tests simple transform animations using CSS Animations.
208 # pylint: disable=C0301
209 'file://tough_animation_cases/css_value_type_transform_simple.html?api=css_animations&N=0316',
211 # Why: Tests color animations using Web Animations.
212 # pylint: disable=C0301
213 'file://tough_animation_cases/css_value_type_color.html?api=web_animations&N=0316',
214 # Why: Tests length 3D animations using Web Animations.
215 # pylint: disable=C0301
216 'file://tough_animation_cases/css_value_type_length_3d.html?api=web_animations&N=0316',
217 # Why: Tests complex length animations using Web Animations.
218 # pylint: disable=C0301
219 'file://tough_animation_cases/css_value_type_length_complex.html?api=web_animations&N=0316',
220 # Why: Tests simple length animations using Web Animations.
221 # pylint: disable=C0301
222 'file://tough_animation_cases/css_value_type_length_simple.html?api=web_animations&N=0316',
223 # Why: Tests shadow animations using Web Animations.
224 # pylint: disable=C0301
225 'file://tough_animation_cases/css_value_type_shadow.html?api=web_animations&N=0316',
226 # Why: Tests complex transform animations using Web Animations.
227 # pylint: disable=C0301
228 'file://tough_animation_cases/css_value_type_transform_complex.html?api=web_animations&N=0316',
229 # Why: Tests simple transform animations using Web Animations.
230 # pylint: disable=C0301
231 'file://tough_animation_cases/css_value_type_transform_simple.html?api=web_animations&N=0316',
234 for url in urls_list_one:
235 self.AddStory(ToughAnimationCasesPage(url, self,
236 need_measurement_ready=True))
238 urls_list_two = [
239 # Why: Tests various keyframed animations.
240 'file://tough_animation_cases/keyframed_animations.html',
241 # Why: Tests various transitions.
242 'file://tough_animation_cases/transform_transitions.html',
243 # Why: JS execution blocks CSS transition unless initial transform is set.
244 'file://tough_animation_cases/transform_transition_js_block.html',
245 # Why: Tests animating elements having mix-blend-mode: difference (a
246 # separable popular blend mode).
247 'file://tough_animation_cases/mix_blend_mode_animation_difference.html',
248 # Why: Tests animating elements having mix-blend-mode: hue (a
249 # non-separable blend mode).
250 'file://tough_animation_cases/mix_blend_mode_animation_hue.html',
251 # Why: Tests animating elements having mix-blend-mode: screen.
252 'file://tough_animation_cases/mix_blend_mode_animation_screen.html',
253 # Why: Tests software-animating a deep DOM subtree having one blending
254 # leaf.
255 'file://tough_animation_cases/mix_blend_mode_propagating_isolation.html',
257 # Disabled: crbug.com/350692
258 # Why: Login page is slow because of ineffecient transform operations.
259 # 'http://ie.microsoft.com/testdrive/performance/robohornetpro/',
262 for url in urls_list_two:
263 self.AddStory(ToughAnimationCasesPage(url, self,
264 need_measurement_ready=False))