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

Unified Diff: tools/telemetry/telemetry/core/browser_finder.py

Issue 19972003: [Telemetry] Default to most recent local build if --browser is omitted. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 5 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 | tools/telemetry/telemetry/core/browser_options.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/telemetry/telemetry/core/browser_finder.py
diff --git a/tools/telemetry/telemetry/core/browser_finder.py b/tools/telemetry/telemetry/core/browser_finder.py
index b7ae6579e0672285332af78554f88e5e397dbc43..781c95df7fc321af89519dc8a9a77cb14610c89e 100644
--- a/tools/telemetry/telemetry/core/browser_finder.py
+++ b/tools/telemetry/telemetry/core/browser_finder.py
@@ -9,10 +9,14 @@ from telemetry.core.chrome import android_browser_finder
from telemetry.core.chrome import cros_browser_finder
from telemetry.core.chrome import desktop_browser_finder
-ALL_BROWSER_TYPES = (
- desktop_browser_finder.ALL_BROWSER_TYPES + ',' +
- android_browser_finder.ALL_BROWSER_TYPES + ',' +
- cros_browser_finder.ALL_BROWSER_TYPES)
+BROWSER_FINDERS = [
+ desktop_browser_finder,
+ android_browser_finder,
+ cros_browser_finder
+ ]
+
+ALL_BROWSER_TYPES = ','.join([bf.ALL_BROWSER_TYPES for bf in BROWSER_FINDERS])
+
class BrowserTypeRequiredException(Exception):
pass
@@ -43,25 +47,23 @@ def FindBrowser(options):
raise BrowserFinderException(
'cros_remote requires browser_type=cros-chrome or cros-chrome-guest.')
- if options.browser_type == None:
- raise BrowserTypeRequiredException('browser_type must be specified')
-
browsers = []
- browsers.extend(desktop_browser_finder.FindAllAvailableBrowsers(options))
- browsers.extend(android_browser_finder.FindAllAvailableBrowsers(options))
- browsers.extend(cros_browser_finder.FindAllAvailableBrowsers(options))
+ default_browser = None
+ for finder in BROWSER_FINDERS:
+ curr_browsers = finder.FindAllAvailableBrowsers(options)
+ if not default_browser:
+ default_browser = finder.SelectDefaultBrowser(curr_browsers)
+ browsers.extend(curr_browsers)
- if options.browser_type == 'any':
- types = ALL_BROWSER_TYPES.split(',')
- def compare_browsers_on_type_priority(x, y):
- x_idx = types.index(x.browser_type)
- y_idx = types.index(y.browser_type)
- return x_idx - y_idx
- browsers.sort(compare_browsers_on_type_priority)
- if len(browsers) >= 1:
- return browsers[0]
- else:
- return None
+ if options.browser_type == None:
+ if default_browser:
+ logging.warning('--browser omitted. Using most recent local build: %s' %
+ default_browser.browser_type)
+ options.browser_type = default_browser.browser_type
+ return default_browser
+ raise BrowserTypeRequiredException(
+ '--browser must be specified. Available browsers:\n%s' %
+ '\n'.join(sorted(set([b.browser_type for b in browsers]))))
matching_browsers = [b for b in browsers
if b.browser_type == options.browser_type and b.SupportsOptions(options)]
@@ -81,9 +83,8 @@ def GetAllAvailableBrowserTypes(options):
improperly set or if an error occurs when finding a browser.
"""
browsers = []
- browsers.extend(desktop_browser_finder.FindAllAvailableBrowsers(options))
- browsers.extend(android_browser_finder.FindAllAvailableBrowsers(options))
- browsers.extend(cros_browser_finder.FindAllAvailableBrowsers(options))
+ for finder in BROWSER_FINDERS:
+ browsers.extend(finder.FindAllAvailableBrowsers(options))
type_list = set([browser.browser_type for browser in browsers])
type_list = list(type_list)
« no previous file with comments | « no previous file | tools/telemetry/telemetry/core/browser_options.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698