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 9e3c5ee255a0743155f2e3cb85ad95d99150d60b..be49240a5a6600d90ecfc21d7e94903a577e5ccd 100644 |
--- a/chrome/browser/web_applications/web_app_win.cc |
+++ b/chrome/browser/web_applications/web_app_win.cc |
@@ -2,7 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/web_applications/web_app.h" |
+#include "chrome/browser/web_applications/web_app_win.h" |
#include <shlobj.h> |
@@ -16,6 +16,7 @@ |
#include "base/strings/utf_string_conversions.h" |
#include "base/win/shortcut.h" |
#include "base/win/windows_version.h" |
+#include "chrome/browser/web_applications/web_app.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/installer/launcher_support/chrome_launcher_support.h" |
#include "chrome/installer/util/util_constants.h" |
@@ -137,7 +138,8 @@ std::vector<base::FilePath> MatchingShortcutsForProfileAndExtension( |
bool CreateShortcutsInPaths( |
const base::FilePath& web_app_path, |
const ShellIntegration::ShortcutInfo& shortcut_info, |
- const std::vector<base::FilePath>& shortcut_paths) { |
+ const std::vector<base::FilePath>& shortcut_paths, |
+ std::vector<base::FilePath>* out_filenames) { |
// Ensure web_app_path exists. |
if (!file_util::PathExists(web_app_path) && |
!file_util::CreateDirectory(web_app_path)) { |
@@ -215,6 +217,8 @@ bool CreateShortcutsInPaths( |
success = base::win::CreateOrUpdateShortcutLink( |
shortcut_file, shortcut_properties, |
base::win::SHORTCUT_CREATE_ALWAYS) && success; |
+ if (out_filenames) |
+ out_filenames->push_back(shortcut_file); |
} |
return success; |
@@ -286,6 +290,17 @@ void GetShortcutLocationsAndDeleteShortcuts( |
namespace web_app { |
+base::FilePath CreateShortcutInWebAppDir( |
+ const base::FilePath& web_app_dir, |
+ const ShellIntegration::ShortcutInfo& shortcut_info) { |
+ std::vector<base::FilePath> paths; |
+ paths.push_back(web_app_dir); |
+ std::vector<base::FilePath> out_filenames; |
+ CreateShortcutsInPaths(web_app_dir, shortcut_info, paths, &out_filenames); |
+ DCHECK_EQ(out_filenames.size(), 1u); |
+ return out_filenames[0]; |
+} |
+ |
namespace internals { |
// Saves |image| to |icon_file| if the file is outdated and refresh shell's |
@@ -331,7 +346,8 @@ bool CreatePlatformShortcuts( |
if (shortcut_paths.empty()) |
return false; |
- if (!CreateShortcutsInPaths(web_app_path, shortcut_info, shortcut_paths)) |
+ if (!CreateShortcutsInPaths(web_app_path, shortcut_info, shortcut_paths, |
+ NULL)) |
return false; |
if (pin_to_taskbar) { |
@@ -367,7 +383,7 @@ void UpdatePlatformShortcuts( |
GetShortcutLocationsAndDeleteShortcuts( |
web_app_path, shortcut_info.profile_path, old_app_title, |
&was_pinned_to_taskbar, &shortcut_paths); |
- CreateShortcutsInPaths(web_app_path, shortcut_info, shortcut_paths); |
+ CreateShortcutsInPaths(web_app_path, shortcut_info, shortcut_paths, NULL); |
// If the shortcut was pinned to the taskbar, |
// GetShortcutLocationsAndDeleteShortcuts will have deleted it. In that |
// case, re-pin it. |