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

Unified Diff: tools/telemetry/telemetry/core/chrome/desktop_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
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
« no previous file with comments | « tools/telemetry/telemetry/core/chrome/cros_browser_finder.py ('k') | tools/telemetry/telemetry/page/page_runner.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698