Index: chrome/installer/setup/uninstall.cc |
diff --git a/chrome/installer/setup/uninstall.cc b/chrome/installer/setup/uninstall.cc |
index 3e34d577caa9ae0256c0975b37ca880ee10406ea..03b8b7f6ca5a8c278f9a763e1bd7c4c0e415c77a 100644 |
--- a/chrome/installer/setup/uninstall.cc |
+++ b/chrome/installer/setup/uninstall.cc |
@@ -298,6 +298,18 @@ void DeleteChromeShortcuts(const InstallerState& installer_state, |
VLOG(1) << "Deleting shortcut " << shortcut_path.value(); |
if (!file_util::Delete(shortcut_path, true)) |
LOG(ERROR) << "Failed to delete folder: " << shortcut_path.value(); |
+ |
+ // Also delete the per-user Start Menu shortcut possibly created by the |
+ // Active Setup flow. |
+ // TODO (gab): This is ugly, but I have a much cleaner solution to all of |
+ // this in my upcoming refactoring. |
+ if (installer_state.system_install()) { |
+ PathService::Get(base::DIR_START_MENU, &shortcut_path); |
grt (UTC plus 2)
2012/09/01 03:20:28
y u no handle return code?
gab
2012/09/01 22:28:40
same comment as in other files, staying close to b
grt (UTC plus 2)
2012/09/02 14:18:19
It's actively harmful to not handle it. |shortcut
|
+ shortcut_path = shortcut_path.Append(product_name); |
+ VLOG(1) << "Deleting shortcut " << shortcut_path.value(); |
+ if (!file_util::Delete(shortcut_path, true)) |
+ LOG(ERROR) << "Failed to delete folder: " << shortcut_path.value(); |
+ } |
} |
} |
@@ -1065,12 +1077,7 @@ InstallStatus UninstallProduct(const InstallationState& original_state, |
} |
ProcessDelegateExecuteWorkItems(installer_state, product); |
- |
-// TODO(gab): This is only disabled for M22 as the shortcut CL using Active |
-// Setup will not make it in M22. |
-#if 0 |
UninstallActiveSetupEntries(installer_state, product); |
-#endif |
} |
if (product.is_chrome_frame()) { |