| Index: chrome/browser/resource_coordinator/tab_manager_web_contents_data.cc
|
| diff --git a/chrome/browser/resource_coordinator/tab_manager_web_contents_data.cc b/chrome/browser/resource_coordinator/tab_manager_web_contents_data.cc
|
| index af91c398ac0163e9f1f4f1a940b81e12767f7434..40f5be9a9354812d15c79fdb68bac83312b687f0 100644
|
| --- a/chrome/browser/resource_coordinator/tab_manager_web_contents_data.cc
|
| +++ b/chrome/browser/resource_coordinator/tab_manager_web_contents_data.cc
|
| @@ -9,7 +9,9 @@
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/engagement/site_engagement_service.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/resource_coordinator/tab_manager.h"
|
| #include "content/public/browser/browser_thread.h"
|
| +#include "content/public/browser/navigation_handle.h"
|
| #include "content/public/browser/web_contents.h"
|
|
|
| using base::TimeTicks;
|
| @@ -34,6 +36,22 @@ void TabManager::WebContentsData::DidStartLoading() {
|
| SetDiscardState(false);
|
| }
|
|
|
| +void TabManager::WebContentsData::DidStopLoading() {
|
| + // TODO(zhenw): Switch to use tab done loading signal when it is ready.
|
| + if (!tab_data_.has_finished_loading) {
|
| + tab_data_.has_finished_loading = true;
|
| + g_browser_process->GetTabManager()->HasFinishedLoadingTab(web_contents());
|
| + }
|
| +}
|
| +
|
| +void TabManager::WebContentsData::DidStartNavigation(
|
| + content::NavigationHandle* navigation_handle) {
|
| + if (!navigation_handle->IsInMainFrame())
|
| + return;
|
| +
|
| + tab_data_.has_finished_loading = false;
|
| +}
|
| +
|
| void TabManager::WebContentsData::WebContentsDestroyed() {
|
| // If Chrome is shutting down, ignore this event.
|
| if (g_browser_process->IsShuttingDown())
|
| @@ -168,6 +186,7 @@ TabManager::WebContentsData::Data::Data()
|
| : is_discarded(false),
|
| discard_count(0),
|
| is_recently_audible(false),
|
| + has_finished_loading(false),
|
| last_audio_change_time(TimeTicks::UnixEpoch()),
|
| last_discard_time(TimeTicks::UnixEpoch()),
|
| last_reload_time(TimeTicks::UnixEpoch()),
|
| @@ -178,6 +197,7 @@ TabManager::WebContentsData::Data::Data()
|
| bool TabManager::WebContentsData::Data::operator==(const Data& right) const {
|
| return is_discarded == right.is_discarded &&
|
| is_recently_audible == right.is_recently_audible &&
|
| + has_finished_loading == right.has_finished_loading &&
|
| last_audio_change_time == right.last_audio_change_time &&
|
| last_discard_time == right.last_discard_time &&
|
| last_reload_time == right.last_reload_time &&
|
|
|