summaryrefslogtreecommitdiffstats
path: root/chrome/installer/util
diff options
context:
space:
mode:
authorkuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-15 21:37:46 +0000
committerkuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-15 21:37:46 +0000
commit68c921f8b5d6454307645d4017a3cbf2646904bc (patch)
treefdd0d0138a4ce706e052de4bab66fa3c4b28b8d4 /chrome/installer/util
parent9c6c3065723227dee6bca91df24bb6863ac123f9 (diff)
downloadchromium_src-68c921f8b5d6454307645d4017a3cbf2646904bc.zip
chromium_src-68c921f8b5d6454307645d4017a3cbf2646904bc.tar.gz
chromium_src-68c921f8b5d6454307645d4017a3cbf2646904bc.tar.bz2
Add a check in Chrome to not run user level mode if machine level Chrome
is already installed. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3423 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/installer/util')
-rw-r--r--chrome/installer/util/install_util.cc9
-rw-r--r--chrome/installer/util/install_util.h7
-rw-r--r--chrome/installer/util/util_constants.cc6
-rw-r--r--chrome/installer/util/util_constants.h3
4 files changed, 22 insertions, 3 deletions
diff --git a/chrome/installer/util/install_util.cc b/chrome/installer/util/install_util.cc
index 290a60a..032e5e8 100644
--- a/chrome/installer/util/install_util.cc
+++ b/chrome/installer/util/install_util.cc
@@ -17,6 +17,15 @@
#include "chrome/installer/util/google_update_constants.h"
+std::wstring InstallUtil::GetChromeUninstallCmd(bool system_install) {
+ HKEY root = system_install ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
+ BrowserDistribution* dist = BrowserDistribution::GetDistribution();
+ RegKey key(root, dist->GetUninstallRegPath().c_str());
+ std::wstring uninstall_cmd;
+ key.ReadValue(installer_util::kUninstallStringField, &uninstall_cmd);
+ return uninstall_cmd;
+}
+
installer::Version* InstallUtil::GetChromeVersion(bool system_install) {
RegKey key;
std::wstring version_str;
diff --git a/chrome/installer/util/install_util.h b/chrome/installer/util/install_util.h
index 6e6d6da..b8ca5c3 100644
--- a/chrome/installer/util/install_util.h
+++ b/chrome/installer/util/install_util.h
@@ -20,12 +20,17 @@
// independently.
class InstallUtil {
public:
+ // 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);
+
// 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
// found.
// system_install: if true, looks for version number under the HKLM root,
// otherwise looks under the HKCU.
- static installer::Version * GetChromeVersion(bool system_install);
+ static installer::Version* GetChromeVersion(bool system_install);
// This function checks if the current OS is supported for Chromium.
static bool IsOSSupported();
diff --git a/chrome/installer/util/util_constants.cc b/chrome/installer/util/util_constants.cc
index b3ac19f..19934f69 100644
--- a/chrome/installer/util/util_constants.cc
+++ b/chrome/installer/util/util_constants.cc
@@ -31,11 +31,15 @@ const wchar_t kRegisterChromeBrowser[] = L"register-chrome-browser";
const wchar_t kDoNotRemoveSharedItems[] = L"do-not-remove-shared-items";
// Install Chrome to system wise location. The default is per user install.
-const wchar_t kSystemInstall[] = L"system-install";
+const wchar_t kSystemLevel[] = L"system-level";
// If present, setup will uninstall chrome.
const wchar_t kUninstall[] = L"uninstall";
+// If present, setup will uninstall chrome without asking for any
+// confirmation from user.
+const wchar_t kForceUninstall[] = L"force-uninstall";
+
// Enable verbose logging (info level).
const wchar_t kVerboseLogging[] = L"verbose-logging";
diff --git a/chrome/installer/util/util_constants.h b/chrome/installer/util/util_constants.h
index e115787..5994ef0 100644
--- a/chrome/installer/util/util_constants.h
+++ b/chrome/installer/util/util_constants.h
@@ -40,8 +40,9 @@ extern const wchar_t kInstallArchive[];
extern const wchar_t kLogFile[];
extern const wchar_t kRegisterChromeBrowser[];
extern const wchar_t kDoNotRemoveSharedItems[];
-extern const wchar_t kSystemInstall[];
+extern const wchar_t kSystemLevel[];
extern const wchar_t kUninstall[];
+extern const wchar_t kForceUninstall[];
extern const wchar_t kVerboseLogging[];
} // namespace switches