Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / tools / perf / page_sets / tough_scrolling_cases.py
blob0f5e91de3d149f8f202694cfc744248d38661e3d
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.internal.actions import page_action
5 from telemetry.page import page as page_module
6 from telemetry import story
9 class ToughFastScrollingCasesPage(page_module.Page):
11 def __init__(self, url, name, speed_in_pixels_per_second, page_set,
12 synthetic_gesture_source):
13 super(ToughFastScrollingCasesPage, self).__init__(
14 url=url,
15 page_set=page_set,
16 name=name)
17 self.speed_in_pixels_per_second = speed_in_pixels_per_second
18 self.synthetic_gesture_source = synthetic_gesture_source
20 def RunPageInteractions(self, action_runner):
21 with action_runner.CreateGestureInteraction('ScrollAction'):
22 action_runner.ScrollPage(
23 direction='down',
24 speed_in_pixels_per_second=self.speed_in_pixels_per_second,
25 synthetic_gesture_source=self.synthetic_gesture_source)
27 class ToughScrollingCasesPageSet(story.StorySet):
29 """
30 Description: A collection of difficult scrolling tests
31 """
33 def __init__(self):
34 super(ToughScrollingCasesPageSet, self).__init__()
36 fast_scrolling_page_name_list = [
37 'text',
38 'text_hover',
39 'text_constant_full_page_raster',
40 'canvas'
43 fast_scrolling_speed_list = [
44 5000, 10000, 15000, 20000, 30000, 40000, 50000, 60000, 75000, 90000
47 for name in fast_scrolling_page_name_list:
48 for speed in fast_scrolling_speed_list:
49 synthetic_gesture_source = page_action.GESTURE_SOURCE_DEFAULT
50 if "hover" in name:
51 synthetic_gesture_source = page_action.GESTURE_SOURCE_MOUSE
52 self.AddStory(ToughFastScrollingCasesPage(
53 'file://tough_scrolling_cases/' + name + '.html',
54 name + '_' + str(speed).zfill(5) + '_pixels_per_second',
55 speed,
56 self,
57 synthetic_gesture_source))