| # Copyright 2018 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| import logging |
| import time |
| |
| from autotest_lib.client.common_lib.cros import chrome |
| from autotest_lib.client.cros.input_playback import keyboard |
| from autotest_lib.client.cros.power import power_test |
| |
| class power_WebGL(power_test.power_Test): |
| """class for power_WebGL test. |
| """ |
| version = 1 |
| |
| # Google Earth permalink for Googleplex |
| URL = 'https://earth.app.goo.gl/Tj5Wj' |
| |
| def run_once(self, url=URL, duration=180): |
| """run_once method. |
| |
| @param url: url of webgl heavy page. |
| @param duration: time in seconds to display url and measure power. |
| """ |
| with chrome.Chrome(init_network_controller=True) as self.cr: |
| tab = self.cr.browser.tabs.New() |
| tab.Activate() |
| |
| # Just measure power in full-screen. |
| fullscreen = tab.EvaluateJavaScript('document.webkitIsFullScreen') |
| if not fullscreen: |
| with keyboard.Keyboard() as keys: |
| keys.press_key('f4') |
| |
| logging.info('Navigating to url: %s', url) |
| tab.Navigate(url) |
| tab.WaitForDocumentReadyStateToBeComplete() |
| |
| self.start_measurements() |
| time.sleep(duration) |