Chromium Code Reviews| Index: chrome/installer/setup/uninstall.cc |
| diff --git a/chrome/installer/setup/uninstall.cc b/chrome/installer/setup/uninstall.cc |
| index d670288580e985278c87e2c19c7059ea50a26e67..61b999a4eb04f204f67f7b375e98cd0d1116fbf0 100644 |
| --- a/chrome/installer/setup/uninstall.cc |
| +++ b/chrome/installer/setup/uninstall.cc |
| @@ -256,14 +256,9 @@ void CloseChromeFrameHelperProcess() { |
| } |
| } |
| -// This method deletes the product's shortcut folder from the |
| -// Windows Start menu. It checks system_uninstall to see if the shortcut is |
| -// in all users start menu or current user start menu. |
| -// We try to remove the standard desktop shortcut but if that fails we try |
| -// to remove the alternate desktop shortcut. Only one of them should be |
| -// present in a given install but at this point we don't know which one. |
| -// We remove all start screen secondary tiles by removing the folder Windows |
| -// uses to store this installation's tiles. |
| +// Deletes shortcuts at |install_level| from Start menu, Desktop, |
| +// Quick Launch, taskbar, and secondary tiles on the Start Screen (Win8+). |
| +// Only shortcuts pointing to |target| will be removed. |
| void DeleteShortcuts(const InstallerState& installer_state, |
| const Product& product, |
| const string16& target_exe) { |
| @@ -1053,10 +1048,10 @@ InstallStatus UninstallProduct(const InstallationState& original_state, |
| } |
| } |
| - // Chrome is not in use so lets uninstall Chrome by deleting various files |
| - // and registry entries. Here we will just make best effort and keep going |
| - // in case of errors. |
| if (is_chrome) { |
| + // Chrome is not in use so lets uninstall Chrome by deleting various files |
| + // and registry entries. Here we will just make best effort and keep going |
| + // in case of errors. |
| ClearRlzProductState(); |
| // Delete the key that delegate_execute might make. |
| if (base::win::GetVersion() >= base::win::VERSION_WIN8) { |
| @@ -1067,10 +1062,18 @@ InstallStatus UninstallProduct(const InstallationState& original_state, |
| auto_launch_util::DisableAllAutoStartFeatures( |
| ASCIIToUTF16(chrome::kInitialProfile)); |
| - // First delete shortcuts from Start->Programs, Desktop & Quick Launch. |
| DeleteShortcuts(installer_state, product, chrome_exe); |
| + |
| + } else if (product.is_chrome_app_host()) { |
| + // TODO(huangs): Remove this check once we have system-level App Host. |
| + DCHECK(!installer_state.system_install()); |
| + const string16 app_host_exe( |
| + installer_state.target_path().Append(installer::kChromeAppHostExe) |
| + .value()); |
| + DeleteShortcuts(installer_state, product, app_host_exe); |
| } |
|
gab
2012/11/08 00:10:58
nit: Should be only one empty line between the end
huangs
2012/11/08 00:26:02
Done.
|
| + |
| // Delete the registry keys (Uninstall key and Version key). |
| HKEY reg_root = installer_state.root_key(); |