Index: chrome/installer/setup/uninstall.cc |
diff --git a/chrome/installer/setup/uninstall.cc b/chrome/installer/setup/uninstall.cc |
index 3e34d577caa9ae0256c0975b37ca880ee10406ea..ea9f2e4ae2794282c0c27e753e08010ad9322a08 100644 |
--- a/chrome/installer/setup/uninstall.cc |
+++ b/chrome/installer/setup/uninstall.cc |
@@ -256,46 +256,44 @@ void DeleteChromeShortcuts(const InstallerState& installer_state, |
return; |
} |
- FilePath shortcut_path; |
- if (installer_state.system_install()) { |
- PathService::Get(base::DIR_COMMON_START_MENU, &shortcut_path); |
- if (!ShellUtil::RemoveChromeDesktopShortcut( |
- product.distribution(), |
- ShellUtil::CURRENT_USER | ShellUtil::SYSTEM_LEVEL, |
- ShellUtil::SHORTCUT_NO_OPTIONS)) { |
- ShellUtil::RemoveChromeDesktopShortcut( |
- product.distribution(), |
- ShellUtil::CURRENT_USER | ShellUtil::SYSTEM_LEVEL, |
- ShellUtil::SHORTCUT_ALTERNATE); |
- } |
- |
- ShellUtil::RemoveChromeQuickLaunchShortcut(product.distribution(), |
- ShellUtil::CURRENT_USER | ShellUtil::SYSTEM_LEVEL); |
- } else { |
- PathService::Get(base::DIR_START_MENU, &shortcut_path); |
- if (!ShellUtil::RemoveChromeDesktopShortcut(product.distribution(), |
- ShellUtil::CURRENT_USER, ShellUtil::SHORTCUT_NO_OPTIONS)) { |
- ShellUtil::RemoveChromeDesktopShortcut(product.distribution(), |
- ShellUtil::CURRENT_USER, ShellUtil::SHORTCUT_ALTERNATE); |
- } |
+ BrowserDistribution* dist = product.distribution(); |
+ |
+ uint32 options = |
+ installer_state.system_install() ? ShellUtil::SHORTCUT_SYSTEM_LEVEL : |
+ ShellUtil::SHORTCUT_NO_OPTIONS; |
+ |
+ VLOG(1) << "Deleting Desktop shortcut."; |
+ if (!ShellUtil::RemoveChromeShortcut( |
+ ShellUtil::SHORTCUT_DESKTOP, dist, options) && |
+ !ShellUtil::RemoveChromeShortcut( |
+ ShellUtil::SHORTCUT_DESKTOP, dist, |
+ options | ShellUtil::SHORTCUT_ALTERNATE)) { |
+ LOG(WARNING) << "Failed to delete Desktop shortcut."; |
+ } |
- ShellUtil::RemoveChromeQuickLaunchShortcut(product.distribution(), |
- ShellUtil::CURRENT_USER); |
+ VLOG(1) << "Deleting Quick Launch shortcut."; |
+ if (!ShellUtil::RemoveChromeShortcut( |
+ ShellUtil::SHORTCUT_QUICK_LAUNCH, dist, options)) { |
+ LOG(WARNING) << "Failed to delete Quick Launch shortcut."; |
} |
+ |
+ FilePath shortcut_path; |
+ ShellUtil::GetShortcutPath( |
+ ShellUtil::SHORTCUT_START_MENU, installer_state.system_install(), |
+ &shortcut_path); |
+ |
if (shortcut_path.empty()) { |
- LOG(ERROR) << "Failed to get location for shortcut."; |
+ LOG(ERROR) << "Failed to get location for Start Menu shortcuts."; |
} else { |
- const string16 product_name(product.distribution()->GetAppShortCutName()); |
- shortcut_path = shortcut_path.Append(product_name); |
- |
- FilePath shortcut_link(shortcut_path.Append(product_name + L".lnk")); |
+ const FilePath shortcut_link( |
+ shortcut_path.Append(dist->GetAppShortCutName() + L".lnk")); |
VLOG(1) << "Unpinning shortcut at " << shortcut_link.value() |
<< " from taskbar"; |
// Ignore return value: keep uninstalling if the unpin fails. |
file_util::TaskbarUnpinShortcutLink(shortcut_link.value().c_str()); |
- VLOG(1) << "Deleting shortcut " << shortcut_path.value(); |
+ VLOG(1) << "Deleting Start Menu shortcuts folder " << shortcut_path.value(); |
if (!file_util::Delete(shortcut_path, true)) |
LOG(ERROR) << "Failed to delete folder: " << shortcut_path.value(); |
} |