| 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 296ab6d8b93deb027ed47e431bc1c978648cc32b..d183dc874598d66c67c826109d2ae519c7ead128 100644
|
| --- a/chrome/browser/resource_coordinator/tab_manager.cc
|
| +++ b/chrome/browser/resource_coordinator/tab_manager.cc
|
| @@ -144,6 +144,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()));
|
| @@ -482,8 +483,10 @@ 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() {
|
| @@ -826,6 +829,10 @@ void TabManager::ActiveTabChanged(content::WebContents* old_contents,
|
| ReloadWebContentsIfDiscarded(new_contents,
|
| GetWebContentsData(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,
|
|
|