Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Unified Diff: tools/telemetry/telemetry/core/backends/chrome/ios_browser_finder.py

Issue 480613002: [Telemetry] Speed up unittests on mac by about 10s. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/telemetry/telemetry/core/backends/chrome/ios_browser_finder.py
diff --git a/tools/telemetry/telemetry/core/backends/chrome/ios_browser_finder.py b/tools/telemetry/telemetry/core/backends/chrome/ios_browser_finder.py
index de9ac425d86eb08de88dd4948b29a08ab9697153..906976d4d6b656bdfa72aabe662f5ade7ccedc55 100644
--- a/tools/telemetry/telemetry/core/backends/chrome/ios_browser_finder.py
+++ b/tools/telemetry/telemetry/core/backends/chrome/ios_browser_finder.py
@@ -11,12 +11,20 @@ import re
import subprocess
import urllib2
+from telemetry import decorators
from telemetry.core import platform
from telemetry.core import possible_browser
from telemetry.core import util
from telemetry.core.backends.chrome import inspector_backend
+# Key matches output from ios-webkit-debug-proxy and the value is a readable
+# description of the browser.
+IOS_BROWSERS = {'CriOS': 'ios-chrome', 'Version': 'ios-safari'}
+DEVICE_LIST_URL = 'http://127.0.0.1:9221/json'
+IOS_WEBKIT_DEBUG_PROXY = 'ios_webkit_debug_proxy'
+
+
class PossibleIOSBrowser(possible_browser.PossibleBrowser):
"""A running iOS browser instance."""
@@ -31,55 +39,45 @@ class PossibleIOSBrowser(possible_browser.PossibleBrowser):
def SupportOptions(self, finder_options):
raise NotImplementedError()
-# Key matches output from ios-webkit-debug-proxy and the value is a readable
-# description of the browser.
-IOS_BROWSERS = {'CriOS': 'ios-chrome', 'Version': 'ios-safari'}
-
-DEVICE_LIST_URL = 'http://127.0.0.1:9221/json'
-
-IOS_WEBKIT_DEBUG_PROXY = 'ios_webkit_debug_proxy'
-
def SelectDefaultBrowser(_):
return None # TODO(baxley): Implement me.
def CanFindAvailableBrowsers():
- return False # TODO(baxley): Implement me.
+ # TODO(baxley): Add support for all platforms possible. Probably Linux,
+ # probably not Windows.
+ return platform.GetHostPlatform().GetOSName() == 'mac'
def FindAllBrowserTypes():
return IOS_BROWSERS.values()
+@decorators.Cache
+def _IsIosDeviceAttached():
+ devices = subprocess.check_output('system_profiler SPUSBDataType', shell=True)
+ for line in devices.split('\n'):
+ if line and re.match('\s*(iPod|iPhone|iPad):', line):
+ return True
+ return False
+
+
def FindAllAvailableBrowsers(finder_options):
"""Find all running iOS browsers on connected devices."""
- ios_device_attached = False
- host = platform.GetHostPlatform()
- if host.GetOSName() == 'mac':
- devices = subprocess.check_output(
- 'system_profiler SPUSBDataType', shell=True)
- ios_devices = 'iPod|iPhone|iPad'
- for line in devices.split('\n'):
- if line:
- m = re.match('\s*(%s):' % ios_devices, line)
- if m:
- ios_device_attached = True
- break
- else:
- # TODO(baxley): Add support for all platforms possible. Probably Linux,
- # probably not Windows.
+ if not CanFindAvailableBrowsers():
return []
- if ios_device_attached:
- # TODO(baxley) Use idevice to wake up device or log debug statement.
- if not host.IsApplicationRunning(IOS_WEBKIT_DEBUG_PROXY):
- host.LaunchApplication(IOS_WEBKIT_DEBUG_PROXY)
- if not host.IsApplicationRunning(IOS_WEBKIT_DEBUG_PROXY):
- return []
- else:
+ if not _IsIosDeviceAttached():
return []
+ # TODO(baxley) Use idevice to wake up device or log debug statement.
+ host = platform.GetHostPlatform()
+ if not host.IsApplicationRunning(IOS_WEBKIT_DEBUG_PROXY):
+ host.LaunchApplication(IOS_WEBKIT_DEBUG_PROXY)
+ if not host.IsApplicationRunning(IOS_WEBKIT_DEBUG_PROXY):
+ return []
+
try:
# TODO(baxley): Refactor this into a backend file.
with contextlib.closing(
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698