https://chromium-review.googlesource.com/c/chromium/src/+/7493269
From: LN Liberda <lauren@selfisekai.rocks>
Date: Tue, 20 Jan 2026 17:01:22 -0800
Subject: [PATCH] Fixes for safe_browsing_use_unrar=false

Bug: none
Change-Id: Ie58652c7b7262d74cd9bd9cb88286aed3fda4426
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7493269
Commit-Queue: Xinghui Lu <xinghuilu@chromium.org>
Reviewed-by: Xinghui Lu <xinghuilu@chromium.org>
Reviewed-by: Daniel Rubery <drubery@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1571974}
--- a/chrome/services/file_util/BUILD.gn
+++ b/chrome/services/file_util/BUILD.gn
@@ -25,7 +25,6 @@ source_set("file_util") {
     "//components/safe_browsing:buildflags",
     "//extensions/buildflags",
     "//mojo/public/cpp/bindings",
-    "//third_party/unrar",
     "//third_party/zlib",
   ]
 
@@ -36,7 +35,11 @@ source_set("file_util") {
     "//mojo/public/mojom/base",
   ]
 
-  defines = []
+  defines = [ "USE_UNRAR=$safe_browsing_use_unrar" ]
+
+  if (safe_browsing_use_unrar) {
+    deps += [ "//third_party/unrar" ]
+  }
 
   if (is_chromeos) {
     sources += [
@@ -67,8 +70,6 @@ source_set("file_util") {
       "//chrome/utility/safe_browsing",
       "//components/enterprise/obfuscation/core:enterprise_obfuscation",
     ]
-
-    defines += [ "USE_UNRAR=$safe_browsing_use_unrar" ]
   }
 
   if (enable_extractors) {
--- a/chrome/services/file_util/obfuscated_archive_analysis_delegate.cc
+++ b/chrome/services/file_util/obfuscated_archive_analysis_delegate.cc
@@ -104,6 +104,7 @@ class ObfuscatedZipWriterDelegate : public zip::FileWriterDelegate,
   bool closed_ = false;
 };
 
+#if USE_UNRAR
 class ObfuscatedRarReaderDelegate
     : public third_party_unrar::RarReaderDelegate {
  public:
@@ -175,6 +176,7 @@ class ObfuscatedRarWriterDelegate
   std::unique_ptr<enterprise_obfuscation::DownloadObfuscator> obfuscator_;
   bool init_ = false;
 };
+#endif
 
 }  // namespace
 
@@ -203,6 +205,7 @@ ObfuscatedArchiveAnalysisDelegate::CreateZipWriterDelegate(base::File file) {
   return std::make_unique<ObfuscatedZipWriterDelegate>(std::move(file));
 }
 
+#if USE_UNRAR
 std::unique_ptr<third_party_unrar::RarReaderDelegate>
 ObfuscatedArchiveAnalysisDelegate::CreateRarReaderDelegate(base::File file) {
   base::expected<enterprise_obfuscation::ObfuscatedFileReader,
@@ -220,6 +223,7 @@ std::unique_ptr<third_party_unrar::RarWriterDelegate>
 ObfuscatedArchiveAnalysisDelegate::CreateRarWriterDelegate(base::File file) {
   return std::make_unique<ObfuscatedRarWriterDelegate>(std::move(file));
 }
+#endif
 
 std::unique_ptr<ArchiveAnalysisDelegate>
 ObfuscatedArchiveAnalysisDelegate::CreateNestedDelegate(
--- a/chrome/services/file_util/obfuscated_archive_analysis_delegate.h
+++ b/chrome/services/file_util/obfuscated_archive_analysis_delegate.h
@@ -22,10 +22,12 @@ class ObfuscatedArchiveAnalysisDelegate : public ArchiveAnalysisDelegate {
       base::File file) override;
   std::unique_ptr<SafeBrowsingZipWriterDelegate> CreateZipWriterDelegate(
       base::File file) override;
+#if USE_UNRAR
   std::unique_ptr<third_party_unrar::RarReaderDelegate> CreateRarReaderDelegate(
       base::File file) override;
   std::unique_ptr<third_party_unrar::RarWriterDelegate> CreateRarWriterDelegate(
       base::File file) override;
+#endif
   std::unique_ptr<ArchiveAnalysisDelegate> CreateNestedDelegate(
       base::File extracted_file) override;
 
--- a/chrome/services/file_util/regular_archive_analysis_delegate.cc
+++ b/chrome/services/file_util/regular_archive_analysis_delegate.cc
@@ -92,6 +92,7 @@ RegularArchiveAnalysisDelegate::CreateZipWriterDelegate(base::File file) {
   return std::make_unique<ZipWriterDelegate>(std::move(file));
 }
 
+#if USE_UNRAR
 std::unique_ptr<third_party_unrar::RarReaderDelegate>
 RegularArchiveAnalysisDelegate::CreateRarReaderDelegate(base::File file) {
   return std::make_unique<third_party_unrar::FileReader>(std::move(file));
@@ -101,6 +102,7 @@ std::unique_ptr<third_party_unrar::RarWriterDelegate>
 RegularArchiveAnalysisDelegate::CreateRarWriterDelegate(base::File file) {
   return std::make_unique<third_party_unrar::FileWriter>(std::move(file));
 }
+#endif
 
 std::unique_ptr<ArchiveAnalysisDelegate>
 RegularArchiveAnalysisDelegate::CreateNestedDelegate(
--- a/chrome/services/file_util/regular_archive_analysis_delegate.h
+++ b/chrome/services/file_util/regular_archive_analysis_delegate.h
@@ -20,10 +20,12 @@ class RegularArchiveAnalysisDelegate : public ArchiveAnalysisDelegate {
       base::File file) override;
   std::unique_ptr<SafeBrowsingZipWriterDelegate> CreateZipWriterDelegate(
       base::File file) override;
+#if USE_UNRAR
   std::unique_ptr<third_party_unrar::RarReaderDelegate> CreateRarReaderDelegate(
       base::File file) override;
   std::unique_ptr<third_party_unrar::RarWriterDelegate> CreateRarWriterDelegate(
       base::File file) override;
+#endif
   std::unique_ptr<ArchiveAnalysisDelegate> CreateNestedDelegate(
       base::File extracted_file) override;
 };
--- a/chrome/utility/safe_browsing/archive_analysis_delegate.h
+++ b/chrome/utility/safe_browsing/archive_analysis_delegate.h
@@ -28,6 +28,7 @@ class ArchiveAnalysisDelegate {
   virtual std::unique_ptr<SafeBrowsingZipWriterDelegate>
   CreateZipWriterDelegate(base::File file) = 0;
 
+#if USE_UNRAR
   // Creates a reader delegate for reading the RAR archive.
   virtual std::unique_ptr<third_party_unrar::RarReaderDelegate>
   CreateRarReaderDelegate(base::File file) = 0;
@@ -35,6 +36,7 @@ class ArchiveAnalysisDelegate {
   // Creates a writer delegate for writing extracted RAR entries.
   virtual std::unique_ptr<third_party_unrar::RarWriterDelegate>
   CreateRarWriterDelegate(base::File file) = 0;
+#endif
 
   // Creates a delegate for analyzing a nested archive extracted from the
   // current archive. Returns nullptr if the nested archive cannot be handled
