Index: chrome/browser/ui/browser_init.cc |
=================================================================== |
--- chrome/browser/ui/browser_init.cc (revision 135895) |
+++ chrome/browser/ui/browser_init.cc (working copy) |
@@ -900,9 +900,16 @@ |
// opened an app shortcut. Don't restore tabs or open initial |
// URLs in that case. The user should see the window as an app, |
// not as chrome. |
- if (OpenApplicationWindow(profile)) { |
+ // Special case is when app switches are passed but we do want to restore |
+ // session. In that case open app window + focus it after session is restored. |
+ if (OpenApplicationWindow(profile) && !browser_defaults::kAppRestoreSession) { |
RecordLaunchModeHistogram(LM_AS_WEBAPP); |
} else { |
+ Browser* browser_to_focus = NULL; |
+ // In case of app mode + session restore we want to focus that app. |
+ if (browser_defaults::kAppRestoreSession) |
+ browser_to_focus = BrowserList::GetLastActive(); |
+ |
RecordLaunchModeHistogram(urls_to_open.empty()? |
LM_TO_BE_DECIDED : LM_WITH_URLS); |
@@ -916,6 +923,9 @@ |
// be an app tab. |
OpenApplicationTab(profile); |
+ if (browser_to_focus) |
+ browser_to_focus->GetSelectedWebContents()->GetView()->SetInitialFocus(); |
+ |
if (process_startup) { |
if (browser_defaults::kOSSupportsOtherBrowsers && |
!command_line_.HasSwitch(switches::kNoDefaultBrowserCheck)) { |