Chromium Code Reviews| Index: tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py |
| diff --git a/tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py b/tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py |
| index 6fd7c0b50fb8c41cb3174af9495df5efb0e1b021..1da104085e281c376ebc938fe9db3fb26de66321 100644 |
| --- a/tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py |
| +++ b/tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py |
| @@ -4,6 +4,7 @@ |
| """Finds desktop browsers that can be controlled by telemetry.""" |
| import logging |
| +from operator import attrgetter |
| import os |
| import platform |
| import subprocess |
| @@ -33,11 +34,12 @@ class PossibleDesktopBrowser(possible_browser.PossibleBrowser): |
| """A desktop browser that can be controlled.""" |
| def __init__(self, browser_type, options, executable, flash_path, |
| - is_content_shell): |
| + is_content_shell, is_local_build=False): |
| super(PossibleDesktopBrowser, self).__init__(browser_type, options) |
| self._local_executable = executable |
| self._flash_path = flash_path |
| self._is_content_shell = is_content_shell |
| + self.is_local_build = is_local_build |
| def __repr__(self): |
| return 'PossibleDesktopBrowser(browser_type=%s)' % self.browser_type |
| @@ -93,6 +95,21 @@ class PossibleDesktopBrowser(possible_browser.PossibleBrowser): |
| return False |
| return True |
| + @property |
| + def last_modification_time(self): |
| + if os.path.exists(self._local_executable): |
| + return os.path.getmtime(self._local_executable) |
| + return -1 |
| + |
| +def SelectDefaultBrowser(possible_browsers): |
| + local_builds_by_date = [ |
| + b for b in sorted(possible_browsers, |
| + key=attrgetter('last_modification_time')) |
| + if b.is_local_build] |
|
achuithb
2013/07/24 01:20:07
Why not default to the system browser if there are
|
| + if local_builds_by_date: |
| + return local_builds_by_date[-1] |
| + return None |
| + |
| def FindAllAvailableBrowsers(options): |
| """Finds all the desktop browsers available on this machine.""" |
| browsers = [] |
| @@ -163,7 +180,8 @@ def FindAllAvailableBrowsers(options): |
| app = os.path.join(chrome_root, build_dir, type_dir, app_name) |
| if os.path.exists(app): |
| browsers.append(PossibleDesktopBrowser(browser_type, options, |
| - app, flash_path, content_shell)) |
| + app, flash_path, content_shell, |
| + is_local_build=True)) |
| return True |
| return False |