Index: chrome/browser/sessions/session_restore.cc |
diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/sessions/session_restore.cc |
index eeafc2d4fed5bd8ac73abeea509a04cf4f662b5f..fd3c6d877a6bf1c786eec43758ee07a8b5accf7e 100644 |
--- a/chrome/browser/sessions/session_restore.cc |
+++ b/chrome/browser/sessions/session_restore.cc |
@@ -558,8 +558,9 @@ class SessionRestoreImpl : public content::NotificationObserver { |
if (!is_selected_tab) |
continue; |
- ShowBrowser(browser, browser->tab_strip_model()->GetIndexOfWebContents( |
- contents)); |
+ ShowBrowser(browser, |
+ browser->tab_strip_model()->GetIndexOfWebContents(contents), |
+ window.show_state); |
// TODO(sky): remove. For debugging 368236. |
CHECK_EQ(browser->tab_strip_model()->GetActiveWebContents(), contents); |
} |
@@ -643,15 +644,15 @@ class SessionRestoreImpl : public content::NotificationObserver { |
return new Browser(params); |
} |
- void ShowBrowser(Browser* browser, int selected_tab_index) { |
+ void ShowBrowser(Browser* browser, |
+ int selected_tab_index, |
+ ui::WindowShowState show_state) { |
DCHECK(browser); |
DCHECK(browser->tab_strip_model()->count()); |
browser->tab_strip_model()->ActivateTabAt(selected_tab_index, true); |
- if (browser_ == browser) |
- return; |
- |
- browser->window()->Show(); |
+ show_state == ui::SHOW_STATE_MINIMIZED ? browser->window()->Minimize() |
+ : browser->window()->Show(); |
browser->set_is_session_restore(false); |
// TODO(jcampan): http://crbug.com/8123 we should not need to set the |