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

Unified Diff: tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py

Issue 23072018: [telemetry] Move telemetry/core/chrome/ to telemetry/core/backends/chrome/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix perf smoothness_unittest. Created 7 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
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
deleted file mode 100644
index d8a989b10c17e7f33f6a8fef05c7f146492561ed..0000000000000000000000000000000000000000
--- a/tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py
+++ /dev/null
@@ -1,228 +0,0 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""Finds desktop browsers that can be controlled by telemetry."""
-
-import logging
-from operator import attrgetter
-import os
-import platform
-import subprocess
-import sys
-
-from telemetry.core import browser
-from telemetry.core import platform as core_platform
-from telemetry.core import possible_browser
-from telemetry.core import util
-from telemetry.core.chrome import cros_interface
-from telemetry.core.chrome import desktop_browser_backend
-
-ALL_BROWSER_TYPES = ','.join([
- 'exact',
- 'release',
- 'release_x64',
- 'debug',
- 'debug_x64',
- 'canary',
- 'content-shell-debug',
- 'content-shell-release',
- 'system'])
-
-class PossibleDesktopBrowser(possible_browser.PossibleBrowser):
- """A desktop browser that can be controlled."""
-
- def __init__(self, browser_type, finder_options, executable, flash_path,
- is_content_shell, browser_directory, is_local_build=False):
- super(PossibleDesktopBrowser, self).__init__(browser_type, finder_options)
- self._local_executable = executable
- self._flash_path = flash_path
- self._is_content_shell = is_content_shell
- self._browser_directory = browser_directory
- self.is_local_build = is_local_build
-
- def __repr__(self):
- return 'PossibleDesktopBrowser(browser_type=%s)' % self.browser_type
-
- def Create(self):
- backend = desktop_browser_backend.DesktopBrowserBackend(
- self.finder_options, self._local_executable, self._flash_path,
- self._is_content_shell, self._browser_directory,
- output_profile_path=self.finder_options.output_profile_path)
- b = browser.Browser(backend,
- core_platform.CreatePlatformBackendForCurrentOS())
- return b
-
- def SupportsOptions(self, finder_options):
- if (len(finder_options.extensions_to_load) != 0) and self._is_content_shell:
- 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 CanFindAvailableBrowsers():
- return not cros_interface.IsRunningOnCrosDevice()
-
-def FindAllAvailableBrowsers(finder_options):
- """Finds all the desktop browsers available on this machine."""
- browsers = []
-
- if not CanFindAvailableBrowsers():
- return []
-
- has_display = True
- if (sys.platform.startswith('linux') and
- os.getenv('DISPLAY') == None):
- has_display = False
-
- # Look for a browser in the standard chrome build locations.
- if finder_options.chrome_root:
- chrome_root = finder_options.chrome_root
- else:
- chrome_root = util.GetChromiumSrcDir()
-
- if sys.platform == 'darwin':
- chromium_app_name = 'Chromium.app/Contents/MacOS/Chromium'
- content_shell_app_name = 'Content Shell.app/Contents/MacOS/Content Shell'
- mac_dir = 'mac'
- if platform.architecture()[0] == '64bit':
- mac_dir = 'mac_64'
- flash_path = os.path.join(
- chrome_root, 'third_party', 'adobe', 'flash', 'binaries', 'ppapi',
- mac_dir, 'PepperFlashPlayer.plugin')
- elif sys.platform.startswith('linux'):
- chromium_app_name = 'chrome'
- content_shell_app_name = 'content_shell'
- linux_dir = 'linux'
- if platform.architecture()[0] == '64bit':
- linux_dir = 'linux_x64'
- flash_path = os.path.join(
- chrome_root, 'third_party', 'adobe', 'flash', 'binaries', 'ppapi',
- linux_dir, 'libpepflashplayer.so')
- elif sys.platform.startswith('win'):
- chromium_app_name = 'chrome.exe'
- content_shell_app_name = 'content_shell.exe'
- win_dir = 'win'
- if platform.architecture()[0] == '64bit':
- win_dir = 'win_x64'
- flash_path = os.path.join(
- chrome_root, 'third_party', 'adobe', 'flash', 'binaries', 'ppapi',
- win_dir, 'pepflashplayer.dll')
- else:
- raise Exception('Platform not recognized')
-
- def IsExecutable(path):
- return os.path.isfile(path) and os.access(path, os.X_OK)
-
- # Add the explicit browser executable if given.
- if finder_options.browser_executable:
- normalized_executable = os.path.expanduser(
- finder_options.browser_executable)
- if IsExecutable(normalized_executable):
- browser_directory = os.path.dirname(finder_options.browser_executable)
- browsers.append(PossibleDesktopBrowser('exact', finder_options,
- normalized_executable, flash_path,
- False, browser_directory))
- else:
- logging.warning('%s specified by browser_executable does not exist',
- normalized_executable)
-
- def AddIfFound(browser_type, build_dir, type_dir, app_name, content_shell):
- browser_directory = os.path.join(chrome_root, build_dir, type_dir)
- app = os.path.join(browser_directory, app_name)
- if IsExecutable(app):
- browsers.append(PossibleDesktopBrowser(browser_type, finder_options,
- app, flash_path, content_shell,
- browser_directory,
- is_local_build=True))
- return True
- return False
-
- # Add local builds
- for build_dir, build_type in util.GetBuildDirectories():
- AddIfFound(build_type.lower(), build_dir, build_type,
- chromium_app_name, False)
- AddIfFound('content-shell-' + build_type.lower(), build_dir, build_type,
- content_shell_app_name, True)
-
- # Mac-specific options.
- if sys.platform == 'darwin':
- mac_canary_root = '/Applications/Google Chrome Canary.app/'
- mac_canary = mac_canary_root + 'Contents/MacOS/Google Chrome Canary'
- mac_system_root = '/Applications/Google Chrome.app'
- mac_system = mac_system_root + '/Contents/MacOS/Google Chrome'
- if IsExecutable(mac_canary):
- browsers.append(PossibleDesktopBrowser('canary', finder_options,
- mac_canary, None, False,
- mac_canary_root))
-
- if IsExecutable(mac_system):
- browsers.append(PossibleDesktopBrowser('system', finder_options,
- mac_system, None, False,
- mac_system_root))
-
- # Linux specific options.
- if sys.platform.startswith('linux'):
- # Look for a google-chrome instance.
- found = False
- try:
- with open(os.devnull, 'w') as devnull:
- found = subprocess.call(['google-chrome', '--version'],
- stdout=devnull, stderr=devnull) == 0
- except OSError:
- pass
- if found:
- browsers.append(PossibleDesktopBrowser('system', finder_options,
- 'google-chrome', None, False,
- '/opt/google/chrome'))
-
- # Win32-specific options.
- if sys.platform.startswith('win'):
- system_path = os.path.join('Google', 'Chrome', 'Application')
- canary_path = os.path.join('Google', 'Chrome SxS', 'Application')
-
- win_search_paths = [os.getenv('PROGRAMFILES(X86)'),
- os.getenv('PROGRAMFILES'),
- os.getenv('LOCALAPPDATA')]
-
- def AddIfFoundWin(browser_name, app_path):
- browser_directory = os.path.join(path, app_path)
- app = os.path.join(browser_directory, chromium_app_name)
- if IsExecutable(app):
- browsers.append(PossibleDesktopBrowser(browser_name, finder_options,
- app, flash_path, False,
- browser_directory))
- return True
- return False
-
- for path in win_search_paths:
- if not path:
- continue
- if AddIfFoundWin('canary', canary_path):
- break
-
- for path in win_search_paths:
- if not path:
- continue
- if AddIfFoundWin('system', system_path):
- break
-
- if len(browsers) and not has_display:
- logging.warning(
- 'Found (%s), but you do not have a DISPLAY environment set.' %
- ','.join([b.browser_type for b in browsers]))
- return []
-
- return browsers

Powered by Google App Engine
This is Rietveld 408576698