Index: chrome/installer/setup/uninstall.cc |
=================================================================== |
--- chrome/installer/setup/uninstall.cc (revision 146242) |
+++ chrome/installer/setup/uninstall.cc (working copy) |
@@ -533,15 +533,9 @@ |
// Delete Software\Classes\Chrome (Same comment as above applies for this too) |
string16 chrome_app_id(ShellUtil::kRegClasses); |
chrome_app_id.push_back(FilePath::kSeparators[0]); |
- if (browser_entry_suffix.empty()) { |
- // An unsuffixed appid used to be registered on some user-level install |
- // (dev-channel 21.0.1171.0). Make sure it gets cleaned up here. |
- // Note: this couldn't be cleaned on update as a currently running old |
- // chrome might still be using the unsuffixed appid when the registration |
- // update steps run. |
- InstallUtil::DeleteRegistryKey(root, chrome_app_id + dist->GetBaseAppId()); |
- } |
- chrome_app_id.append(ShellUtil::GetBrowserModelId(dist, chrome_exe.value())); |
+ // Append the requested suffix manually here (as ShellUtil::GetBrowserModelId |
+ // would otherwise try to figure out the currently installed suffix). |
+ chrome_app_id.append(dist->GetBaseAppId() + browser_entry_suffix); |
InstallUtil::DeleteRegistryKey(root, chrome_app_id); |
// Delete all Start Menu Internet registrations that refer to this Chrome. |
@@ -809,6 +803,17 @@ |
if (!suffix.empty()) { |
DeleteChromeRegistrationKeys(browser_dist, HKEY_CURRENT_USER, string16(), |
installer_state.target_path(), &ret); |
+ |
+ // For similar reasons it is possible in very few installs (from 21.0.1180.0 |
+ // and fixed shortly after) to be installed with the new-style suffix, but |
+ // have some old-style suffix registrations left behind. |
+ string16 old_style_suffix; |
+ if (ShellUtil::GetOldUserSpecificRegistrySuffix(&old_style_suffix) && |
+ suffix != old_style_suffix) { |
+ DeleteChromeRegistrationKeys(browser_dist, HKEY_CURRENT_USER, |
+ old_style_suffix, |
+ installer_state.target_path(), &ret); |
+ } |
} |
// Chrome is registered in HKLM for all system-level installs and for |