OLD | NEW |
(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)) |
OLD | NEW |