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
.page
import shared_page_state
6 from telemetry
import story
8 from page_sets
import repaint_helpers
9 from page_sets
import top_pages
12 class TopRepaintPage(page_module
.Page
):
14 def __init__(self
, url
, page_set
, mode
, width
, height
, name
='',
16 super(TopRepaintPage
, self
).__init
__(
17 url
=url
, page_set
=page_set
, name
=name
,
18 credentials_path
='data/credentials.json',
19 shared_page_state_class
=shared_page_state
.SharedDesktopPageState
)
20 self
.archive_data_file
= 'data/top_25_repaint.json'
21 self
.credentials
= credentials
26 def RunPageInteractions(self
, action_runner
):
27 repaint_helpers
.Repaint(
28 action_runner
, mode
=self
._mode
, width
=self
._width
, height
=self
._height
)
31 def _CreatePageClassWithRepaintInteractions(page_cls
, mode
, width
, height
):
32 class DerivedRepaintPage(page_cls
): # pylint: disable=W0232
34 def RunPageInteractions(self
, action_runner
):
35 repaint_helpers
.Repaint(
36 action_runner
, mode
=mode
, width
=width
, height
=height
)
38 return DerivedRepaintPage
41 class Top25RepaintPageSet(story
.StorySet
):
43 """ Pages hand-picked for 2012 CrOS scrolling tuning efforts. """
45 def __init__(self
, mode
='viewport', width
=None, height
=None):
46 super(Top25RepaintPageSet
, self
).__init
__(
47 archive_data_file
='data/top_25_repaint.json',
48 cloud_storage_bucket
=story
.PARTNER_BUCKET
)
51 top_pages
.GoogleWebSearchPage
,
52 top_pages
.GoogleImageSearchPage
,
54 top_pages
.GoogleCalendarPage
,
55 top_pages
.GoogleDocPage
,
56 top_pages
.GooglePlusPage
,
57 top_pages
.YoutubePage
,
58 top_pages
.BlogspotPage
,
59 top_pages
.WordpressPage
,
60 top_pages
.FacebookPage
,
61 top_pages
.LinkedinPage
,
62 top_pages
.WikipediaPage
,
63 top_pages
.TwitterPage
,
64 top_pages
.PinterestPage
,
66 top_pages
.WeatherPage
,
67 top_pages
.YahooGamesPage
,
70 for cl
in top_page_classes
:
71 self
.AddStory(_CreatePageClassWithRepaintInteractions(
72 cl
, mode
=mode
, width
=width
, height
=height
)
73 (self
, shared_page_state
.SharedDesktopPageState
))
76 # Why: #1 news worldwide (Alexa global)
77 'http://news.yahoo.com',
78 # Why: #2 news worldwide
80 # Why: #1 world commerce website by visits; #3 commerce in the US by
82 'http://www.amazon.com',
83 # Why: #1 commerce website by time spent by users in US
84 'http://www.ebay.com',
85 # Why: #1 Alexa recreation
87 # Why: #1 Alexa reference
88 'http://answers.yahoo.com',
89 # Why: #1 Alexa sports
90 'http://sports.yahoo.com/',
92 'http://techcrunch.com'
95 for url
in other_urls
:
97 TopRepaintPage(url
, self
, mode
=mode
, height
=height
, width
=width
))