Index: chrome/browser/resource_coordinator/tab_manager.cc |
diff --git a/chrome/browser/resource_coordinator/tab_manager.cc b/chrome/browser/resource_coordinator/tab_manager.cc |
index dd274689abc41095ecd9492790d111c970bd60f9..0569d682d188599d42193bdae19ff246d2cba74e 100644 |
--- a/chrome/browser/resource_coordinator/tab_manager.cc |
+++ b/chrome/browser/resource_coordinator/tab_manager.cc |
@@ -148,6 +148,7 @@ TabManager::TabManager() |
browser_tab_strip_tracker_(this, nullptr, this), |
test_tick_clock_(nullptr), |
is_session_restore_loading_tabs_(false), |
+ initial_session_restore_foreground_tab_changed_(false), |
weak_ptr_factory_(this) { |
#if defined(OS_CHROMEOS) |
delegate_.reset(new TabManagerDelegate(weak_ptr_factory_.GetWeakPtr())); |
@@ -506,6 +507,9 @@ int64_t TabManager::IdFromWebContents(WebContents* web_contents) { |
void TabManager::OnSessionRestoreStartedLoadingTabs() { |
DCHECK(!is_session_restore_loading_tabs_); |
is_session_restore_loading_tabs_ = true; |
+ |
+ // Needs to reset this flag for each session restore. |
+ initial_session_restore_foreground_tab_changed_ = false; |
} |
void TabManager::OnSessionRestoreFinishedLoadingTabs() { |
@@ -853,6 +857,10 @@ void TabManager::ActiveTabChanged(content::WebContents* old_contents, |
} |
ResumeTabNavigationIfNeeded(new_contents); |
+ |
+ if (old_contents && !initial_session_restore_foreground_tab_changed_) { |
+ initial_session_restore_foreground_tab_changed_ = true; |
+ } |
} |
void TabManager::TabInsertedAt(TabStripModel* tab_strip_model, |