[tor-commits] [tor-browser/tor-browser-90.0-10.5-1] Bug 31740: Remove some unnecessary RemoteSettings instances

sysrqb at torproject.org sysrqb at torproject.org
Fri Jul 16 13:30:03 UTC 2021


commit fd7119150ec874e193ba4b0b06ecdd044f364279
Author: Alex Catarineu <acat at torproject.org>
Date:   Wed Oct 16 23:01:12 2019 +0200

    Bug 31740: Remove some unnecessary RemoteSettings instances
    
    More concretely, SearchService.jsm 'hijack-blocklists' and
    url-classifier-skip-urls.
    
    Avoid creating instance for 'anti-tracking-url-decoration'.
    
    If prefs are disabling their usage, avoid creating instances for
    'cert-revocations' and 'intermediates'.
    
    Do not ship JSON dumps for collections we do not expect to need. For
    the ones in the 'main' bucket, this prevents them from being synced
    unnecessarily (the code in remote-settings does so for collections
    in the main bucket for which a dump or local data exists). For the
    collections in the other buckets, we just save some size by not
    shipping their dumps.
    
    We also clear the collections database on the v2 -> v3 migration.
---
 browser/app/profile/000-tor-browser.js             |  3 +++
 browser/components/search/SearchSERPTelemetry.jsm  |  6 ------
 .../url-classifier/UrlClassifierFeatureBase.cpp    |  2 +-
 netwerk/url-classifier/components.conf             |  6 ------
 security/manager/ssl/RemoteSecuritySettings.jsm    | 23 ++++++++++++++++++++++
 services/settings/IDBHelpers.jsm                   |  4 ++++
 services/settings/dumps/blocklists/moz.build       |  1 -
 services/settings/dumps/main/moz.build             |  7 -------
 services/settings/dumps/security-state/moz.build   |  1 -
 .../components/antitracking/antitracking.manifest  |  2 +-
 toolkit/components/antitracking/components.conf    |  7 -------
 toolkit/components/search/SearchService.jsm        |  2 --
 12 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index d54f3aae2557..0200e68b5ce1 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -149,6 +149,9 @@ pref("extensions.fxmonitor.enabled", false);
 pref("signon.management.page.mobileAndroidURL", "");
 pref("signon.management.page.mobileAppleURL", "");
 
+// Disable remote "password recipes"
+pref("signon.recipes.remoteRecipesEnabled", false);
+
 // Disable ServiceWorkers and push notifications by default
 pref("dom.serviceWorkers.enabled", false);
 pref("dom.push.enabled", false);
diff --git a/browser/components/search/SearchSERPTelemetry.jsm b/browser/components/search/SearchSERPTelemetry.jsm
index 3e9d92548213..5c499e91713a 100644
--- a/browser/components/search/SearchSERPTelemetry.jsm
+++ b/browser/components/search/SearchSERPTelemetry.jsm
@@ -96,13 +96,7 @@ class TelemetryHandler {
       return;
     }
 
-    this._telemetrySettings = RemoteSettings(TELEMETRY_SETTINGS_KEY);
     let rawProviderInfo = [];
-    try {
-      rawProviderInfo = await this._telemetrySettings.get();
-    } catch (ex) {
-      logConsole.error("Could not get settings:", ex);
-    }
 
     // Send the provider info to the child handler.
     this._contentHandler.init(rawProviderInfo);
