diff options
| -rw-r--r-- | chrome/browser/browser_main_win.cc | 6 | ||||
| -rw-r--r-- | chrome/installer/util/google_chrome_distribution.cc | 5 | ||||
| -rw-r--r-- | chrome/installer/util/install_util.cc | 17 | ||||
| -rw-r--r-- | chrome/installer/util/install_util.h | 9 |
4 files changed, 19 insertions, 18 deletions
diff --git a/chrome/browser/browser_main_win.cc b/chrome/browser/browser_main_win.cc index 6616894..cf5e783 100644 --- a/chrome/browser/browser_main_win.cc +++ b/chrome/browser/browser_main_win.cc @@ -194,9 +194,9 @@ bool CheckMachineLevelInstall() { const string16 caption = l10n_util::GetStringUTF16(IDS_PRODUCT_NAME); const UINT flags = MB_OK | MB_ICONERROR | MB_TOPMOST; ui::MessageBox(NULL, text, caption, flags); - FilePath uninstall_path(InstallUtil::GetChromeUninstallCmd(false, dist)); - CommandLine uninstall_cmd(uninstall_path); - if (!uninstall_cmd.GetProgram().value().empty()) { + CommandLine uninstall_cmd( + InstallUtil::GetChromeUninstallCmd(false, dist->GetType())); + if (!uninstall_cmd.GetProgram().empty()) { uninstall_cmd.AppendSwitch(installer::switches::kForceUninstall); uninstall_cmd.AppendSwitch( installer::switches::kDoNotRemoveSharedItems); diff --git a/chrome/installer/util/google_chrome_distribution.cc b/chrome/installer/util/google_chrome_distribution.cc index aae4c9a..1ced0a9 100644 --- a/chrome/installer/util/google_chrome_distribution.cc +++ b/chrome/installer/util/google_chrome_distribution.cc @@ -686,9 +686,8 @@ void GoogleChromeDistribution::InactiveUserToastExperiment(int flavor, bool system_level_toast = CommandLine::ForCurrentProcess()->HasSwitch( installer::switches::kSystemLevelToast); - std::wstring cmd(InstallUtil::GetChromeUninstallCmd( - system_level_toast, this)); - + CommandLine cmd(InstallUtil::GetChromeUninstallCmd(system_level_toast, + GetType())); base::LaunchApp(cmd, false, false, NULL); } #endif diff --git a/chrome/installer/util/install_util.cc b/chrome/installer/util/install_util.cc index 48af659..bc0a656 100644 --- a/chrome/installer/util/install_util.cc +++ b/chrome/installer/util/install_util.cc @@ -26,10 +26,12 @@ #include "chrome/installer/util/browser_distribution.h" #include "chrome/installer/util/google_update_constants.h" #include "chrome/installer/util/l10n_string_util.h" +#include "chrome/installer/util/installation_state.h" #include "chrome/installer/util/util_constants.h" #include "chrome/installer/util/work_item_list.h" using base::win::RegKey; +using installer::ProductState; bool InstallUtil::ExecuteExeAsAdmin(const CommandLine& cmd, DWORD* exit_code) { FilePath::StringType program(cmd.GetProgram().value()); @@ -68,14 +70,13 @@ bool InstallUtil::ExecuteExeAsAdmin(const CommandLine& cmd, DWORD* exit_code) { return true; } -std::wstring InstallUtil::GetChromeUninstallCmd(bool system_install, - BrowserDistribution* dist) { - DCHECK(dist); - HKEY root = system_install ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER; - RegKey key(root, dist->GetUninstallRegPath().c_str(), KEY_READ); - std::wstring uninstall_cmd; - key.ReadValue(installer::kUninstallStringField, &uninstall_cmd); - return uninstall_cmd; +CommandLine InstallUtil::GetChromeUninstallCmd( + bool system_install, BrowserDistribution::Type distribution_type) { + ProductState state; + if (state.Initialize(system_install, distribution_type)) { + return state.uninstall_command(); + } + return CommandLine(CommandLine::NO_PROGRAM); } Version* InstallUtil::GetChromeVersion(BrowserDistribution* dist, diff --git a/chrome/installer/util/install_util.h b/chrome/installer/util/install_util.h index 1912c09..0ce5758 100644 --- a/chrome/installer/util/install_util.h +++ b/chrome/installer/util/install_util.h @@ -15,10 +15,10 @@ #include <string> #include "base/basictypes.h" +#include "base/command_line.h" +#include "chrome/installer/util/browser_distribution.h" #include "chrome/installer/util/util_constants.h" -class BrowserDistribution; -class CommandLine; class Version; class WorkItemList; @@ -39,8 +39,9 @@ class InstallUtil { // Reads the uninstall command for Chromium from registry and returns it. // If system_install is true the command is read from HKLM, otherwise // from HKCU. - static std::wstring GetChromeUninstallCmd(bool system_install, - BrowserDistribution* dist); + static CommandLine GetChromeUninstallCmd( + bool system_install, + BrowserDistribution::Type distribution_type); // Find the version of Chrome installed on the system by checking the // Google Update registry key. Returns the version or NULL if no version is |
