diff options
author | grt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-25 22:54:51 +0000 |
---|---|---|
committer | grt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-25 22:54:51 +0000 |
commit | 6e692dc77bfeb771647a21199b6e6f54de0a102b (patch) | |
tree | 3057fb3ea553de594b544749626d100686618f9d /chrome/installer/launcher_support | |
parent | fc59ef6729a752fb59675e157ba46e462a9288fd (diff) | |
download | chromium_src-6e692dc77bfeb771647a21199b6e6f54de0a102b.zip chromium_src-6e692dc77bfeb771647a21199b6e6f54de0a102b.tar.gz chromium_src-6e692dc77bfeb771647a21199b6e6f54de0a102b.tar.bz2 |
Reland: Remove some dead app host code.
app_host.exe was removed in r220555. This change removes some dead code
that was left behind. Specifically:
- chrome_launcher_support no longer exposes any methods related to the
AppHost.
- Chrome's uninstall prompt no longer has a special case to handle
suppressing the "delete your profile" checkbox.
- Chrome and its installer no longer have a dependency on
launcher_support.
- The installer no longer supports installing items from the webstore.
- GetUntrustedDataValue no longer has consumers and is gone.
BUG=297647
R=benwells@chromium.org,huangs@chromium.org,gab@chromium.org
TBR=grt@chromium.org
NOTRY=true
Review URL: https://codereview.chromium.org/419913005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285715 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/installer/launcher_support')
-rw-r--r-- | chrome/installer/launcher_support/chrome_launcher_support.cc | 146 | ||||
-rw-r--r-- | chrome/installer/launcher_support/chrome_launcher_support.h | 54 |
2 files changed, 16 insertions, 184 deletions
diff --git a/chrome/installer/launcher_support/chrome_launcher_support.cc b/chrome/installer/launcher_support/chrome_launcher_support.cc index 8e5b6a5..9e9ba92 100644 --- a/chrome/installer/launcher_support/chrome_launcher_support.cc +++ b/chrome/installer/launcher_support/chrome_launcher_support.cc @@ -5,20 +5,12 @@ #include "chrome/installer/launcher_support/chrome_launcher_support.h" #include <windows.h> -#include <tchar.h> -#include "base/command_line.h" #include "base/file_util.h" #include "base/files/file_path.h" -#include "base/logging.h" -#include "base/process/launch.h" #include "base/strings/string16.h" #include "base/win/registry.h" -#ifndef OFFICIAL_BUILD -#include "base/path_service.h" -#endif - namespace chrome_launcher_support { namespace { @@ -26,8 +18,6 @@ namespace { // TODO(huangs) Refactor the constants: http://crbug.com/148538 const wchar_t kGoogleRegClientStateKey[] = L"Software\\Google\\Update\\ClientState"; -const wchar_t kGoogleRegClientsKey[] = L"Software\\Google\\Update\\Clients"; -const wchar_t kRegVersionField[] = L"pv"; // Copied from chrome_appid.cc. const wchar_t kBinariesAppGuid[] = L"{4DC8B4CA-1BDA-483e-B5FA-D3C12E15B62D}"; @@ -35,14 +25,8 @@ const wchar_t kBinariesAppGuid[] = L"{4DC8B4CA-1BDA-483e-B5FA-D3C12E15B62D}"; // Copied from google_chrome_distribution.cc. const wchar_t kBrowserAppGuid[] = L"{8A69D345-D564-463c-AFF1-A69D9E530F96}"; -// Copied frome google_chrome_sxs_distribution.cc. -const wchar_t kSxSBrowserAppGuid[] = L"{4ea16ac7-fd5a-47c3-875b-dbf4a2008c20}"; - // Copied from util_constants.cc. -const wchar_t kChromeAppHostExe[] = L"app_host.exe"; -const char kChromeAppLauncher[] = "app-launcher"; const wchar_t kChromeExe[] = L"chrome.exe"; -const wchar_t kUninstallArgumentsField[] = L"UninstallArguments"; const wchar_t kUninstallStringField[] = L"UninstallString"; // Reads a string value from the specified product's "ClientState" registry key. @@ -66,33 +50,6 @@ bool GetClientStateValue(InstallationLevel level, return false; } -// Determines whether the specified product has a key in "Clients". This -// indicates whether the product is installed at the given level. -bool IsProductInstalled(InstallationLevel level, const wchar_t* app_guid) { - HKEY root_key = (level == USER_LEVEL_INSTALLATION) ? - HKEY_CURRENT_USER : HKEY_LOCAL_MACHINE; - base::string16 subkey(kGoogleRegClientsKey); - subkey.append(1, L'\\').append(app_guid); - base::win::RegKey reg_key; - // Google Update always uses 32bit hive. - return reg_key.Open(root_key, subkey.c_str(), - KEY_QUERY_VALUE | KEY_WOW64_32KEY) == ERROR_SUCCESS && - reg_key.HasValue(kRegVersionField); -} - -bool IsAppLauncherEnabledAtLevel(InstallationLevel level) { - base::string16 uninstall_arguments; - if (GetClientStateValue(level, - kAppLauncherGuid, - kUninstallArgumentsField, - &uninstall_arguments)) { - return CommandLine::FromString(L"dummy.exe " + uninstall_arguments) - .HasSwitch(kChromeAppLauncher) && - !GetAppHostPathForInstallationLevel(level).empty(); - } - return false; -} - // Reads the path to setup.exe from the value "UninstallString" within the // specified product's "ClientState" registry key. Returns an empty FilePath if // an error occurs or the product is not installed at the specified level. @@ -107,9 +64,22 @@ base::FilePath GetSetupExeFromRegistry(InstallationLevel level, return base::FilePath(); } -// Returns the path to an installed |exe_file| (e.g. chrome.exe, app_host.exe) -// at the specified level, given |setup_exe_path| from Omaha client state. -// Returns empty base::FilePath if none found, or if |setup_exe_path| is empty. +// Returns the path to an existing setup.exe at the specified level, if it can +// be found via Omaha client state. +base::FilePath GetSetupExeForInstallationLevel(InstallationLevel level) { + // Look in the registry for Chrome Binaries first. + base::FilePath setup_exe_path( + GetSetupExeFromRegistry(level, kBinariesAppGuid)); + // If the above fails, look in the registry for Chrome next. + if (setup_exe_path.empty()) + setup_exe_path = GetSetupExeFromRegistry(level, kBrowserAppGuid); + // If we fail again, then setup_exe_path would be empty. + return setup_exe_path; +} + +// Returns the path to an installed |exe_file| (e.g. chrome.exe) at the +// specified level, given |setup_exe_path| from Omaha client state. Returns +// empty base::FilePath if none found, or if |setup_exe_path| is empty. base::FilePath FindExeRelativeToSetupExe(const base::FilePath setup_exe_path, const wchar_t* exe_file) { if (!setup_exe_path.empty()) { @@ -131,52 +101,11 @@ base::FilePath FindExeRelativeToSetupExe(const base::FilePath setup_exe_path, } // namespace -const wchar_t kAppLauncherGuid[] = L"{FDA71E6F-AC4C-4a00-8B70-9958A68906BF}"; - -void UninstallLegacyAppLauncher(InstallationLevel level) { - base::FilePath setup_exe(GetSetupExeFromRegistry(level, kAppLauncherGuid)); - if (setup_exe.empty()) - return; - base::string16 uninstall_arguments; - if (GetClientStateValue(level, - kAppLauncherGuid, - kUninstallArgumentsField, - &uninstall_arguments)) { - CommandLine uninstall_cmd = CommandLine::FromString( - L"\"" + setup_exe.value() + L"\" " + uninstall_arguments); - - VLOG(1) << "Uninstalling legacy app launcher with command line: " - << uninstall_cmd.GetCommandLineString(); - base::LaunchProcess(uninstall_cmd, base::LaunchOptions(), NULL); - } -} - -base::FilePath GetSetupExeForInstallationLevel(InstallationLevel level) { - // Look in the registry for Chrome Binaries first. - base::FilePath setup_exe_path( - GetSetupExeFromRegistry(level, kBinariesAppGuid)); - // If the above fails, look in the registry for Chrome next. - if (setup_exe_path.empty()) - setup_exe_path = GetSetupExeFromRegistry(level, kBrowserAppGuid); - // If we fail again, then setup_exe_path would be empty. - return setup_exe_path; -} - base::FilePath GetChromePathForInstallationLevel(InstallationLevel level) { return FindExeRelativeToSetupExe( GetSetupExeForInstallationLevel(level), kChromeExe); } -base::FilePath GetAppHostPathForInstallationLevel(InstallationLevel level) { - return FindExeRelativeToSetupExe( - GetSetupExeFromRegistry(level, kAppLauncherGuid), kChromeAppHostExe); -} - -base::FilePath GetChromeSxSPathForInstallationLevel(InstallationLevel level) { - return FindExeRelativeToSetupExe( - GetSetupExeFromRegistry(level, kSxSBrowserAppGuid), kChromeExe); -} - base::FilePath GetAnyChromePath() { base::FilePath chrome_path; if (chrome_path.empty()) @@ -186,47 +115,4 @@ base::FilePath GetAnyChromePath() { return chrome_path; } -base::FilePath GetAnyAppHostPath() { - base::FilePath app_host_path; - if (app_host_path.empty()) { - app_host_path = GetAppHostPathForInstallationLevel( - SYSTEM_LEVEL_INSTALLATION); - } - if (app_host_path.empty()) - app_host_path = GetAppHostPathForInstallationLevel(USER_LEVEL_INSTALLATION); - return app_host_path; -} - -base::FilePath GetAnyChromeSxSPath() { - base::FilePath path = - GetChromeSxSPathForInstallationLevel(USER_LEVEL_INSTALLATION); - if (path.empty()) - path = GetChromeSxSPathForInstallationLevel(SYSTEM_LEVEL_INSTALLATION); - return path; -} - -bool IsAppHostPresent() { - base::FilePath app_host_exe = GetAnyAppHostPath(); - return !app_host_exe.empty(); -} - -InstallationState GetAppLauncherInstallationState() { - if (IsAppLauncherEnabledAtLevel(SYSTEM_LEVEL_INSTALLATION)) - return INSTALLED_AT_SYSTEM_LEVEL; - - if (IsAppLauncherEnabledAtLevel(USER_LEVEL_INSTALLATION)) - return INSTALLED_AT_USER_LEVEL; - - return NOT_INSTALLED; -} - -bool IsAppLauncherPresent() { - return GetAppLauncherInstallationState() != NOT_INSTALLED; -} - -bool IsChromeBrowserPresent() { - return IsProductInstalled(USER_LEVEL_INSTALLATION, kBrowserAppGuid) || - IsProductInstalled(SYSTEM_LEVEL_INSTALLATION, kBrowserAppGuid); -} - } // namespace chrome_launcher_support diff --git a/chrome/installer/launcher_support/chrome_launcher_support.h b/chrome/installer/launcher_support/chrome_launcher_support.h index f50ff28..9cf1479 100644 --- a/chrome/installer/launcher_support/chrome_launcher_support.h +++ b/chrome/installer/launcher_support/chrome_launcher_support.h @@ -16,72 +16,18 @@ enum InstallationLevel { SYSTEM_LEVEL_INSTALLATION, }; -enum InstallationState { - NOT_INSTALLED, - INSTALLED_AT_USER_LEVEL, - INSTALLED_AT_SYSTEM_LEVEL, -}; - -// The app GUID for Chrome App Launcher. -extern const wchar_t kAppLauncherGuid[]; - -// Returns the path to an existing setup.exe at the specified level, if it can -// be found via Omaha client state. -base::FilePath GetSetupExeForInstallationLevel(InstallationLevel level); - // Returns the path to an installed chrome.exe at the specified level, if it can // be found via Omaha client state. Prefers the installer from a multi-install, // but may also return that of a single-install of Chrome if no multi-install // exists. base::FilePath GetChromePathForInstallationLevel(InstallationLevel level); -// Returns the path to an installed app_host.exe at the specified level, if -// it can be found via Omaha client state. -base::FilePath GetAppHostPathForInstallationLevel(InstallationLevel level); - -// Returns the path to an installed SxS chrome.exe at the specified level, if -// it can be found via Omaha client state. -base::FilePath GetChromeSxSPathForInstallationLevel(InstallationLevel level); - // Returns the path to an installed chrome.exe, or an empty path. Prefers a // system-level installation to a user-level installation. Uses Omaha client // state to identify a Chrome installation location. // The file path returned (if any) is guaranteed to exist. base::FilePath GetAnyChromePath(); -// Returns the path to an installed app_host.exe, or an empty path. Prefers a -// system-level installation to a user-level installation. Uses Omaha client -// state to identify a App Host installation location. -// The file path returned (if any) is guaranteed to exist. -base::FilePath GetAnyAppHostPath(); - -// Returns the path to an installed SxS chrome.exe, or an empty path. Prefers a -// user-level installation to a system-level installation. Uses Omaha client -// state to identify a Chrome Canary installation location. -// The file path returned (if any) is guaranteed to exist. -base::FilePath GetAnyChromeSxSPath(); - -// Uninstalls the legacy app launcher by launching setup.exe with the uninstall -// arguments from the App Launcher ClientState registry key. The uninstall will -// run asynchronously. -void UninstallLegacyAppLauncher(InstallationLevel level); - -// Returns true if App Host is installed (system-level or user-level), -// or in the same directory as the current executable. -bool IsAppHostPresent(); - -// Returns the app launcher installation state. If the launcher is installed -// at both system level and user level, system level is returned. -InstallationState GetAppLauncherInstallationState(); - -// Returns true if App Launcher is installed (system-level or user-level). -bool IsAppLauncherPresent(); - -// Returns true if the Chrome browser is installed (system-level or user-level). -// If this is running in an official build, it will check if a non-canary build -// if installed. If it is not an official build, it will always return true. -bool IsChromeBrowserPresent(); - } // namespace chrome_launcher_support #endif // CHROME_INSTALLER_LAUNCHER_SUPPORT_CHROME_LAUNCHER_SUPPORT_H_ |