Index: tools/telemetry/telemetry/core/backends/chrome/android_browser_finder.py |
diff --git a/tools/telemetry/telemetry/core/backends/chrome/android_browser_finder.py b/tools/telemetry/telemetry/core/backends/chrome/android_browser_finder.py |
index 7389452c45067170352f815e3e430fdf6ac806a4..8c4adb133cd970ccce741fd1ee3a55029c66c0aa 100644 |
--- a/tools/telemetry/telemetry/core/backends/chrome/android_browser_finder.py |
+++ b/tools/telemetry/telemetry/core/backends/chrome/android_browser_finder.py |
@@ -63,11 +63,6 @@ CHROME_PACKAGE_NAMES = { |
ALL_BROWSER_TYPES = CHROME_PACKAGE_NAMES.keys() |
-# adb shell pm list packages |
-# adb |
-# intents to run (pass -D url for the rest) |
-# com.android.chrome/.Main |
-# com.google.android.apps.chrome/.Main |
class PossibleAndroidBrowser(possible_browser.PossibleBrowser): |
"""A launchable android browser instance.""" |
@@ -137,6 +132,7 @@ class PossibleAndroidBrowser(possible_browser.PossibleBrowser): |
return os.path.getmtime(self._local_apk) |
return -1 |
+ |
def SelectDefaultBrowser(possible_browsers): |
local_builds_by_date = sorted(possible_browsers, |
key=lambda b: b.last_modification_time()) |
@@ -146,41 +142,35 @@ def SelectDefaultBrowser(possible_browsers): |
return newest_browser |
return None |
-adb_works = None |
+ |
+@decorators.Cache |
def CanFindAvailableBrowsers(logging=real_logging): |
if not adb_commands.IsAndroidSupported(): |
logging.info('Android build commands unavailable on this machine. Have ' |
'you installed Android build dependencies?') |
return False |
- global adb_works |
- |
- if adb_works == None: |
- try: |
- with open(os.devnull, 'w') as devnull: |
- proc = subprocess.Popen(['adb', 'devices'], |
- stdout=subprocess.PIPE, |
- stderr=subprocess.PIPE, |
- stdin=devnull) |
- stdout, _ = proc.communicate() |
- if re.search(re.escape('????????????\tno permissions'), stdout) != None: |
- logging.warn( |
- ('adb devices reported a permissions error. Consider ' |
- 'restarting adb as root:')) |
- logging.warn(' adb kill-server') |
- logging.warn(' sudo `which adb` devices\n\n') |
- adb_works = True |
- except OSError: |
- platform_tools_path = os.path.join(util.GetChromiumSrcDir(), |
- 'third_party', 'android_tools', 'sdk', 'platform-tools') |
- if (sys.platform.startswith('linux') and |
- os.path.exists(os.path.join(platform_tools_path, 'adb'))): |
- os.environ['PATH'] = os.pathsep.join([platform_tools_path, |
- os.environ['PATH']]) |
- adb_works = True |
- else: |
- adb_works = False |
- return adb_works |
+ try: |
+ with open(os.devnull, 'w') as devnull: |
+ proc = subprocess.Popen( |
+ ['adb', 'devices'], |
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=devnull) |
+ stdout, _ = proc.communicate() |
+ if re.search(re.escape('????????????\tno permissions'), stdout) != None: |
+ logging.warn('adb devices reported a permissions error. Consider ' |
+ 'restarting adb as root:') |
+ logging.warn(' adb kill-server') |
+ logging.warn(' sudo `which adb` devices\n\n') |
+ return True |
+ except OSError: |
+ platform_tools_path = os.path.join(util.GetChromiumSrcDir(), |
+ 'third_party', 'android_tools', 'sdk', 'platform-tools') |
+ if (sys.platform.startswith('linux') and |
+ os.path.exists(os.path.join(platform_tools_path, 'adb'))): |
+ os.environ['PATH'] = os.pathsep.join([platform_tools_path, |
+ os.environ['PATH']]) |
+ return True |
+ return False |
def FindAllAvailableBrowsers(finder_options, logging=real_logging): |