tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit ecfb0b21d71b05b3920a5d63e63731c23a315e32
parent 90b262c2dc5515c9153e0f681a560f4e7cbee503
Author: Alex Catarineu <acat@torproject.org>
Date:   Wed, 16 Oct 2019 23:01:12 +0200

BB 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.

Diffstat:
Mbrowser/components/search/SERPCategorization.sys.mjs | 2++
Mbrowser/components/search/SearchSERPTelemetry.sys.mjs | 5+++--
Mnetwerk/url-classifier/components.conf | 3---
Msecurity/manager/ssl/RemoteSecuritySettings.sys.mjs | 23+++++++++++++++++++++++
Mservices/settings/IDBHelpers.sys.mjs | 4++++
Mservices/settings/dumps/main/moz.build | 108-------------------------------------------------------------------------------
Mservices/settings/servicesSettings.manifest | 2+-
Mtoolkit/components/antitracking/antitracking.manifest | 2+-
Mtoolkit/components/antitracking/components.conf | 7-------
Mtoolkit/components/search/SearchService.sys.mjs | 5+++++
10 files changed, 39 insertions(+), 122 deletions(-)

diff --git a/browser/components/search/SERPCategorization.sys.mjs b/browser/components/search/SERPCategorization.sys.mjs @@ -913,6 +913,8 @@ class DomainToCategoriesMap { * reuse the store if the version in each record matches the store. */ async #setupClientAndStore() { + return; + // eslint-disable-next-line no-unreachable if (this.#client && !this.empty) { return; } diff --git a/browser/components/search/SearchSERPTelemetry.sys.mjs b/browser/components/search/SearchSERPTelemetry.sys.mjs @@ -310,7 +310,8 @@ class TelemetryHandler { * can be tracked. */ async init() { - if (this._initialized) { + // eslint-disable-next-line no-constant-condition + if (this._initialized || true) { return; } @@ -1138,7 +1139,7 @@ class TelemetryHandler { * Returns a provider or undefined if no provider was found for the url. */ _getProviderInfoForURL(url) { - return this._searchProviderInfo.find(info => + return this._searchProviderInfo?.find(info => info.searchPageRegexp.test(url) ); } diff --git a/netwerk/url-classifier/components.conf b/netwerk/url-classifier/components.conf @@ -18,9 +18,6 @@ Classes = [ 'contract_ids': ['@mozilla.org/url-classifier/exception-list-service;1'], 'esModule': 'resource://gre/modules/UrlClassifierExceptionListService.sys.mjs', 'constructor': 'UrlClassifierExceptionListService', - 'categories': { - 'idle-daily': 'UrlClassifierExceptionListService' - } }, { 'cid': '{8753A413-3ED6-4A61-A1DC-B31A7E69B796}', diff --git a/security/manager/ssl/RemoteSecuritySettings.sys.mjs b/security/manager/ssl/RemoteSecuritySettings.sys.mjs @@ -245,6 +245,16 @@ export var RemoteSecuritySettings = { class IntermediatePreloads { constructor() { + this.maybeInit(); + } + + maybeInit() { + if ( + this.client || + !Services.prefs.getBoolPref(INTERMEDIATES_ENABLED_PREF, true) + ) { + return; + } this.client = RemoteSettings("intermediates", { bucketName: SECURITY_STATE_BUCKET, signerName: SECURITY_STATE_SIGNER, @@ -270,6 +280,7 @@ class IntermediatePreloads { ); return; } + this.maybeInit(); // Download attachments that are awaiting download, up to a max. const maxDownloadsPerRun = Services.prefs.getIntPref( @@ -507,6 +518,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("cert-revocations", { bucketName: SECURITY_STATE_BUCKET, signerName: SECURITY_STATE_SIGNER, @@ -573,6 +594,8 @@ class CRLiteFilters { return; } + this.maybeInit(); + let hasPriorFilter = await hasPriorData( Ci.nsICertStorage.DATA_TYPE_CRLITE_FILTER_FULL ); diff --git a/services/settings/IDBHelpers.sys.mjs b/services/settings/IDBHelpers.sys.mjs @@ -180,6 +180,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/main/moz.build b/services/settings/dumps/main/moz.build @@ -6,10 +6,6 @@ if CONFIG["MOZ_BUILD_APP"] == "browser": # These collections are only referenced from browser/ FINAL_TARGET_FILES.defaults.settings.main += [ "language-dictionaries.json", - "search-telemetry-v2.json", - "sites-classification.json", - "top-sites.json", - "urlbar-persisted-search-terms.json", ] # These collections are referenced in toolkit/ or other core code, however @@ -24,113 +20,9 @@ if not CONFIG["MOZ_BUILD_APP"].startswith("mobile/"): "hijack-blocklists.json", "moz-essential-domain-fallbacks.json", "password-rules.json", - "search-config-icons.json", - "search-config-overrides-v2.json", - "search-config-v2.json", "search-default-override-allowlist.json", "translations-models.json", "translations-wasm.json", - "url-classifier-skip-urls.json", "url-parser-default-unknown-schemes-interventions.json", "websites-with-shared-credential-backends.json", ] - -# These collections are referenced in toolkit/ or other core code. -FINAL_TARGET_FILES.defaults.settings.main += [ - "password-recipes.json", -] - -# These search config icons only apply to desktop. -if CONFIG["MOZ_BUILD_APP"] == "browser": - FINAL_TARGET_FILES.defaults.settings.main["search-config-icons"] += [ - "search-config-icons/001500a9-1a6c-3f5a-ba15-a5f5a075d256", - "search-config-icons/001500a9-1a6c-3f5a-ba15-a5f5a075d256.meta.json", - "search-config-icons/06cf7432-efd7-f244-927b-5e423005e1ea", - "search-config-icons/06cf7432-efd7-f244-927b-5e423005e1ea.meta.json", - "search-config-icons/0d7668a8-c3f4-cfee-cbc8-536511528937", - "search-config-icons/0d7668a8-c3f4-cfee-cbc8-536511528937.meta.json", - "search-config-icons/0eec5640-6fde-d6fe-322a-c72c6d5bd5a2", - "search-config-icons/0eec5640-6fde-d6fe-322a-c72c6d5bd5a2.meta.json", - "search-config-icons/101ce01d-2691-b729-7f16-9d389803384b", - "search-config-icons/101ce01d-2691-b729-7f16-9d389803384b.meta.json", - "search-config-icons/177aba42-9bed-4078-e36b-580e8794cd7f", - "search-config-icons/177aba42-9bed-4078-e36b-580e8794cd7f.meta.json", - "search-config-icons/25de0352-aabb-d31f-15f7-bf9299fb004c", - "search-config-icons/25de0352-aabb-d31f-15f7-bf9299fb004c.meta.json", - "search-config-icons/2bbe48f4-d3b8-c9e0-86e3-a54c37ec3335", - "search-config-icons/2bbe48f4-d3b8-c9e0-86e3-a54c37ec3335.meta.json", - "search-config-icons/2e835b0e-9709-d1bb-9725-87f59f3445ca", - "search-config-icons/2e835b0e-9709-d1bb-9725-87f59f3445ca.meta.json", - "search-config-icons/32d26d19-aeb0-5c01-32e8-f8970be9246f", - "search-config-icons/32d26d19-aeb0-5c01-32e8-f8970be9246f.meta.json", - "search-config-icons/41f0d805-3775-4988-8d8c-5ad8ccd86d1c", - "search-config-icons/41f0d805-3775-4988-8d8c-5ad8ccd86d1c.meta.json", - "search-config-icons/47da97b5-600f-c450-fd15-a52bb2169c11", - "search-config-icons/47da97b5-600f-c450-fd15-a52bb2169c11.meta.json", - "search-config-icons/4e271681-3e0f-91ac-9750-03f665efc171", - "search-config-icons/4e271681-3e0f-91ac-9750-03f665efc171.meta.json", - "search-config-icons/50f6171f-8e7a-b41b-862e-f97397038fb2", - "search-config-icons/50f6171f-8e7a-b41b-862e-f97397038fb2.meta.json", - "search-config-icons/5ded611d-44b2-dc46-fd67-fb116888d75d", - "search-config-icons/5ded611d-44b2-dc46-fd67-fb116888d75d.meta.json", - "search-config-icons/5e03d6f4-6ee9-8bc8-cf22-7a5f2cf55c41", - "search-config-icons/5e03d6f4-6ee9-8bc8-cf22-7a5f2cf55c41.meta.json", - "search-config-icons/6d10d702-7bd6-1452-90a5-3df665a38f66", - "search-config-icons/6d10d702-7bd6-1452-90a5-3df665a38f66.meta.json", - "search-config-icons/6f4da442-d31e-28f8-03af-797d16bbdd27", - "search-config-icons/6f4da442-d31e-28f8-03af-797d16bbdd27.meta.json", - "search-config-icons/70fdd651-6c50-b7bb-09ec-7e85da259173", - "search-config-icons/70fdd651-6c50-b7bb-09ec-7e85da259173.meta.json", - "search-config-icons/74793ce1-a918-a5eb-d3c0-2aadaff3c88c", - "search-config-icons/74793ce1-a918-a5eb-d3c0-2aadaff3c88c.meta.json", - "search-config-icons/7bf4ca37-e2b8-4d31-a1c3-979bc0e85131", - "search-config-icons/7bf4ca37-e2b8-4d31-a1c3-979bc0e85131.meta.json", - "search-config-icons/7efbed51-813c-581d-d8d3-f8758434e451", - "search-config-icons/7efbed51-813c-581d-d8d3-f8758434e451.meta.json", - "search-config-icons/84bb4962-e571-227a-9ef6-2ac5f2aac361", - "search-config-icons/84bb4962-e571-227a-9ef6-2ac5f2aac361.meta.json", - "search-config-icons/87ac4cde-f581-398b-1e32-eb4079183b36", - "search-config-icons/87ac4cde-f581-398b-1e32-eb4079183b36.meta.json", - "search-config-icons/8831ce10-b1e4-6eb4-4975-83c67457288e", - "search-config-icons/8831ce10-b1e4-6eb4-4975-83c67457288e.meta.json", - "search-config-icons/890de5c4-0941-a116-473a-5d240e79497a", - "search-config-icons/890de5c4-0941-a116-473a-5d240e79497a.meta.json", - "search-config-icons/91a9672d-e945-8e1e-0996-aefdb0190716", - "search-config-icons/91a9672d-e945-8e1e-0996-aefdb0190716.meta.json", - "search-config-icons/96327a73-c433-5eb4-a16d-b090cadfb80b", - "search-config-icons/96327a73-c433-5eb4-a16d-b090cadfb80b.meta.json", - "search-config-icons/9802e63d-05ec-48ba-93f9-746e0981ad98", - "search-config-icons/9802e63d-05ec-48ba-93f9-746e0981ad98.meta.json", - "search-config-icons/9d96547d-7575-49ca-8908-1e046b8ea90e", - "search-config-icons/9d96547d-7575-49ca-8908-1e046b8ea90e.meta.json", - "search-config-icons/a06db97d-1210-ea2e-5474-0e2f7d295bfd", - "search-config-icons/a06db97d-1210-ea2e-5474-0e2f7d295bfd.meta.json", - "search-config-icons/a06dc3fd-4bdb-41f3-2ebc-4cbed06a9bd3", - "search-config-icons/a06dc3fd-4bdb-41f3-2ebc-4cbed06a9bd3.meta.json", - "search-config-icons/a2c7d4e9-f770-51e1-0963-3c2c8401631d", - "search-config-icons/a2c7d4e9-f770-51e1-0963-3c2c8401631d.meta.json", - "search-config-icons/b64f09fd-52d1-c48e-af23-4ce918e7bf3b", - "search-config-icons/b64f09fd-52d1-c48e-af23-4ce918e7bf3b.meta.json", - "search-config-icons/b8ca5a94-8fff-27ad-6e00-96e244a32e21", - "search-config-icons/b8ca5a94-8fff-27ad-6e00-96e244a32e21.meta.json", - "search-config-icons/c411adc1-9661-4fb5-a4c1-8cfe74911943", - "search-config-icons/c411adc1-9661-4fb5-a4c1-8cfe74911943.meta.json", - "search-config-icons/cbf9e891-d079-2b28-5617-283450d463dd", - "search-config-icons/cbf9e891-d079-2b28-5617-283450d463dd.meta.json", - "search-config-icons/d87f251c-3e12-a8bf-e2d0-afd43d36c5f9", - "search-config-icons/d87f251c-3e12-a8bf-e2d0-afd43d36c5f9.meta.json", - "search-config-icons/e02f23df-8d48-2b1b-3b5c-6dd27302c61c", - "search-config-icons/e02f23df-8d48-2b1b-3b5c-6dd27302c61c.meta.json", - "search-config-icons/e718e983-09aa-e8f6-b25f-cd4b395d4785", - "search-config-icons/e718e983-09aa-e8f6-b25f-cd4b395d4785.meta.json", - "search-config-icons/e7547f62-187b-b641-d462-e54a3f813d9a", - "search-config-icons/e7547f62-187b-b641-d462-e54a3f813d9a.meta.json", - "search-config-icons/f312610a-ebfb-a106-ea92-fd643c5d3636", - "search-config-icons/f312610a-ebfb-a106-ea92-fd643c5d3636.meta.json", - "search-config-icons/fa0fc42c-d91d-fca7-34eb-806ff46062dc", - "search-config-icons/fa0fc42c-d91d-fca7-34eb-806ff46062dc.meta.json", - "search-config-icons/fca3e3ee-56cd-f474-dc31-307fd24a891d", - "search-config-icons/fca3e3ee-56cd-f474-dc31-307fd24a891d.meta.json", - "search-config-icons/fed4f021-ff3e-942a-010e-afa43fda2136", - "search-config-icons/fed4f021-ff3e-942a-010e-afa43fda2136.meta.json", - ] diff --git a/services/settings/servicesSettings.manifest b/services/settings/servicesSettings.manifest @@ -4,4 +4,4 @@ resource services-settings resource://gre/modules/services-settings/ # Schedule polling of remote settings changes # (default 6H, max 24H) # see syntax https://searchfox.org/mozilla-central/rev/cc280c4be94ff8cf64a27cc9b3d6831ffa49fa45/toolkit/components/timermanager/UpdateTimerManager.jsm#155 -category update-timer RemoteSettingsComponents @mozilla.org/services/settings;1,getService,services-settings-poll-changes,services.settings.poll_interval,21600,86400 +# category update-timer RemoteSettingsComponents @mozilla.org/services/settings;1,getService,services-settings-poll-changes,services.settings.poll_interval,21600,86400 diff --git 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 @@ -12,13 +12,6 @@ Classes = [ 'constructor': 'TrackingDBService', }, { - 'cid': '{5874af6d-5719-4e1b-b155-ef4eae7fcb32}', - 'contract_ids': ['@mozilla.org/tracking-url-decoration-service;1'], - 'esModule': 'resource://gre/modules/URLDecorationAnnotationsService.sys.mjs', - 'constructor': 'URLDecorationAnnotationsService', - 'processes': ProcessSelector.MAIN_PROCESS_ONLY, - }, - { 'cid': '{90d1fd17-2018-4e16-b73c-a04a26fa6dd4}', 'contract_ids': ['@mozilla.org/purge-tracker-service;1'], 'esModule': 'resource://gre/modules/PurgeTrackerService.sys.mjs', diff --git a/toolkit/components/search/SearchService.sys.mjs b/toolkit/components/search/SearchService.sys.mjs @@ -4,6 +4,7 @@ /* eslint no-shadow: error, mozilla/no-aArgs: error */ +import { AppConstants } from "resource://gre/modules/AppConstants.sys.mjs"; import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs"; const lazy = XPCOMUtils.declareLazy({ @@ -1802,6 +1803,10 @@ export class SearchService { * The event in the format received from RemoteSettings. */ async #handleIgnoreListUpdated(eventData) { + if (AppConstants.BASE_BROWSER_VERSION) { + return; + } + lazy.logConsole.debug("#handleIgnoreListUpdated"); const { data: { current },