Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 """Finds android browsers that can be controlled by telemetry.""" | 4 """Finds android browsers that can be controlled by telemetry.""" |
| 5 | 5 |
| 6 import os | 6 import os |
| 7 import logging as real_logging | 7 import logging as real_logging |
| 8 import re | 8 import re |
| 9 import subprocess | 9 import subprocess |
| 10 import sys | |
| 10 | 11 |
| 11 from telemetry import adb_commands | 12 from telemetry import adb_commands |
| 12 from telemetry import android_browser_backend | 13 from telemetry import android_browser_backend |
| 13 from telemetry import android_platform | 14 from telemetry import android_platform |
| 14 from telemetry import browser | 15 from telemetry import browser |
| 15 from telemetry import possible_browser | 16 from telemetry import possible_browser |
| 16 | 17 |
| 18 sys.path.append( | |
|
nduca
2012/12/04 09:20:17
please call through adb_commands by wrapping. That
| |
| 19 os.path.abspath( | |
| 20 os.path.join(os.path.dirname(__file__), | |
| 21 '../../../build/android/pylib'))) | |
| 22 import perf_tests_helper # pylint: disable=F0401 | |
| 23 import thermal_throttle # pylint: disable=F0401 | |
| 24 | |
| 25 | |
| 17 ALL_BROWSER_TYPES = ','.join([ | 26 ALL_BROWSER_TYPES = ','.join([ |
| 18 'android-content-shell', | 27 'android-content-shell', |
| 19 'android-chrome', | 28 'android-chrome', |
| 20 'android-jb-system-chrome', | 29 'android-jb-system-chrome', |
| 21 ]) | 30 ]) |
| 22 | 31 |
| 23 CHROME_PACKAGE = 'com.google.android.apps.chrome' | 32 CHROME_PACKAGE = 'com.google.android.apps.chrome' |
| 24 CHROME_ACTIVITY = '.Main' | 33 CHROME_ACTIVITY = '.Main' |
| 25 CHROME_COMMAND_LINE = '/data/local/chrome-command-line' | 34 CHROME_COMMAND_LINE = '/data/local/chrome-command-line' |
| 26 CHROME_DEVTOOLS_REMOTE_PORT = 'localabstract:chrome_devtools_remote' | 35 CHROME_DEVTOOLS_REMOTE_PORT = 'localabstract:chrome_devtools_remote' |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 51 return 'PossibleAndroidBrowser(browser_type=%s)' % self.browser_type | 60 return 'PossibleAndroidBrowser(browser_type=%s)' % self.browser_type |
| 52 | 61 |
| 53 def Create(self): | 62 def Create(self): |
| 54 backend = android_browser_backend.AndroidBrowserBackend( | 63 backend = android_browser_backend.AndroidBrowserBackend( |
| 55 self._options, *self._args) | 64 self._options, *self._args) |
| 56 platform = android_platform.AndroidPlatform( | 65 platform = android_platform.AndroidPlatform( |
| 57 self._args[0].Adb(), self._args[1], | 66 self._args[0].Adb(), self._args[1], |
| 58 self._args[1] + self._args[4]) | 67 self._args[1] + self._args[4]) |
| 59 return browser.Browser(backend, platform) | 68 return browser.Browser(backend, platform) |
| 60 | 69 |
| 70 def CreatePlatformHarness(self): | |
| 71 class AndroidPlatformHarness(object): | |
| 72 def __init__(self, adb): | |
| 73 self._perf_tests_setup = perf_tests_helper.PerfTestSetup(adb) | |
| 74 self._thermal_throttle = thermal_throttle.ThermalThrottle(adb) | |
| 75 | |
| 76 def __enter__(self): | |
| 77 if self._thermal_throttle.IsThrottled(): | |
| 78 real_logging.warn('Device is being thermally throttled.') | |
| 79 self._perf_tests_setup.SetUp() | |
| 80 return self | |
| 81 | |
| 82 def __exit__(self, *args): | |
| 83 if self._thermal_throttle.HasBeenThrottled(): | |
| 84 real_logging.warn('Device was thermally throttled during tests.') | |
| 85 self._perf_tests_setup.TearDown() | |
| 86 | |
| 87 return AndroidPlatformHarness(self._args[0].Adb()) | |
| 88 | |
| 89 | |
| 61 def FindAllAvailableBrowsers(options, logging=real_logging): | 90 def FindAllAvailableBrowsers(options, logging=real_logging): |
| 62 """Finds all the desktop browsers available on this machine.""" | 91 """Finds all the desktop browsers available on this machine.""" |
| 63 if not adb_commands.IsAndroidSupported(): | 92 if not adb_commands.IsAndroidSupported(): |
| 64 return [] | 93 return [] |
| 65 | 94 |
| 66 # See if adb even works. | 95 # See if adb even works. |
| 67 try: | 96 try: |
| 68 with open(os.devnull, 'w') as devnull: | 97 with open(os.devnull, 'w') as devnull: |
| 69 proc = subprocess.Popen(['adb', 'devices'], | 98 proc = subprocess.Popen(['adb', 'devices'], |
| 70 stdout=subprocess.PIPE, | 99 stdout=subprocess.PIPE, |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 140 # but make it accessible to the device. | 169 # but make it accessible to the device. |
| 141 if len(possible_browsers) and not adb_commands.HasForwarder(): | 170 if len(possible_browsers) and not adb_commands.HasForwarder(): |
| 142 logging.warn('telemetry detected an android device. However,') | 171 logging.warn('telemetry detected an android device. However,') |
| 143 logging.warn('Chrome\'s port-forwarder app is not available.') | 172 logging.warn('Chrome\'s port-forwarder app is not available.') |
| 144 logging.warn('To build:') | 173 logging.warn('To build:') |
| 145 logging.warn(' make -j16 host_forwarder device_forwarder') | 174 logging.warn(' make -j16 host_forwarder device_forwarder') |
| 146 logging.warn('') | 175 logging.warn('') |
| 147 logging.warn('') | 176 logging.warn('') |
| 148 return [] | 177 return [] |
| 149 return possible_browsers | 178 return possible_browsers |
| OLD | NEW |