Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(882)

Side by Side Diff: tools/perf/page_sets/key_idle_power_cases.py

Issue 1097463004: Add key_idle_power_cases for ensuring idle activity on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: lint Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2015 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 page_sets import android_screen_restoration_shared_state
5
6 from telemetry.page import page as page_module
7 from telemetry.page import page_set as page_set_module
8
9
10 class KeyIdlePowerPage(page_module.Page):
11
12 def __init__(self, url, page_set, turn_screen_off):
13 super(KeyIdlePowerPage, self).__init__(
14 url=url,
15 page_set=page_set,
16 shared_page_state_class=(android_screen_restoration_shared_state
17 .AndroidScreenRestorationSharedState))
18 self.user_agent_type = 'mobile'
19 self._turn_screen_off = turn_screen_off
20
21 def RunNavigateSteps(self, action_runner):
22 super(KeyIdlePowerPage, self).RunNavigateSteps(action_runner)
23 action_runner.Wait(2)
24 if self._turn_screen_off:
25 # TODO(jdduke): Remove this API violation after the shared page state is
26 # exposed here, crbug.com/470147.
27 # pylint: disable=protected-access
28 action_runner._tab.browser.platform.android_action_runner.TurnScreenOff()
29 # We're not interested in tracking activity that occurs immediately after
30 # the screen is turned off. Several seconds should be enough time for the
31 # browser to "settle down" into an idle state.
32 action_runner.Wait(2)
33
34 def RunPageInteractions(self, action_runner):
35 # The page interaction is simply waiting in an idle state.
36 action_runner.Wait(20)
37
38
39 class KeyIdlePowerCasesPageSet(page_set_module.PageSet):
40
41 """ Key idle power cases """
42
43 def __init__(self):
44 super(KeyIdlePowerCasesPageSet, self).__init__(user_agent_type='mobile')
45
46 foreground_urls_list = [
47 # Why: Ensure minimal activity for static, empty pages in the foreground.
48 'file://key_idle_power_cases/blank.html',
49 ]
50
51 for url in foreground_urls_list:
52 self.AddUserStory(KeyIdlePowerPage(url, self, False))
53
54 background_urls_list = [
55 # Why: Ensure animated GIFs aren't processed when Chrome is backgrounded.
56 'file://key_idle_power_cases/animated-gif.html',
57 # Why: Ensure CSS animations aren't processed when Chrome is backgrounded.
58 'file://key_idle_power_cases/css-animation.html',
59 # Why: Ensure rAF is suppressed when Chrome is backgrounded.
60 'file://key_idle_power_cases/request-animation-frame.html',
61 # Why: Ensure setTimeout is throttled when Chrome is backgrounded.
62 'file://key_idle_power_cases/set-timeout.html',
63 ]
64
65 for url in background_urls_list:
66 self.AddUserStory(KeyIdlePowerPage(url, self, True))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698