#include "chrome/browser/browsing_data/browsing_data_remover_browsertest_base.h"
#include <memory>
#include <utility>
#include <vector>
#include "base/files/file_enumerator.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/path_service.h"
#include "base/ranges/algorithm.h"
#include "base/test/bind.h"
#include "base/test/test_future.h"
#include "build/build_config.h"
#include "build/buildflag.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browsing_data/browsing_data_file_system_util.h"
#include "chrome/browser/browsing_data/chrome_browsing_data_model_delegate.h"
#include "chrome/browser/browsing_data/counters/site_data_counting_helper.h"
#include "chrome/browser/net/system_network_context_manager.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/common/chrome_paths.h"
#include "components/browsing_data/content/browsing_data_model.h"
#include "components/browsing_data/content/browsing_data_test_util.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/download_manager.h"
#include "content/public/browser/storage_partition.h"
#include "content/public/common/content_paths.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/download_test_observer.h"
#include "google_apis/gaia/gaia_urls.h"
#include "net/base/filename_util.h"
#include "net/dns/mock_host_resolver.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
#include "third_party/leveldatabase/env_chromium.h"
#include "third_party/re2/src/re2/re2.h"
#include "ui/base/models/tree_model.h"
#if !BUILDFLAG(IS_ANDROID)
#include "chrome/browser/download/download_browsertest_utils.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/test/base/ui_test_utils.h"
#endif
namespace {
#if BUILDFLAG(IS_ANDROID)
base::FilePath GetTestFilePath(const char* dir, const char* file) {
base::FilePath path;
base::ScopedAllowBlockingForTesting allow_blocking;
base::PathService::Get(chrome::DIR_TEST_DATA, &path);
if (dir)
path = path.AppendASCII(dir);
return path.AppendASCII(file);
}
GURL GetTestUrl(const char* dir, const char* file) {
return net::FilePathToFileURL(GetTestFilePath(dir, file));
}
#endif
class DownloadManagerWaiter : public content::DownloadManager::Observer { … };
bool ShouldIgnoreFile(const std::string& file,
const std::vector<std::string>& ignore_file_patterns) { … }
}
BrowsingDataRemoverBrowserTestBase::BrowsingDataRemoverBrowserTestBase() =
default;
BrowsingDataRemoverBrowserTestBase::~BrowsingDataRemoverBrowserTestBase() =
default;
void BrowsingDataRemoverBrowserTestBase::InitFeatureLists(
std::vector<base::test::FeatureRef> enabled_features,
std::vector<base::test::FeatureRef> disabled_features) { … }
#if !BUILDFLAG(IS_ANDROID)
Browser* BrowsingDataRemoverBrowserTestBase::GetBrowser() const { … }
void BrowsingDataRemoverBrowserTestBase::UseIncognitoBrowser() { … }
void BrowsingDataRemoverBrowserTestBase::RestartIncognitoBrowser() { … }
#endif
void BrowsingDataRemoverBrowserTestBase::SetUpOnMainThread() { … }
void BrowsingDataRemoverBrowserTestBase::RunScriptAndCheckResult(
const std::string& script,
const std::string& result,
content::WebContents* web_contents) { … }
bool BrowsingDataRemoverBrowserTestBase::RunScriptAndGetBool(
const std::string& script,
content::WebContents* web_contents) { … }
void BrowsingDataRemoverBrowserTestBase::VerifyDownloadCount(size_t expected,
Profile* profile) { … }
void BrowsingDataRemoverBrowserTestBase::DownloadAnItem() { … }
bool BrowsingDataRemoverBrowserTestBase::HasDataForType(
const std::string& type,
content::WebContents* web_contents) { … }
void BrowsingDataRemoverBrowserTestBase::SetDataForType(
const std::string& type,
content::WebContents* web_contents) { … }
int BrowsingDataRemoverBrowserTestBase::GetSiteDataCount(
content::WebContents* web_contents) { … }
network::mojom::NetworkContext*
BrowsingDataRemoverBrowserTestBase::network_context() { … }
content::WebContents*
BrowsingDataRemoverBrowserTestBase::GetActiveWebContents() { … }
#if !BUILDFLAG(IS_ANDROID)
content::WebContents* BrowsingDataRemoverBrowserTestBase::GetActiveWebContents(
Browser* browser) { … }
#endif
Profile* BrowsingDataRemoverBrowserTestBase::GetProfile() { … }
bool BrowsingDataRemoverBrowserTestBase::CheckUserDirectoryForString(
const std::string& hostname,
const std::vector<std::string>& ignore_file_patterns,
bool check_leveldb_content) { … }
std::unique_ptr<BrowsingDataModel>
BrowsingDataRemoverBrowserTestBase::GetBrowsingDataModel(Profile* profile) { … }
#if BUILDFLAG(ENABLE_DICE_SUPPORT)
bool BrowsingDataRemoverBrowserTestBase::SetGaiaCookieForProfile(
Profile* profile) { … }
#endif