summaryrefslogtreecommitdiffstats
path: root/chrome/installer/util/install_util.h
diff options
context:
space:
mode:
authorrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-07 17:27:46 +0000
committerrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-07 17:27:46 +0000
commitcdc038860e32bfeff7e8e8839deaa1f1185a1373 (patch)
tree496bedf827fc608688267540f3b9715449605629 /chrome/installer/util/install_util.h
parent8784578d7e13d112fd205d3ee4fc1fe0018beea0 (diff)
downloadchromium_src-cdc038860e32bfeff7e8e8839deaa1f1185a1373.zip
chromium_src-cdc038860e32bfeff7e8e8839deaa1f1185a1373.tar.gz
chromium_src-cdc038860e32bfeff7e8e8839deaa1f1185a1373.tar.bz2
Fix a couple of issues with MSI support through upgrades:
1) When installing from an msi, remove any uninstall shortcuts currently present for that type (system/per-user) of install. 2) When uninstalling, proactively delete the MSI marker from the Omaha ClientState key to avoid an uninstall-reinstall scenario which can cause a reinstall of a non-msi build to be tagged as being msi-managed. BUG=45252,45273 TEST=Install non-MSI GCF, then install MSI GCF. Observe only a single ARP dialog entry. Then uninstall MSI GCF and quickly reinstall non-MSI GCF, again observe a single ARP dialog entry. Review URL: http://codereview.chromium.org/2459003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49069 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/installer/util/install_util.h')
-rw-r--r--chrome/installer/util/install_util.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/chrome/installer/util/install_util.h b/chrome/installer/util/install_util.h
index 0622985..2e5e405 100644
--- a/chrome/installer/util/install_util.h
+++ b/chrome/installer/util/install_util.h
@@ -18,6 +18,7 @@
#include "chrome/installer/util/version.h"
class WorkItemList;
+class RegKey;
// This is a utility class that provides common installation related
// utility methods that can be used by installer and also unit tested
@@ -99,6 +100,14 @@ class InstallUtil {
bool do_register,
WorkItemList* registration_list);
+ // Deletes the registry key at path key_path under the key given by root_key.
+ static bool DeleteRegistryKey(RegKey& root_key, const std::wstring& key_path);
+
+ // Deletes the registry value named value_name at path key_path under the key
+ // given by reg_root.
+ static bool DeleteRegistryValue(HKEY reg_root, const std::wstring& key_path,
+ const std::wstring& value_name);
+
private:
DISALLOW_COPY_AND_ASSIGN(InstallUtil);
};