普通文本  |  41行  |  1.34 KB

# 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)