| Index: chrome/installer/setup/install.cc
|
| diff --git a/chrome/installer/setup/install.cc b/chrome/installer/setup/install.cc
|
| index 3bd2a05066b16f7d37477be8a68b384ec84fa08b..8b83beff10b183c9f5132ab672dc68096ca3fa62 100644
|
| --- a/chrome/installer/setup/install.cc
|
| +++ b/chrome/installer/setup/install.cc
|
| @@ -69,7 +69,10 @@ void LogShortcutOperation(ShellUtil::ShortcutLocation location,
|
| case ShellUtil::SHORTCUT_LOCATION_QUICK_LAUNCH:
|
| message.append("Quick Launch ");
|
| break;
|
| - case ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR:
|
| + case ShellUtil::SHORTCUT_LOCATION_START_MENU_ROOT:
|
| + message.append("Start menu ");
|
| + break;
|
| + case ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR_DEPRECATED:
|
| message.append("Start menu/" +
|
| base::UTF16ToUTF8(dist->GetStartMenuShortcutSubfolder(
|
| BrowserDistribution::SUBFOLDER_CHROME)) +
|
| @@ -420,8 +423,24 @@ void CreateOrUpdateShortcuts(
|
| ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL) {
|
| start_menu_properties.set_pin_to_taskbar(!do_not_create_taskbar_shortcut);
|
| }
|
| +
|
| + // The attempt below to update the stortcut will fail if it does not already
|
| + // exist at the expected location on disk. First check if it exists in the
|
| + // previous location (under a subdirectory) and, if so, move it to the new
|
| + // location.
|
| + base::FilePath old_shortcut_path;
|
| + ShellUtil::GetShortcutPath(
|
| + ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR_DEPRECATED, dist,
|
| + shortcut_level, &old_shortcut_path);
|
| + if (base::PathExists(old_shortcut_path)) {
|
| + ShellUtil::MoveExistingShortcut(
|
| + ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR_DEPRECATED,
|
| + ShellUtil::SHORTCUT_LOCATION_START_MENU_ROOT,
|
| + dist, start_menu_properties);
|
| + }
|
| +
|
| ExecuteAndLogShortcutOperation(
|
| - ShellUtil::SHORTCUT_LOCATION_START_MENU_CHROME_DIR, dist,
|
| + ShellUtil::SHORTCUT_LOCATION_START_MENU_ROOT, dist,
|
| start_menu_properties, shortcut_operation);
|
| }
|
|
|
|
|