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

sysrqb at torproject.org sysrqb at torproject.org
Fri Jul 9 02:28:01 UTC 2021


commit 57f996bc728486fe869ea9bd65a13df9fc1aae8e
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.
---
 .../url-classifier/UrlClassifierFeatureBase.cpp    |  2 +-
 netwerk/url-classifier/components.conf             |  6 ------
 security/manager/ssl/RemoteSecuritySettings.jsm    | 22 ++++++++++++++++++++++
 services/settings/IDBHelpers.jsm                   |  4 ++++
 services/settings/dumps/blocklists/moz.build       |  1 -
 services/settings/dumps/main/moz.build             |  5 -----
 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 --
 10 files changed, 28 insertions(+), 24 deletions(-)

diff --git a/netwerk/url-classifier/UrlClassifierFeatureBase.cpp b/netwerk/url-classifier/UrlClassifierFeatureBase.cpp
index 9bc7fc5d6e9a..3fb3b74a4f08 100644
--- a/netwerk/url-classifier/UrlClassifierFeatureBase.cpp
+++ b/netwerk/url-classifier/UrlClassifierFeatureBase.cpp
@@ -76,7 +76,7 @@ void UrlClassifierFeatureBase::InitializePreferences() {
 
   nsCOMPtr<nsIUrlClassifierSkipListService> skipListService =
       do_GetService("@mozilla.org/url-classifier/skip-list-service;1");
-  if (NS_WARN_IF(!skipListService)) {
+  if (!skipListService) {
     return;
   }
 
diff --git a/netwerk/url-classifier/components.conf b/netwerk/url-classifier/components.conf
index 7f49d94b6488..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/skip-list-service;1'],
-        'jsm': 'resource://gre/modules/UrlClassifierSkipListService.jsm',
-        'constructor': 'UrlClassifierSkipListService',
-    },
 ]
diff --git a/security/manager/ssl/RemoteSecuritySettings.jsm b/security/manager/ssl/RemoteSecuritySettings.jsm
index 199eeb5b58e1..96d6a7a2de48 100644
--- a/security/manager/ssl/RemoteSecuritySettings.jsm
+++ b/security/manager/ssl/RemoteSecuritySettings.jsm
@@ -350,6 +350,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),
       {
@@ -379,6 +389,7 @@ class IntermediatePreloads {
       );
       return;
     }
+    this.maybeInit();
 
     // Download attachments that are awaiting download, up to a max.
     const maxDownloadsPerRun = Services.prefs.getIntPref(
@@ -704,6 +715,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),
       {
@@ -729,6 +750,7 @@ class CRLiteFilters {
       );
       return;
     }
+    this.maybeInit();
     let current = await this.client.db.list();
     let fullFilters = current.filter(filter => !filter.incremental);
     if (fullFilters.length < 1) {
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 1683ab6aafa4..dd0bad30f19a 100644
--- a/services/settings/dumps/blocklists/moz.build
+++ b/services/settings/dumps/blocklists/moz.build
@@ -9,7 +9,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 3628fa00b5e6..e25fc4214042 100644
--- a/services/settings/dumps/main/moz.build
+++ b/services/settings/dumps/main/moz.build
@@ -3,15 +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',
-    'onboarding.json',
-    'search-config.json',
     'search-default-override-allowlist.json',
-    'sites-classification.json',
-    'url-classifier-skip-urls.json',
 ]
 
 if CONFIG['MOZ_BUILD_APP'] == 'browser':
diff --git a/services/settings/dumps/security-state/moz.build b/services/settings/dumps/security-state/moz.build
index d8f8227a0278..37410d0fb054 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 ddd824522c16..cd46ed1046d5 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 608f3c475458..23cb3daa9fac 100644
--- a/toolkit/components/search/SearchService.jsm
+++ b/toolkit/components/search/SearchService.jsm
@@ -573,8 +573,6 @@ SearchService.prototype = {
         )
         .finally(() => (this._ensureKnownRegionPromise = null));
 
-      this._setupRemoteSettings().catch(Cu.reportError);
-
       await this._loadEngines(cache);
 
       // If we've got this far, but the application is now shutting down,





More information about the tor-commits mailing list