| 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 10bad7198f3101659a5f1bd4bf09e1e40b068141..45fdf5e921d7b1fdfb007d3b1660ddfc1fbe378d 100644
|
| --- a/chrome/browser/web_applications/web_app_win.cc
|
| +++ b/chrome/browser/web_applications/web_app_win.cc
|
| @@ -183,7 +183,8 @@ bool CreateShortcutsInPaths(
|
| // Generates file name to use with persisted ico and shortcut file.
|
| base::FilePath icon_file =
|
| web_app::internals::GetIconFilePath(web_app_path, shortcut_info.title);
|
| - if (!web_app::internals::CheckAndSaveIcon(icon_file, shortcut_info.favicon)) {
|
| + if (!web_app::internals::CheckAndSaveIcon(icon_file, shortcut_info.favicon,
|
| + false)) {
|
| return false;
|
| }
|
|
|
| @@ -357,7 +358,7 @@ void CreateIconAndSetRelaunchDetails(const base::FilePath& web_app_path,
|
| return;
|
|
|
| ui::win::SetAppIconForWindow(icon_file.value(), hwnd);
|
| - web_app::internals::CheckAndSaveIcon(icon_file, shortcut_info.favicon);
|
| + web_app::internals::CheckAndSaveIcon(icon_file, shortcut_info.favicon, true);
|
| }
|
|
|
| void OnShortcutInfoLoadedForSetRelaunchDetails(
|
| @@ -543,7 +544,7 @@ base::FilePath CreateShortcutInWebAppDir(const base::FilePath& web_app_dir,
|
| } else {
|
| internals::CheckAndSaveIcon(
|
| internals::GetIconFilePath(web_app_dir, shortcut_info.title),
|
| - shortcut_info.favicon);
|
| + shortcut_info.favicon, true);
|
| }
|
| return web_app_dir_shortcut;
|
| }
|
| @@ -564,23 +565,22 @@ void UpdateShortcutsForAllApps(Profile* profile,
|
|
|
| namespace internals {
|
|
|
| -// Saves |image| to |icon_file| if the file is outdated and refresh shell's
|
| -// icon cache to ensure correct icon is displayed. Returns true if icon_file
|
| -// is up to date or successfully updated.
|
| bool CheckAndSaveIcon(const base::FilePath& icon_file,
|
| - const gfx::ImageFamily& image) {
|
| - if (ShouldUpdateIcon(icon_file, image)) {
|
| - if (SaveIconWithCheckSum(icon_file, image)) {
|
| - // Refresh shell's icon cache. This call is quite disruptive as user would
|
| - // see explorer rebuilding the icon cache. It would be great that we find
|
| - // a better way to achieve this.
|
| - SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST | SHCNF_FLUSHNOWAIT,
|
| - NULL, NULL);
|
| - } else {
|
| - return false;
|
| - }
|
| - }
|
| + const gfx::ImageFamily& image,
|
| + bool refresh_shell_icon_cache) {
|
| + if (!ShouldUpdateIcon(icon_file, image))
|
| + return true;
|
| +
|
| + if (!SaveIconWithCheckSum(icon_file, image))
|
| + return false;
|
|
|
| + if (refresh_shell_icon_cache) {
|
| + // Refresh shell's icon cache. This call is quite disruptive as user would
|
| + // see explorer rebuilding the icon cache. It would be great that we find
|
| + // a better way to achieve this.
|
| + SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST | SHCNF_FLUSHNOWAIT, NULL,
|
| + NULL);
|
| + }
|
| return true;
|
| }
|
|
|
| @@ -674,7 +674,7 @@ void UpdatePlatformShortcuts(
|
|
|
| // Update the icon if necessary.
|
| base::FilePath icon_file = GetIconFilePath(web_app_path, shortcut_info.title);
|
| - CheckAndSaveIcon(icon_file, shortcut_info.favicon);
|
| + CheckAndSaveIcon(icon_file, shortcut_info.favicon, true);
|
| }
|
|
|
| void DeletePlatformShortcuts(const base::FilePath& web_app_path,
|
|
|