diff --git a/netwerk/url-classifier/UrlClassifierFeatureBase.cpp b/netwerk/url-classifier/UrlClassifierFeatureBase.cpp
index 07da1fd07374..48bcc7d10af9 100644
--- a/netwerk/url-classifier/UrlClassifierFeatureBase.cpp
+++ b/netwerk/url-classifier/UrlClassifierFeatureBase.cpp
@@ -78,7 +78,7 @@ void UrlClassifierFeatureBase::InitializePreferences() {
 
   nsCOMPtr<nsIUrlClassifierExceptionListService> exceptionListService =
       do_GetService("@mozilla.org/url-classifier/exception-list-service;1");
-  if (NS_WARN_IF(!exceptionListService)) {
+  if (!exceptionListService) {
     return;
   }
 
diff --git a/netwerk/url-classifier/components.conf b/netwerk/url-classifier/components.conf
index 03a02f0ebeab..b2e667247317 100644
--- a/netwerk/url-classifier/components.conf
+++ b/netwerk/url-classifier/components.conf
@@ -13,10 +13,4 @@ Classes = [
         'constructor': 'mozilla::net::ChannelClassifierService::GetSingleton',
         'headers': ['mozilla/net/ChannelClassifierService.h'],
     },
-    {
-        'cid': '{b9f4fd03-9d87-4bfd-9958-85a821750ddc}',
-        'contract_ids': ['@mozilla.org/url-classifier/exception-list-service;1'],
-        'jsm': 'resource://gre/modules/UrlClassifierExceptionListService.jsm',
-        'constructor': 'UrlClassifierExceptionListService',
-    },
 ]
diff --git a/security/manager/ssl/RemoteSecuritySettings.jsm b/security/manager/ssl/RemoteSecuritySettings.jsm
index b59b2c8a4391..898de699de07 100644
--- a/security/manager/ssl/RemoteSecuritySettings.jsm
+++ b/security/manager/ssl/RemoteSecuritySettings.jsm
@@ -282,6 +282,16 @@ var RemoteSecuritySettings = {
 
 class IntermediatePreloads {
   constructor() {
+    this.maybeInit();
+  }
+
+  maybeInit() {
+    if (
+      this.client ||
+      !Services.prefs.getBoolPref(INTERMEDIATES_ENABLED_PREF, true)
+    ) {
+      return;
+    }
     this.client = RemoteSettings(
       Services.prefs.getCharPref(INTERMEDIATES_COLLECTION_PREF),
       {
@@ -311,6 +321,7 @@ class IntermediatePreloads {
       );
       return;
     }
+    this.maybeInit();
 
     // Download attachments that are awaiting download, up to a max.
     const maxDownloadsPerRun = Services.prefs.getIntPref(
@@ -621,6 +632,16 @@ function compareFilters(filterA, filterB) {
 
 class CRLiteFilters {
   constructor() {
+    this.maybeInit();
+  }
+
+  maybeInit() {
+    if (
+      this.client ||
+      !Services.prefs.getBoolPref(CRLITE_FILTERS_ENABLED_PREF, true)
+    ) {
+      return;
+    }
     this.client = RemoteSettings(
       Services.prefs.getCharPref(CRLITE_FILTERS_COLLECTION_PREF),
       {
@@ -648,6 +669,8 @@ class CRLiteFilters {
       return;
     }
 
+    this.maybeInit();
+
     let hasPriorFilter = await hasPriorData(
       Ci.nsICertStorage.DATA_TYPE_CRLITE_FILTER_FULL
     );
diff --git a/services/settings/IDBHelpers.jsm b/services/settings/IDBHelpers.jsm
index 5dc59c3687ef..010a5ea82987 100644
--- a/services/settings/IDBHelpers.jsm
+++ b/services/settings/IDBHelpers.jsm
@@ -188,6 +188,10 @@ async function openIDB(allowUpgrades = true) {
         });
       }
       if (event.oldVersion < 3) {
+        // Clear existing stores for a fresh start
+        transaction.objectStore("records").clear();
+        transaction.objectStore("timestamps").clear();
+        transaction.objectStore("collections").clear();
         // Attachment store
         db.createObjectStore("attachments", {
           keyPath: ["cid", "attachmentId"],
diff --git a/services/settings/dumps/blocklists/moz.build b/services/settings/dumps/blocklists/moz.build
index cdeb7e180c38..4ca18acd4ff6 100644
--- a/services/settings/dumps/blocklists/moz.build
+++ b/services/settings/dumps/blocklists/moz.build
@@ -10,7 +10,6 @@ with Files("**"):
 # The addons blocklist is also in mobile/android/installer/package-manifest.in
 FINAL_TARGET_FILES.defaults.settings.blocklists += [
     "addons-bloomfilters.json",
-    "addons.json",
     "gfx.json",
     "plugins.json",
 ]
diff --git a/services/settings/dumps/main/moz.build b/services/settings/dumps/main/moz.build
index 1d194acb7eb9..de5ea7a9efdb 100644
--- a/services/settings/dumps/main/moz.build
+++ b/services/settings/dumps/main/moz.build
@@ -3,17 +3,10 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 FINAL_TARGET_FILES.defaults.settings.main += [
-    "anti-tracking-url-decoration.json",
     "example.json",
     "hijack-blocklists.json",
     "language-dictionaries.json",
-    "password-recipes.json",
-    "search-config.json",
     "search-default-override-allowlist.json",
-    "search-telemetry.json",
-    "sites-classification.json",
-    "top-sites.json",
-    "url-classifier-skip-urls.json",
     "websites-with-shared-credential-backends.json",
 ]
 
diff --git a/services/settings/dumps/security-state/moz.build b/services/settings/dumps/security-state/moz.build
index 9133cd4e3ed6..0d250ecddbe8 100644
--- a/services/settings/dumps/security-state/moz.build
+++ b/services/settings/dumps/security-state/moz.build
@@ -3,7 +3,6 @@
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 FINAL_TARGET_FILES.defaults.settings["security-state"] += [
-    "intermediates.json",
     "onecrl.json",
 ]
 
diff --git a/toolkit/components/antitracking/antitracking.manifest b/toolkit/components/antitracking/antitracking.manifest
index 5eb37f9a3f99..872e6af07575 100644
--- a/toolkit/components/antitracking/antitracking.manifest
+++ b/toolkit/components/antitracking/antitracking.manifest
@@ -1 +1 @@
-category profile-after-change URLDecorationAnnotationsService @mozilla.org/tracking-url-decoration-service;1 process=main
+# category profile-after-change URLDecorationAnnotationsService @mozilla.org/tracking-url-decoration-service;1 process=main
diff --git a/toolkit/components/antitracking/components.conf b/toolkit/components/antitracking/components.conf
index c5e21b06156b..53db083e394c 100644
--- a/toolkit/components/antitracking/components.conf
+++ b/toolkit/components/antitracking/components.conf
@@ -11,13 +11,6 @@ Classes = [
         'jsm': 'resource://gre/modules/TrackingDBService.jsm',
         'constructor': 'TrackingDBService',
     },
-    {
-        'cid': '{5874af6d-5719-4e1b-b155-ef4eae7fcb32}',
-        'contract_ids': ['@mozilla.org/tracking-url-decoration-service;1'],
-        'jsm': 'resource://gre/modules/URLDecorationAnnotationsService.jsm',
-        'constructor': 'URLDecorationAnnotationsService',
-        'processes': ProcessSelector.MAIN_PROCESS_ONLY,
-    },
     {
         'cid': '{90d1fd17-2018-4e16-b73c-a04a26fa6dd4}',
         'contract_ids': ['@mozilla.org/purge-tracker-service;1'],
diff --git a/toolkit/components/search/SearchService.jsm b/toolkit/components/search/SearchService.jsm
index 57c77214d319..d111690894b0 100644
--- a/toolkit/components/search/SearchService.jsm
+++ b/toolkit/components/search/SearchService.jsm
@@ -250,8 +250,6 @@ SearchService.prototype = {
       // See if we have a settings file so we don't have to parse a bunch of XML.
       let settings = await this._settings.get();
 
-      this._setupRemoteSettings().catch(Cu.reportError);
-
       await this._loadEngines(settings);
 
       // If we've got this far, but the application is now shutting down,





More information about the tor-commits mailing list