summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-04 19:59:02 +0000
committerrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-04 19:59:02 +0000
commit3d933e6c681b2ba4d3234a3d8294c4fefae53d18 (patch)
tree0622cc546ea53249ff4a38308033fb93d13fc2b1 /chrome
parent380d0ecda5b1ed89de251e531aebce63f8cc9f5c (diff)
downloadchromium_src-3d933e6c681b2ba4d3234a3d8294c4fefae53d18.zip
chromium_src-3d933e6c681b2ba4d3234a3d8294c4fefae53d18.tar.gz
chromium_src-3d933e6c681b2ba4d3234a3d8294c4fefae53d18.tar.bz2
Prevent CF from trashing Chrome's registrations when uninstalling.
BUG=37329 TEST=No longer attempt to delete Chrome registry keys on CF uninstall. Review URL: http://codereview.chromium.org/667007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40645 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/installer/setup/uninstall.cc6
-rw-r--r--chrome/installer/util/chrome_frame_distribution.cc4
-rw-r--r--chrome/installer/util/chrome_frame_distribution.h2
3 files changed, 10 insertions, 2 deletions
diff --git a/chrome/installer/setup/uninstall.cc b/chrome/installer/setup/uninstall.cc
index d957ecc..1a1c518 100644
--- a/chrome/installer/setup/uninstall.cc
+++ b/chrome/installer/setup/uninstall.cc
@@ -518,9 +518,11 @@ installer_util::InstallStatus installer_setup::UninstallChrome(
// Delete shared registry keys as well (these require admin rights) if
// remove_all option is specified.
if (remove_all) {
- if (!InstallUtil::IsChromeSxSProcess()) {
+ if (!InstallUtil::IsChromeSxSProcess() &&
+ !InstallUtil::IsChromeFrameProcess()) {
// Delete media player registry key that exists only in HKLM.
- // We don't delete this key in SxS uninstall.
+ // We don't delete this key in SxS uninstall or Chrome Frame uninstall
+ // as we never set the key for those products.
RegKey hklm_key(HKEY_LOCAL_MACHINE, L"", KEY_ALL_ACCESS);
std::wstring reg_path(installer::kMediaPlayerRegPath);
file_util::AppendToPath(&reg_path, installer_util::kChromeExe);
diff --git a/chrome/installer/util/chrome_frame_distribution.cc b/chrome/installer/util/chrome_frame_distribution.cc
index 2b336fe..a394a3c 100644
--- a/chrome/installer/util/chrome_frame_distribution.cc
+++ b/chrome/installer/util/chrome_frame_distribution.cc
@@ -96,6 +96,10 @@ std::wstring ChromeFrameDistribution::GetVersionKey() {
return key;
}
+bool ChromeFrameDistribution::CanSetAsDefault() {
+ return false;
+}
+
void ChromeFrameDistribution::UpdateDiffInstallStatus(bool system_install,
bool incremental_install, installer_util::InstallStatus install_status) {
HKEY reg_root = (system_install) ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
diff --git a/chrome/installer/util/chrome_frame_distribution.h b/chrome/installer/util/chrome_frame_distribution.h
index f7bcce3..650c3d2 100644
--- a/chrome/installer/util/chrome_frame_distribution.h
+++ b/chrome/installer/util/chrome_frame_distribution.h
@@ -43,6 +43,8 @@ class ChromeFrameDistribution : public BrowserDistribution {
virtual std::wstring GetVersionKey();
+ virtual bool CanSetAsDefault();
+
// This is the point at which the Google Chrome installer removes the Google
// Update ap value. We implement this simply to have the same behaviour re.
// the ap value.