1# Copyright 2018 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
5from telemetry.page import page as page_module
6from telemetry.page import shared_page_state
7from telemetry import story
8from page_sets import trivial_sites
9
10
11class _SitIdlePage(page_module.Page):
12  def __init__(self, page_set, url, name):
13    super(_SitIdlePage, self).__init__(url=url, page_set=page_set, name=name)
14
15  def RunPageInteractions(self, action_runner):
16    action_runner.Wait(30)
17
18
19class DesktopPowerStorySet(story.StorySet):
20  def __init__(self, shared_state = shared_page_state.SharedPageState):
21    super(DesktopPowerStorySet, self).__init__(
22        archive_data_file='data/desktop_power_stories.json',
23        cloud_storage_bucket=story.PARTNER_BUCKET)
24
25    # Trivial static sites that shouldn't use much power.
26    self.AddStory(trivial_sites.TrivialScrollingPage(
27        self, shared_state, wait_in_seconds=30, measure_memory=False))
28    self.AddStory(trivial_sites.TrivialBlinkingCursorPage(
29        self, shared_state, wait_in_seconds=30, measure_memory=False))
30    self.AddStory(trivial_sites.TrivialCanvasPage(
31        self, shared_state, wait_in_seconds=30, measure_memory=False))
32    self.AddStory(trivial_sites.TrivialWebGLPage(
33        self, shared_state, wait_in_seconds=30, measure_memory=False))
34    self.AddStory(trivial_sites.TrivialBlurAnimationPage(
35        self, shared_state, wait_in_seconds=30, measure_memory=False))
36    self.AddStory(trivial_sites.TrivialFullscreenVideoPage(
37        self, shared_state, wait_in_seconds=30, measure_memory=False))
38    self.AddStory(trivial_sites.TrivialGifPage(
39        self, shared_state, wait_in_seconds=30, measure_memory=False))
40    self.AddStory(trivial_sites.TrivialAnimationPage(
41        self, shared_state, wait_in_seconds=30, measure_memory=False))
42
43    # Sites that have used too much power in the past.
44    # http://crbug.com/505990
45    self.AddStory(_SitIdlePage(self, 'http://abcnews.go.com/', 'abcnews'))
46    # http://crbug.com/505601
47    self.AddStory(_SitIdlePage(
48        self, 'http://www.slideshare.net/patrickmeenan', 'slideshare'))
49    # http://crbug.com/505553
50    self.AddStory(_SitIdlePage(self, 'https://instagram.com/cnn/', 'instagram'))
51    # http://crbug.com/505544
52    self.AddStory(_SitIdlePage(self, 'http://www.sina.com.cn', 'sina'))
53    # http://crbug.com/505054
54    self.AddStory(_SitIdlePage(self, 'http://www.uol.com.br', 'uol'))
55    # http://crbug.com/505052
56    self.AddStory(_SitIdlePage(self, 'http://www.indiatimes.com', 'indiatimes'))
57    # http://crbug.com/505002
58    self.AddStory(_SitIdlePage(self, 'http://www.microsoft.com', 'microsoft'))
59