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 | 7 |
8 def _GetCurrentLocation(action_runner): | 8 def _GetCurrentLocation(action_runner): |
9 return action_runner.EvaluateJavaScript('document.location.href') | 9 return action_runner.EvaluateJavaScript('document.location.href') |
10 | 10 |
11 | 11 |
12 def _WaitForLocationChange(action_runner, old_href): | 12 def _WaitForLocationChange(action_runner, old_href): |
13 action_runner.WaitForJavaScriptCondition( | 13 action_runner.WaitForJavaScriptCondition( |
14 'document.location.href != "%s"' % old_href) | 14 'document.location.href != "%s"' % old_href) |
15 | 15 |
16 | 16 |
17 class Top25Page(page_module.Page): | 17 class Top25Page(page_module.Page): |
18 | 18 |
19 def __init__(self, url, page_set, name=''): | 19 def __init__(self, url, page_set, name='', credentials=None): |
20 super(Top25Page, self).__init__( | 20 super(Top25Page, self).__init__( |
21 url=url, page_set=page_set, name=name, | 21 url=url, page_set=page_set, name=name, |
22 credentials_path='data/credentials.json') | 22 credentials_path='data/credentials.json') |
23 self.user_agent_type = 'desktop' | 23 self.user_agent_type = 'desktop' |
24 self.archive_data_file = 'data/top_25.json' | 24 self.archive_data_file = 'data/top_25.json' |
25 self.credentials = credentials | |
25 | 26 |
26 def RunSmoothness(self, action_runner): | 27 def RunSmoothness(self, action_runner): |
27 interaction = action_runner.BeginGestureInteraction( | 28 interaction = action_runner.BeginGestureInteraction( |
28 'ScrollAction', is_smooth=True) | 29 'ScrollAction', is_smooth=True) |
29 action_runner.ScrollPage() | 30 action_runner.ScrollPage() |
30 interaction.End() | 31 interaction.End() |
31 | 32 |
32 def RunRepaint(self, action_runner): | 33 def RunRepaint(self, action_runner): |
33 action_runner.RepaintContinuously(seconds=5) | 34 action_runner.RepaintContinuously(seconds=5) |
34 | 35 |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
102 })();''') | 103 })();''') |
103 action_runner.Wait(1) | 104 action_runner.Wait(1) |
104 | 105 |
105 def RunSmoothness(self, action_runner): | 106 def RunSmoothness(self, action_runner): |
106 interaction = action_runner.BeginGestureInteraction( | 107 interaction = action_runner.BeginGestureInteraction( |
107 'ScrollAction', is_smooth=True) | 108 'ScrollAction', is_smooth=True) |
108 action_runner.ScrollElement(selector='#scrolltimedeventswk') | 109 action_runner.ScrollElement(selector='#scrolltimedeventswk') |
109 interaction.End() | 110 interaction.End() |
110 | 111 |
111 | 112 |
112 class GoogleImageSearchPage(Top25Page): | |
113 | |
114 """ Why: tough image case; top google properties """ | |
115 | |
116 def __init__(self, page_set): | |
117 super(GoogleImageSearchPage, self).__init__( | |
118 url='https://www.google.com/search?q=cats&tbm=isch', | |
119 page_set=page_set) | |
120 | |
121 self.credentials = 'google' | |
122 | |
123 | |
124 class GoogleDocPage(Top25Page): | 113 class GoogleDocPage(Top25Page): |
125 | 114 |
126 """ Why: productivity, top google properties; Sample doc in the link """ | 115 """ Why: productivity, top google properties; Sample doc in the link """ |
127 | 116 |
128 def __init__(self, page_set): | 117 def __init__(self, page_set): |
129 super(GoogleDocPage, self).__init__( | 118 super(GoogleDocPage, self).__init__( |
130 # pylint: disable=C0301 | 119 # pylint: disable=C0301 |
131 url='https://docs.google.com/document/d/1X-IKNjtEnx-WW5JIKRLsyhz5sbsat3mfT pAPUSX3_s4/view', | 120 url='https://docs.google.com/document/d/1X-IKNjtEnx-WW5JIKRLsyhz5sbsat3mfT pAPUSX3_s4/view', |
132 page_set=page_set, | 121 page_set=page_set, |
133 name='Docs (1 open document tab)') | 122 name='Docs (1 open document tab)') |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
233 action_runner.NavigateToPage(self) | 222 action_runner.NavigateToPage(self) |
234 action_runner.WaitForElement(text='About') | 223 action_runner.WaitForElement(text='About') |
235 | 224 |
236 def RunSmoothness(self, action_runner): | 225 def RunSmoothness(self, action_runner): |
237 interaction = action_runner.BeginGestureInteraction( | 226 interaction = action_runner.BeginGestureInteraction( |
238 'ScrollAction', is_smooth=True) | 227 'ScrollAction', is_smooth=True) |
239 action_runner.ScrollPage() | 228 action_runner.ScrollPage() |
240 interaction.End() | 229 interaction.End() |
241 | 230 |
242 | 231 |
243 class LinkedinPage(Top25Page): | |
244 | 232 |
245 """ Why: #12 (Alexa global),Public profile """ | |
246 | |
247 def __init__(self, page_set): | |
248 super(LinkedinPage, self).__init__( | |
249 url='http://www.linkedin.com/in/linustorvalds', | |
250 page_set=page_set, | |
251 name='LinkedIn') | |
252 | |
253 | |
254 class WikipediaPage(Top25Page): | |
255 | |
256 """ Why: #6 (Alexa) most visited worldwide,Picked an interesting page """ | |
257 | |
258 def __init__(self, page_set): | |
259 super(WikipediaPage, self).__init__( | |
260 url='http://en.wikipedia.org/wiki/Wikipedia', | |
261 page_set=page_set, | |
262 name='Wikipedia (1 tab)') | |
263 | 233 |
264 | 234 |
265 class TwitterPage(Top25Page): | 235 class TwitterPage(Top25Page): |
266 | 236 |
267 """ Why: #8 (Alexa global),Picked an interesting page """ | 237 """ Why: #8 (Alexa global),Picked an interesting page """ |
268 | 238 |
269 def __init__(self, page_set): | 239 def __init__(self, page_set): |
270 super(TwitterPage, self).__init__( | 240 super(TwitterPage, self).__init__( |
271 url='https://twitter.com/katyperry', | 241 url='https://twitter.com/katyperry', |
272 page_set=page_set, | 242 page_set=page_set, |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
310 page_set=page_set, | 280 page_set=page_set, |
311 name='ESPN') | 281 name='ESPN') |
312 | 282 |
313 def RunSmoothness(self, action_runner): | 283 def RunSmoothness(self, action_runner): |
314 interaction = action_runner.BeginGestureInteraction( | 284 interaction = action_runner.BeginGestureInteraction( |
315 'ScrollAction', is_smooth=True) | 285 'ScrollAction', is_smooth=True) |
316 action_runner.ScrollPage(left_start_ratio=0.1) | 286 action_runner.ScrollPage(left_start_ratio=0.1) |
317 interaction.End() | 287 interaction.End() |
318 | 288 |
319 | 289 |
320 class WeatherDotComPage(Top25Page): | |
321 | |
322 """ Why: #7 (Alexa news); #27 total time spent,Picked interesting page """ | |
323 | |
324 def __init__(self, page_set): | |
325 super(WeatherDotComPage, self).__init__( | |
326 # pylint: disable=C0301 | |
327 url='http://www.weather.com/weather/right-now/Mountain+View+CA+94043', | |
328 page_set=page_set, | |
329 name='Weather.com') | |
330 | |
331 | |
332 class YahooGamesPage(Top25Page): | 290 class YahooGamesPage(Top25Page): |
333 | 291 |
334 """ Why: #1 games according to Alexa (with actual games in it) """ | 292 """ Why: #1 games according to Alexa (with actual games in it) """ |
335 | 293 |
336 def __init__(self, page_set): | 294 def __init__(self, page_set): |
337 super(YahooGamesPage, self).__init__( | 295 super(YahooGamesPage, self).__init__( |
338 url='http://games.yahoo.com', | 296 url='http://games.yahoo.com', |
339 page_set=page_set) | 297 page_set=page_set) |
340 | 298 |
341 def RunNavigateSteps(self, action_runner): | 299 def RunNavigateSteps(self, action_runner): |
342 action_runner.NavigateToPage(self) | 300 action_runner.NavigateToPage(self) |
343 action_runner.Wait(2) | 301 action_runner.Wait(2) |
344 | 302 |
345 | 303 |
346 class Top25PageSet(page_set_module.PageSet): | 304 class Top25PageSet(page_set_module.PageSet): |
347 | 305 |
348 """ Pages hand-picked for 2012 CrOS scrolling tuning efforts. """ | 306 """ Pages hand-picked for 2012 CrOS scrolling tuning efforts. """ |
349 | 307 |
350 def __init__(self): | 308 def __init__(self): |
351 super(Top25PageSet, self).__init__( | 309 super(Top25PageSet, self).__init__( |
352 user_agent_type='desktop', | 310 user_agent_type='desktop', |
353 archive_data_file='data/top_25.json', | 311 archive_data_file='data/top_25.json', |
354 bucket=page_set_module.PARTNER_BUCKET) | 312 bucket=page_set_module.PARTNER_BUCKET) |
355 | 313 |
356 self.AddPage(GoogleWebSearchPage(self)) | 314 self.AddPage(GoogleWebSearchPage(self)) |
357 self.AddPage(GmailPage(self)) | 315 self.AddPage(GmailPage(self)) |
358 self.AddPage(GoogleCalendarPage(self)) | 316 self.AddPage(GoogleCalendarPage(self)) |
359 self.AddPage(GoogleImageSearchPage(self)) | 317 # Why: tough image case; top google properties |
318 self.AddPage( | |
319 Top25Page('https://www.google.com/search?q=cats&tbm=isch', | |
320 page_set=self, credentials='google')) | |
360 self.AddPage(GoogleDocPage(self)) | 321 self.AddPage(GoogleDocPage(self)) |
361 self.AddPage(GooglePlusPage(self)) | 322 self.AddPage(GooglePlusPage(self)) |
362 self.AddPage(YoutubePage(self)) | 323 self.AddPage(YoutubePage(self)) |
363 self.AddPage(BlogspotPage(self)) | 324 self.AddPage(BlogspotPage(self)) |
364 self.AddPage(WordpressPage(self)) | 325 self.AddPage(WordpressPage(self)) |
365 self.AddPage(FacebookPage(self)) | 326 self.AddPage(FacebookPage(self)) |
366 self.AddPage(LinkedinPage(self)) | 327 # Why: #12 (Alexa global), Public profile. |
367 self.AddPage(WikipediaPage(self)) | 328 self.AddPage( |
329 Top25Page( | |
330 'http://www.linkedin.com/in/linustorvalds', self, 'LinkedIn')) | |
ernstm
2014/10/27 21:30:04
to be consistent with the other pages: page_set=se
| |
331 # Why: #6 (Alexa) most visited worldwide,Picked an interesting page | |
332 self.AddPage( | |
333 Top25Page( | |
334 'http://en.wikipedia.org/wiki/Wikipedia', page_set=self, | |
335 name='Wikipedia (1 tab)')) | |
368 self.AddPage(TwitterPage(self)) | 336 self.AddPage(TwitterPage(self)) |
369 self.AddPage(PinterestPage(self)) | 337 self.AddPage(PinterestPage(self)) |
370 self.AddPage(ESPNPage(self)) | 338 self.AddPage(ESPNPage(self)) |
371 self.AddPage(WeatherDotComPage(self)) | 339 # Why: #7 (Alexa news); #27 total time spent, picked interesting page. |
340 self.AddPage(Top25Page( | |
341 url='http://www.weather.com/weather/right-now/Mountain+View+CA+94043', | |
342 page_set=self, | |
343 name='Weather.com')) | |
372 self.AddPage(YahooGamesPage(self)) | 344 self.AddPage(YahooGamesPage(self)) |
373 | 345 |
374 other_urls = [ | 346 other_urls = [ |
375 # Why: #1 news worldwide (Alexa global) | 347 # Why: #1 news worldwide (Alexa global) |
376 'http://news.yahoo.com', | 348 'http://news.yahoo.com', |
377 # Why: #2 news worldwide | 349 # Why: #2 news worldwide |
378 'http://www.cnn.com', | 350 'http://www.cnn.com', |
379 # Why: #1 world commerce website by visits; #3 commerce in the US by time | 351 # Why: #1 world commerce website by visits; #3 commerce in the US by time |
380 # spent | 352 # spent |
381 'http://www.amazon.com', | 353 'http://www.amazon.com', |
382 # Why: #1 commerce website by time spent by users in US | 354 # Why: #1 commerce website by time spent by users in US |
383 'http://www.ebay.com', | 355 'http://www.ebay.com', |
384 # Why: #1 Alexa recreation | 356 # Why: #1 Alexa recreation |
385 'http://booking.com', | 357 'http://booking.com', |
386 # Why: #1 Alexa reference | 358 # Why: #1 Alexa reference |
387 'http://answers.yahoo.com', | 359 'http://answers.yahoo.com', |
388 # Why: #1 Alexa sports | 360 # Why: #1 Alexa sports |
389 'http://sports.yahoo.com/', | 361 'http://sports.yahoo.com/', |
390 # Why: top tech blog | 362 # Why: top tech blog |
391 'http://techcrunch.com' | 363 'http://techcrunch.com' |
392 ] | 364 ] |
393 | 365 |
394 for url in other_urls: | 366 for url in other_urls: |
395 self.AddPage(Top25Page(url, self)) | 367 self.AddPage(Top25Page(url, self)) |
OLD | NEW |