| 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]
|
| + 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
|
|
|
|
|