| 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,
|
|
|