[FPF] Refactor RulesetPublisher and RulesetService

Moves RulesetPublisher to core/ and makes RulesetService generic by adding a RulesetConfig with metadata about the ruleset it is being used for.

Change-Id: I7b9d920e24ec7905e51c650a9f51e207541c9b36
Bug: 40280666
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5382209
Reviewed-by: Alex Turner <[email protected]>
Reviewed-by: Nico Weber <[email protected]>
Commit-Queue: Martin Verde <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1278987}
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index 3e66135..4f855839 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -115,6 +115,7 @@
 #include "components/safe_browsing/content/browser/safe_browsing_service_interface.h"
 #include "components/sessions/core/session_id_generator.h"
 #include "components/subresource_filter/content/browser/ruleset_service.h"
+#include "components/subresource_filter/core/browser/subresource_filter_constants.h"
 #include "components/translate/core/browser/translate_download_manager.h"
 #include "components/ukm/ukm_service.h"
 #include "components/update_client/update_query_params.h"
@@ -1437,7 +1438,9 @@
   base::FilePath user_data_dir;
   base::PathService::Get(chrome::DIR_USER_DATA, &user_data_dir);
   subresource_filter_ruleset_service_ =
-      subresource_filter::RulesetService::Create(local_state(), user_data_dir);
+      subresource_filter::RulesetService::Create(
+          subresource_filter::kSafeBrowsingRulesetConfig, local_state(),
+          user_data_dir);
 }
 
 #if !BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/component_updater/subresource_filter_component_installer.cc b/chrome/browser/component_updater/subresource_filter_component_installer.cc
index fda495e..d6742d7f 100644
--- a/chrome/browser/component_updater/subresource_filter_component_installer.cc
+++ b/chrome/browser/component_updater/subresource_filter_component_installer.cc
@@ -104,7 +104,8 @@
 
 base::FilePath
 SubresourceFilterComponentInstallerPolicy::GetRelativeInstallDir() const {
-  return base::FilePath(subresource_filter::kTopLevelDirectoryName)
+  return base::FilePath(
+             subresource_filter::kSafeBrowsingRulesetConfig.top_level_directory)
       .Append(subresource_filter::kUnindexedRulesetBaseDirectoryName);
 }
 
diff --git a/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc b/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc
index 04ebfd1..b18303e 100644
--- a/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc
+++ b/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc
@@ -44,10 +44,12 @@
       scoped_refptr<base::SequencedTaskRunner> task_runner,
       const base::FilePath& base_dir,
       scoped_refptr<base::SequencedTaskRunner> blocking_task_runner)
-      : subresource_filter::RulesetService(local_state,
-                                           task_runner,
-                                           base_dir,
-                                           blocking_task_runner) {}
+      : subresource_filter::RulesetService(
+            subresource_filter::kSafeBrowsingRulesetConfig,
+            local_state,
+            task_runner,
+            base_dir,
+            blocking_task_runner) {}
 
   TestRulesetService(const TestRulesetService&) = delete;
   TestRulesetService& operator=(const TestRulesetService&) = delete;
@@ -115,7 +117,8 @@
     ASSERT_TRUE(component_install_dir_.CreateUniqueTempDir());
     ASSERT_TRUE(ruleset_service_dir_.CreateUniqueTempDir());
     subresource_filter::IndexedRulesetVersion::RegisterPrefs(
-        pref_service_.registry(), subresource_filter::kSafeBrowsingFilterTag);
+        pref_service_.registry(),
+        subresource_filter::kSafeBrowsingRulesetConfig.filter_tag);
 
     auto test_ruleset_service = std::make_unique<TestRulesetService>(
         &pref_service_, base::SingleThreadTaskRunner::GetCurrentDefault(),
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index faf3fa04..d8d556b 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -1522,7 +1522,7 @@
   sessions::SessionIdGenerator::RegisterPrefs(registry);
   SSLConfigServiceManager::RegisterPrefs(registry);
   subresource_filter::IndexedRulesetVersion::RegisterPrefs(
-      registry, subresource_filter::kSafeBrowsingFilterTag);
+      registry, subresource_filter::kSafeBrowsingRulesetConfig.filter_tag);
   SystemNetworkContextManager::RegisterPrefs(registry);
   tpcd::experiment::RegisterLocalStatePrefs(registry);
   tracing::RegisterPrefs(registry);