Index: chrome/browser/web_applications/web_app_win.cc |
diff --git a/chrome/browser/web_applications/web_app_win.cc b/chrome/browser/web_applications/web_app_win.cc |
index 98d9e2c5bc9ffbfbe77b4e4fb721508e1844ccc5..9b326a14a85c1fad144be89daf714d52f76d2c6b 100644 |
--- a/chrome/browser/web_applications/web_app_win.cc |
+++ b/chrome/browser/web_applications/web_app_win.cc |
@@ -19,6 +19,8 @@ |
#include "chrome/installer/launcher_support/chrome_launcher_support.h" |
#include "chrome/installer/util/util_constants.h" |
#include "content/public/browser/browser_thread.h" |
+#include "grit/chromium_strings.h" |
+#include "ui/base/l10n/l10n_util.h" |
#include "ui/gfx/icon_util.h" |
#include "ui/gfx/image/image.h" |
#include "ui/gfx/image/image_family.h" |
@@ -240,6 +242,11 @@ bool CreatePlatformShortcuts( |
shortcut_properties.set_icon(icon_file, 0); |
shortcut_properties.set_app_id(app_id); |
shortcut_properties.set_dual_mode(false); |
+ if (!file_util::PathExists(shortcut_file.DirName()) && |
+ !file_util::CreateDirectory(shortcut_file.DirName())) { |
+ NOTREACHED(); |
+ return false; |
+ } |
success = base::win::CreateOrUpdateShortcutLink( |
shortcut_file, shortcut_properties, |
base::win::SHORTCUT_CREATE_ALWAYS) && success; |
@@ -283,6 +290,10 @@ void DeletePlatformShortcuts( |
all_shortcut_locations.in_applications_menu = true; |
all_shortcut_locations.in_quick_launch_bar = true; |
all_shortcut_locations.on_desktop = true; |
+ // Delete shortcuts from the Chrome Apps subdirectory. |
+ // This matches the subdir name set by CreateApplicationShortcutView::Accept. |
+ all_shortcut_locations.applications_menu_subdir = |
+ l10n_util::GetStringUTF16(IDS_APP_SHORTCUTS_SUBDIR_NAME); |
std::vector<base::FilePath> shortcut_paths = GetShortcutPaths( |
all_shortcut_locations); |
if (base::win::GetVersion() >= base::win::VERSION_WIN7) |