| Index: chrome/browser/sessions/tab_loader.cc
|
| diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab_loader.cc
|
| index ef4c3cdeb8b3102d9f7d85ec609fa0fefffc4911..753f4e0493c23ad66dc15e7f1f37a6574ce3f7e1 100644
|
| --- a/chrome/browser/sessions/tab_loader.cc
|
| +++ b/chrome/browser/sessions/tab_loader.cc
|
| @@ -31,6 +31,12 @@ using content::NavigationController;
|
| using content::RenderWidgetHost;
|
| using content::WebContents;
|
|
|
| +namespace {
|
| +
|
| +size_t g_max_loaded_tab_count_for_testing = 0;
|
| +
|
| +} // namespace
|
| +
|
| void TabLoader::Observe(int type,
|
| const content::NotificationSource& source,
|
| const content::NotificationDetails& details) {
|
| @@ -78,11 +84,17 @@ void TabLoader::RestoreTabs(const std::vector<RestoredTab>& tabs,
|
| shared_tab_loader_->StartLoading(tabs);
|
| }
|
|
|
| +// static
|
| +void TabLoader::SetMaxLoadedTabCountForTest(size_t value) {
|
| + g_max_loaded_tab_count_for_testing = value;
|
| +}
|
| +
|
| TabLoader::TabLoader(base::TimeTicks restore_started)
|
| : memory_pressure_listener_(
|
| base::Bind(&TabLoader::OnMemoryPressure, base::Unretained(this))),
|
| force_load_delay_multiplier_(1),
|
| loading_enabled_(true),
|
| + started_to_load_count_(0),
|
| restore_started_(restore_started) {
|
| stats_collector_ = new SessionRestoreStatsCollector(
|
| restore_started,
|
| @@ -118,6 +130,7 @@ void TabLoader::StartLoading(const std::vector<RestoredTab>& tabs) {
|
| if (favicon_driver)
|
| favicon_driver->FetchFavicon(favicon_driver->GetActiveURL());
|
| } else {
|
| + ++started_to_load_count_;
|
| tabs_loading_.insert(&restored_tab.contents()->GetController());
|
| }
|
| RegisterForNotifications(&restored_tab.contents()->GetController());
|
| @@ -168,6 +181,7 @@ void TabLoader::LoadNextTab() {
|
|
|
| NavigationController* controller = tabs_to_load_.front();
|
| DCHECK(controller);
|
| + ++started_to_load_count_;
|
| tabs_loading_.insert(controller);
|
| tabs_to_load_.pop_front();
|
| controller->LoadIfNecessary();
|
| @@ -242,6 +256,9 @@ void TabLoader::HandleTabClosedOrLoaded(NavigationController* controller) {
|
| }
|
|
|
| bool TabLoader::ShouldStopLoadingTabs() const {
|
| + if (g_max_loaded_tab_count_for_testing != 0 &&
|
| + started_to_load_count_ >= g_max_loaded_tab_count_for_testing)
|
| + return true;
|
| if (base::FeatureList::IsEnabled(features::kMemoryCoordinator))
|
| return base::MemoryCoordinatorProxy::GetInstance()->GetCurrentMemoryState()
|
| != base::MemoryState::NORMAL;
|
|
|