Index: chrome/browser/views/new_profile_dialog.cc |
diff --git a/chrome/browser/views/new_profile_dialog.cc b/chrome/browser/views/new_profile_dialog.cc |
index f580bb09b53c6e91bb855b3684312d5ab0b59e54..9672a7aeead6660921acd29cf54d3bbb7e8f0f5c 100644 |
--- a/chrome/browser/views/new_profile_dialog.cc |
+++ b/chrome/browser/views/new_profile_dialog.cc |
@@ -8,8 +8,10 @@ |
#include "app/l10n_util.h" |
#include "app/message_box_flags.h" |
-#include "base/logging.h" |
+#include "base/file_util.h" |
#include "base/i18n/file_util_icu.h" |
+#include "base/logging.h" |
+#include "base/path_service.h" |
#include "chrome/browser/user_data_manager.h" |
#include "grit/chromium_strings.h" |
#include "grit/generated_resources.h" |
@@ -19,6 +21,10 @@ |
#include "views/view.h" |
#include "views/window/window.h" |
+#if defined(OS_WIN) |
+#include "base/win_util.h" |
+#endif // defined(OS_WIN) |
+ |
namespace browser { |
// Declared in browser_dialogs.h so others don't have to depend on our header. |
@@ -99,9 +105,26 @@ bool NewProfileDialog::Accept() { |
return true; |
} |
// Create a desktop shortcut if the corresponding checkbox is checked. |
- if (message_box_view_->IsCheckBoxSelected()) |
+ if (message_box_view_->IsCheckBoxSelected()) { |
UserDataManager::Get()->CreateDesktopShortcutForProfile( |
profile_name); |
+ } else { |
+#if defined(OS_WIN) |
+ if (win_util::GetWinVersion() >= win_util::WINVERSION_WIN7) { |
+ // For Win7, we need to have a shortcut in a place that Windows would |
+ // index to provide correct relaunch info. |
+ // See http://crbug.com/32106 |
+ FilePath temp_path; |
+ if (PathService::Get(base::DIR_APP_DATA, &temp_path)) { |
+ temp_path = temp_path.Append( |
+ L"Microsoft\\Internet Explorer\\Quick Launch\\User Pinned"); |
+ UserDataManager::Get()->CreateShortcutForProfileInFolder( |
+ temp_path, |
+ profile_name); |
+ } |
+ } |
+#endif // defined(OS_WIN) |
+ } |
UserDataManager::Get()->LaunchChromeForProfile(profile_name); |
UserDataManager::Get()->RefreshUserDataDirProfiles(); |