| 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 122f6bd73eb70bc170bab67c512cbc4fa47f4678..c3f3e401874e16a89bd840d1f292f607201dc125 100644
|
| --- a/chrome/browser/resource_coordinator/tab_manager.cc
|
| +++ b/chrome/browser/resource_coordinator/tab_manager.cc
|
| @@ -162,6 +162,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()));
|
| @@ -507,6 +508,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() {
|
| @@ -830,6 +834,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,
|
|
|