Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3802)

Unified Diff: chrome/browser/profiles/profile_shortcut_manager_win.cc

Issue 11876027: ProfileShortcutManagerWin: Don't create user level shortcut when system level one exists. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/profiles/profile_shortcut_manager_win.cc
===================================================================
--- chrome/browser/profiles/profile_shortcut_manager_win.cc (revision 176381)
+++ chrome/browser/profiles/profile_shortcut_manager_win.cc (working copy)
@@ -199,6 +199,20 @@
if (!file_util::PathExists(old_shortcut_path))
return;
+ // If a system shortcut exists at the destination, then simply delete the
+ // old shortcut.
+ FilePath system_shortcuts_directory;
+ DCHECK(ShellUtil::GetShortcutPath(ShellUtil::SHORTCUT_LOCATION_DESKTOP,
gab 2013/01/14 21:49:30 Take the call out of the DCHECK, store the result
Alexei Svitkine (slow) 2013/01/15 22:03:02 Doh, thanks for catching this. Fixed.
+ BrowserDistribution::GetDistribution(),
+ ShellUtil::SYSTEM_LEVEL,
+ &system_shortcuts_directory));
+ const FilePath possible_system_shortcut =
sail 2013/01/14 21:45:19 new_system_shortcut_path
Alexei Svitkine (slow) 2013/01/15 22:03:02 I've changed it to |possible_new_system_shortcut|,
+ system_shortcuts_directory.Append(new_shortcut_file);
+ if (file_util::PathExists(possible_system_shortcut)) {
+ file_util::Delete(old_shortcut_path, false);
+ return;
+ }
+
FilePath new_shortcut_path = shortcuts_directory.Append(new_shortcut_file);
sail 2013/01/14 21:45:19 new_user_shortcut_path
Alexei Svitkine (slow) 2013/01/15 22:03:02 All the paths here are assumed to be user paths ex
if (!file_util::Move(old_shortcut_path, new_shortcut_path))
LOG(ERROR) << "Could not rename Windows profile desktop shortcut.";
@@ -262,7 +276,7 @@
profiles::internal::GetShortcutFilenameForProfile(profile_name,
distribution);
shortcuts.push_back(FilePath(shortcut_name));
- operation = ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS;
+ operation = ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL;
gab 2013/01/14 21:49:30 This will prevent creation of all profile shortcut
Alexei Svitkine (slow) 2013/01/14 22:57:14 Makes sense. Just to clarify, SHELL_SHORTCUT_CREAT
gab 2013/01/14 23:04:42 Ah, you're right, I wrongly assumed it would preve
Alexei Svitkine (slow) 2013/01/15 22:03:02 Done.
}
for (size_t i = 0; i < shortcuts.size(); ++i) {
@@ -340,9 +354,9 @@
properties.set_shortcut_name(
profiles::internal::GetShortcutFilenameForProfile(string16(),
distribution));
- ShellUtil::CreateOrUpdateShortcut(ShellUtil::SHORTCUT_LOCATION_DESKTOP,
- distribution, properties,
- ShellUtil::SHELL_SHORTCUT_CREATE_ALWAYS);
+ ShellUtil::CreateOrUpdateShortcut(
+ ShellUtil::SHORTCUT_LOCATION_DESKTOP, distribution, properties,
+ ShellUtil::SHELL_SHORTCUT_CREATE_IF_NO_SYSTEM_LEVEL);
}
}

Powered by Google App Engine
This is Rietveld 408576698