| 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 b4ca7b54f50b638ab8864bc1c89f9a0df7663669..387c51c13410d0b3340babf9d902714813acbad5 100644
|
| --- a/chrome/browser/resource_coordinator/tab_manager.cc
|
| +++ b/chrome/browser/resource_coordinator/tab_manager.cc
|
| @@ -135,6 +135,7 @@ TabManager::TabManager()
|
| browser_tab_strip_tracker_(this, nullptr, nullptr),
|
| 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()));
|
| @@ -469,6 +470,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() {
|
| @@ -794,6 +798,10 @@ void TabManager::ActiveTabChanged(content::WebContents* old_contents,
|
| GetWebContentsData(old_contents)
|
| ->set_time_to_purge(GetTimeToPurge(min_time_to_purge_));
|
| }
|
| +
|
| + if (old_contents && !initial_session_restore_foreground_tab_changed_) {
|
| + initial_session_restore_foreground_tab_changed_ = true;
|
| + }
|
| }
|
|
|
| void TabManager::TabInsertedAt(TabStripModel* tab_strip_model,
|
|
|