diff options
author | kuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-15 21:37:46 +0000 |
---|---|---|
committer | kuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-15 21:37:46 +0000 |
commit | 68c921f8b5d6454307645d4017a3cbf2646904bc (patch) | |
tree | fdd0d0138a4ce706e052de4bab66fa3c4b28b8d4 /chrome/installer/util | |
parent | 9c6c3065723227dee6bca91df24bb6863ac123f9 (diff) | |
download | chromium_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.cc | 9 | ||||
-rw-r--r-- | chrome/installer/util/install_util.h | 7 | ||||
-rw-r--r-- | chrome/installer/util/util_constants.cc | 6 | ||||
-rw-r--r-- | chrome/installer/util/util_constants.h | 3 |
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 |