Index: chrome/browser/ui/startup/startup_browser_creator.cc |
diff --git a/chrome/browser/ui/startup/startup_browser_creator.cc b/chrome/browser/ui/startup/startup_browser_creator.cc |
index 381f26533567411023af064022ddddb521e9decb..48dd7d9130730534c701d7a6cbc77ea012416d80 100644 |
--- a/chrome/browser/ui/startup/startup_browser_creator.cc |
+++ b/chrome/browser/ui/startup/startup_browser_creator.cc |
@@ -88,6 +88,10 @@ |
#include "chrome/browser/web_applications/web_app_mac.h" |
#endif |
+#if defined(OS_WIN) |
+#include "chrome/browser/metrics/jumplist_metrics_win.h" |
+#endif |
+ |
#if defined(ENABLE_FULL_PRINTING) |
#include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" |
#include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.h" |
@@ -623,6 +627,27 @@ bool StartupBrowserCreator::ProcessCmdLineImpl( |
return true; |
} |
+#if defined(OS_WIN) |
+ // Log whether this process was a result of an action in the Windows Jumplist. |
+ if (command_line.HasSwitch(switches::kWinJumplistAction)) { |
+ jumplist::LogJumplistActionFromSwitchValue( |
+ command_line.GetSwitchValueASCII(switches::kWinJumplistAction)); |
+ } |
+#endif |
+ |
+ // If the profile is loaded and the --activate-existing-profile-browser flag |
+ // is used, activate one of the profile's browser windows, if one exists. |
+ // Continuing to process the command line is not needed, since this will |
+ // end up opening a new browser window. |
+ if (command_line.HasSwitch(switches::kActivateExistingProfileBrowser)) { |
+ Browser* browser = chrome::FindTabbedBrowser( |
+ last_used_profile, false, chrome::HOST_DESKTOP_TYPE_NATIVE); |
+ if (browser) { |
+ browser->window()->Activate(); |
+ return true; |
+ } |
+ } |
+ |
chrome::startup::IsProcessStartup is_process_startup = process_startup ? |
chrome::startup::IS_PROCESS_STARTUP : |
chrome::startup::IS_NOT_PROCESS_STARTUP; |