Commit e0f8b2f4 authored by Mark Cogan's avatar Mark Cogan Committed by Commit Bot

[iOS] Remove TabModelList from ExternalFileRemoverImpl

Removes use of TabModelList from the external file remover, replacing it
with equivalent BrowserList code.

The ComputeReferencedExternalFiles() helper function is updated to
accept a single Browser parameter.

Bug: 1058350
Change-Id: I258fa3c20cd932e9bd5ecdd6da538a5b68b915a7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2116053Reviewed-by: default avatarMohammad Refaat <mrefaat@chromium.org>
Commit-Queue: Mohammad Refaat <mrefaat@chromium.org>
Cr-Commit-Position: refs/heads/master@{#753574}
parent aae3ffa1
......@@ -20,8 +20,8 @@ source_set("external_files") {
"//ios/chrome/browser",
"//ios/chrome/browser/bookmarks",
"//ios/chrome/browser/browser_state",
"//ios/chrome/browser/main:public",
"//ios/chrome/browser/sessions",
"//ios/chrome/browser/tabs",
"//ios/chrome/browser/web_state_list",
]
}
......@@ -17,9 +17,10 @@
#include "ios/chrome/browser/bookmarks/bookmark_model_factory.h"
#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
#include "ios/chrome/browser/chrome_url_util.h"
#import "ios/chrome/browser/main/browser.h"
#import "ios/chrome/browser/main/browser_list.h"
#import "ios/chrome/browser/main/browser_list_factory.h"
#include "ios/chrome/browser/sessions/ios_chrome_tab_restore_service_factory.h"
#import "ios/chrome/browser/tabs/tab_model.h"
#import "ios/chrome/browser/tabs/tab_model_list.h"
#import "ios/chrome/browser/web_state_list/web_state_list.h"
#include "ios/web/public/navigation/navigation_item.h"
#import "ios/web/public/navigation/navigation_manager.h"
......@@ -44,11 +45,11 @@ const CFTimeInterval kSecondsPerDay = 60 * 60 * 24;
// checking for null closure).
void RunCallback(base::ScopedClosureRunner closure_runner) {}
NSSet* ComputeReferencedExternalFiles(ChromeBrowserState* browser_state,
WebStateList* web_state_list) {
NSSet* ComputeReferencedExternalFiles(Browser* browser) {
NSMutableSet* referenced_files = [NSMutableSet set];
if (!browser_state)
if (!browser)
return referenced_files;
WebStateList* web_state_list = browser->GetWebStateList();
// Check the currently open tabs for external files.
for (int index = 0; index < web_state_list->count(); ++index) {
web::WebState* web_state = web_state_list->GetWebStateAt(index);
......@@ -67,7 +68,8 @@ NSSet* ComputeReferencedExternalFiles(ChromeBrowserState* browser_state,
}
// Do the same for the recently closed tabs.
sessions::TabRestoreService* restore_service =
IOSChromeTabRestoreServiceFactory::GetForBrowserState(browser_state);
IOSChromeTabRestoreServiceFactory::GetForBrowserState(
browser->GetBrowserState());
DCHECK(restore_service);
for (const auto& entry : restore_service->entries()) {
sessions::TabRestoreService::Tab* tab =
......@@ -232,10 +234,13 @@ NSSet* ExternalFileRemoverImpl::GetReferencedExternalFiles() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
// Add files from all TabModels.
NSMutableSet* referenced_external_files = [NSMutableSet set];
for (TabModel* tab_model in TabModelList::GetTabModelsForChromeBrowserState(
browser_state_)) {
NSSet* files =
ComputeReferencedExternalFiles(browser_state_, tab_model.webStateList);
BrowserList* browser_list =
BrowserListFactory::GetForBrowserState(browser_state_);
std::set<Browser*> browsers = browser_state_->IsOffTheRecord()
? browser_list->AllIncognitoBrowsers()
: browser_list->AllRegularBrowsers();
for (Browser* browser : browsers) {
NSSet* files = ComputeReferencedExternalFiles(browser);
if (files) {
[referenced_external_files unionSet:files];
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment