diff options
author | robertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-04 19:59:02 +0000 |
---|---|---|
committer | robertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-04 19:59:02 +0000 |
commit | 3d933e6c681b2ba4d3234a3d8294c4fefae53d18 (patch) | |
tree | 0622cc546ea53249ff4a38308033fb93d13fc2b1 /chrome | |
parent | 380d0ecda5b1ed89de251e531aebce63f8cc9f5c (diff) | |
download | chromium_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.cc | 6 | ||||
-rw-r--r-- | chrome/installer/util/chrome_frame_distribution.cc | 4 | ||||
-rw-r--r-- | chrome/installer/util/chrome_frame_distribution.h | 2 |
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(®_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. |