#include "chrome/services/file_util/public/cpp/sandboxed_zip_analyzer.h"
#include <utility>
#include "base/files/file_util.h"
#include "base/functional/bind.h"
#include "base/metrics/histogram_functions.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/thread_pool.h"
#include "chrome/common/safe_browsing/archive_analyzer_results.h"
#include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "mojo/public/cpp/bindings/remote.h"
namespace {
void PrepareFileToAnalyze(
base::FilePath file_path,
base::OnceCallback<void(SandboxedZipAnalyzer::WrappedFilePtr)>
success_callback,
base::OnceCallback<void(safe_browsing::ArchiveAnalysisResult)>
failure_callback) { … }
}
std::unique_ptr<SandboxedZipAnalyzer, base::OnTaskRunnerDeleter>
SandboxedZipAnalyzer::CreateAnalyzer(
const base::FilePath& zip_file,
base::optional_ref<const std::string> password,
ResultCallback callback,
mojo::PendingRemote<chrome::mojom::FileUtilService> service) { … }
SandboxedZipAnalyzer::SandboxedZipAnalyzer(
const base::FilePath& zip_file,
base::optional_ref<const std::string> password,
ResultCallback callback,
mojo::PendingRemote<chrome::mojom::FileUtilService> service)
: … { … }
void SandboxedZipAnalyzer::Start() { … }
SandboxedZipAnalyzer::~SandboxedZipAnalyzer() = default;
void SandboxedZipAnalyzer::ReportFileFailure(
safe_browsing::ArchiveAnalysisResult reason) { … }
void SandboxedZipAnalyzer::AnalyzeFile(WrappedFilePtr file) { … }
void SandboxedZipAnalyzer::AnalyzeFileDone(
const safe_browsing::ArchiveAnalyzerResults& results) { … }
base::WeakPtr<SandboxedZipAnalyzer> SandboxedZipAnalyzer::GetWeakPtr() { … }