OLD | NEW |
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 from page_sets import key_mobile_sites_pages | 7 from page_sets import key_mobile_sites_pages |
8 | 8 |
9 | 9 |
10 def _IssueMarkerAndScroll(action_runner): | 10 def _IssueMarkerAndScroll(action_runner): |
11 interaction = action_runner.BeginGestureInteraction( | 11 interaction = action_runner.BeginGestureInteraction( |
12 'ScrollAction', is_smooth=True) | 12 'ScrollAction', is_smooth=True) |
13 action_runner.ScrollPage() | 13 action_runner.ScrollPage() |
14 interaction.End() | 14 interaction.End() |
15 | 15 |
16 | 16 |
17 def _CreatePageClassWithSmoothInteractions(page_cls): | 17 def _CreatePageClassWithSmoothInteractions(page_cls): |
18 class DerivedSmoothPage(page_cls): # pylint: disable=W0232 | 18 class DerivedSmoothPage(page_cls): # pylint: disable=W0232 |
19 | 19 |
20 def RunSmoothness(self, action_runner): | 20 def RunPageInteractions(self, action_runner): |
21 _IssueMarkerAndScroll(action_runner) | 21 _IssueMarkerAndScroll(action_runner) |
22 return DerivedSmoothPage | 22 return DerivedSmoothPage |
23 | 23 |
24 | 24 |
25 class KeyMobileSitesSmoothPage(page_module.Page): | 25 class KeyMobileSitesSmoothPage(page_module.Page): |
26 | 26 |
27 def __init__(self, url, page_set, name='', labels=None): | 27 def __init__(self, url, page_set, name='', labels=None): |
28 super(KeyMobileSitesSmoothPage, self).__init__( | 28 super(KeyMobileSitesSmoothPage, self).__init__( |
29 url=url, page_set=page_set, name=name, | 29 url=url, page_set=page_set, name=name, |
30 credentials_path='data/credentials.json', labels=labels) | 30 credentials_path='data/credentials.json', labels=labels) |
31 self.user_agent_type = 'mobile' | 31 self.user_agent_type = 'mobile' |
32 self.archive_data_file = 'data/key_mobile_sites.json' | 32 self.archive_data_file = 'data/key_mobile_sites.json' |
33 | 33 |
34 def RunSmoothness(self, action_runner): | 34 def RunPageInteractions(self, action_runner): |
35 _IssueMarkerAndScroll(action_runner) | 35 _IssueMarkerAndScroll(action_runner) |
36 | 36 |
37 | 37 |
38 class GmailSmoothPage(key_mobile_sites_pages.GmailPage): | 38 class GmailSmoothPage(key_mobile_sites_pages.GmailPage): |
39 | 39 |
40 def RunSmoothness(self, action_runner): | 40 def RunPageInteractions(self, action_runner): |
41 interaction = action_runner.BeginGestureInteraction( | 41 interaction = action_runner.BeginGestureInteraction( |
42 'ScrollAction', is_smooth=True) | 42 'ScrollAction', is_smooth=True) |
43 action_runner.ScrollElement(element_function=( | 43 action_runner.ScrollElement(element_function=( |
44 'document.getElementById("views").childNodes[1].firstChild')) | 44 'document.getElementById("views").childNodes[1].firstChild')) |
45 interaction.End() | 45 interaction.End() |
46 interaction = action_runner.BeginGestureInteraction( | 46 interaction = action_runner.BeginGestureInteraction( |
47 'ScrollAction', is_smooth=True) | 47 'ScrollAction', is_smooth=True) |
48 action_runner.ScrollElement(element_function=( | 48 action_runner.ScrollElement(element_function=( |
49 'document.getElementById("views").childNodes[1].firstChild')) | 49 'document.getElementById("views").childNodes[1].firstChild')) |
50 interaction.End() | 50 interaction.End() |
51 | 51 |
52 | 52 |
53 class GroupClonedSmoothPage(key_mobile_sites_pages.GroupClonedPage): | 53 class GroupClonedSmoothPage(key_mobile_sites_pages.GroupClonedPage): |
54 | 54 |
55 def RunSmoothness(self, action_runner): | 55 def RunPageInteractions(self, action_runner): |
56 interaction = action_runner.BeginGestureInteraction( | 56 interaction = action_runner.BeginGestureInteraction( |
57 'ScrollAction', is_smooth=True) | 57 'ScrollAction', is_smooth=True) |
58 action_runner.ScrollPage( | 58 action_runner.ScrollPage( |
59 distance_expr=''' | 59 distance_expr=''' |
60 Math.max(0, 1250 + document.getElementById("element-19") | 60 Math.max(0, 1250 + document.getElementById("element-19") |
61 .contentDocument | 61 .contentDocument |
62 .getElementById("element-22") | 62 .getElementById("element-22") |
63 .getBoundingClientRect().top);''', | 63 .getBoundingClientRect().top);''', |
64 use_touch=True) | 64 use_touch=True) |
65 interaction.End() | 65 interaction.End() |
66 | 66 |
67 | 67 |
68 class GroupClonedListImagesPage( | 68 class GroupClonedListImagesPage( |
69 key_mobile_sites_pages.GroupClonedListImagesPage): | 69 key_mobile_sites_pages.GroupClonedListImagesPage): |
70 | 70 |
71 def RunSmoothness(self, action_runner): | 71 def RunPageInteractions(self, action_runner): |
72 interaction = action_runner.BeginGestureInteraction( | 72 interaction = action_runner.BeginGestureInteraction( |
73 'ScrollAction', is_smooth=True) | 73 'ScrollAction', is_smooth=True) |
74 action_runner.ScrollPage( | 74 action_runner.ScrollPage( |
75 distance_expr=''' | 75 distance_expr=''' |
76 Math.max(0, 1250 + | 76 Math.max(0, 1250 + |
77 document.getElementById("element-5") | 77 document.getElementById("element-5") |
78 .getBoundingClientRect().top);''', | 78 .getBoundingClientRect().top);''', |
79 use_touch=True) | 79 use_touch=True) |
80 interaction.End() | 80 interaction.End() |
81 | 81 |
82 class GoogleNewsMobile2SmoothPage( | 82 class GoogleNewsMobile2SmoothPage( |
83 key_mobile_sites_pages.GoogleNewsMobile2Page): | 83 key_mobile_sites_pages.GoogleNewsMobile2Page): |
84 | 84 |
85 def RunSmoothness(self, action_runner): | 85 def RunPageInteractions(self, action_runner): |
86 interaction = action_runner.BeginGestureInteraction( | 86 interaction = action_runner.BeginGestureInteraction( |
87 'ScrollAction', is_smooth=True) | 87 'ScrollAction', is_smooth=True) |
88 action_runner.ScrollElement( | 88 action_runner.ScrollElement( |
89 element_function='document.getElementById(":5")', | 89 element_function='document.getElementById(":5")', |
90 distance_expr=''' | 90 distance_expr=''' |
91 Math.max(0, 2500 + | 91 Math.max(0, 2500 + |
92 document.getElementById(':h').getBoundingClientRect().top)''', | 92 document.getElementById(':h').getBoundingClientRect().top)''', |
93 use_touch=True) | 93 use_touch=True) |
94 interaction.End() | 94 interaction.End() |
95 | 95 |
96 | 96 |
97 class AmazonNicolasCageSmoothPage( | 97 class AmazonNicolasCageSmoothPage( |
98 key_mobile_sites_pages.AmazonNicolasCagePage): | 98 key_mobile_sites_pages.AmazonNicolasCagePage): |
99 | 99 |
100 def RunSmoothness(self, action_runner): | 100 def RunPageInteractions(self, action_runner): |
101 interaction = action_runner.BeginGestureInteraction( | 101 interaction = action_runner.BeginGestureInteraction( |
102 'ScrollAction', is_smooth=True) | 102 'ScrollAction', is_smooth=True) |
103 action_runner.ScrollElement( | 103 action_runner.ScrollElement( |
104 selector='#search', | 104 selector='#search', |
105 distance_expr='document.body.scrollHeight - window.innerHeight') | 105 distance_expr='document.body.scrollHeight - window.innerHeight') |
106 interaction.End() | 106 interaction.End() |
107 | 107 |
108 | 108 |
109 class KeyMobileSitesSmoothPageSet(page_set_module.PageSet): | 109 class KeyMobileSitesSmoothPageSet(page_set_module.PageSet): |
110 | 110 |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 ('http://www.baidu.com/s?wd=barack+obama&rsv_bp=0&rsv_spt=3&rsv_sug3=9&' | 252 ('http://www.baidu.com/s?wd=barack+obama&rsv_bp=0&rsv_spt=3&rsv_sug3=9&' |
253 'rsv_sug=0&rsv_sug4=3824&rsv_sug1=3&inputT=4920'), | 253 'rsv_sug=0&rsv_sug4=3824&rsv_sug1=3&inputT=4920'), |
254 # Why: Top search engine | 254 # Why: Top search engine |
255 'http://www.bing.com/search?q=sloths', | 255 'http://www.bing.com/search?q=sloths', |
256 # Why: Good example of poor initial scrolling | 256 # Why: Good example of poor initial scrolling |
257 'http://ftw.usatoday.com/2014/05/spelling-bee-rules-shenanigans' | 257 'http://ftw.usatoday.com/2014/05/spelling-bee-rules-shenanigans' |
258 ] | 258 ] |
259 | 259 |
260 for url in urls_list: | 260 for url in urls_list: |
261 self.AddUserStory(KeyMobileSitesSmoothPage(url, self)) | 261 self.AddUserStory(KeyMobileSitesSmoothPage(url, self)) |
OLD | NEW |