Commit 15fd040d authored by Alex Catarineu's avatar Alex Catarineu
Browse files

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.
parent 851183a6
...@@ -78,7 +78,7 @@ void UrlClassifierFeatureBase::InitializePreferences() { ...@@ -78,7 +78,7 @@ void UrlClassifierFeatureBase::InitializePreferences() {
nsCOMPtr<nsIUrlClassifierExceptionListService> exceptionListService = nsCOMPtr<nsIUrlClassifierExceptionListService> exceptionListService =
do_GetService("@mozilla.org/url-classifier/exception-list-service;1"); do_GetService("@mozilla.org/url-classifier/exception-list-service;1");
if (NS_WARN_IF(!exceptionListService)) { if (!exceptionListService) {
return; return;
} }
......
...@@ -13,10 +13,4 @@ Classes = [ ...@@ -13,10 +13,4 @@ Classes = [
'constructor': 'mozilla::net::ChannelClassifierService::GetSingleton', 'constructor': 'mozilla::net::ChannelClassifierService::GetSingleton',
'headers': ['mozilla/net/ChannelClassifierService.h'], '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',
},
] ]
...@@ -350,6 +350,16 @@ var RemoteSecuritySettings = { ...@@ -350,6 +350,16 @@ var RemoteSecuritySettings = {
class IntermediatePreloads { class IntermediatePreloads {
constructor() { constructor() {
this.maybeInit();
}
maybeInit() {
if (
this.client ||
!Services.prefs.getBoolPref(INTERMEDIATES_ENABLED_PREF, true)
) {
return;
}
this.client = RemoteSettings( this.client = RemoteSettings(
Services.prefs.getCharPref(INTERMEDIATES_COLLECTION_PREF), Services.prefs.getCharPref(INTERMEDIATES_COLLECTION_PREF),
{ {
...@@ -379,6 +389,7 @@ class IntermediatePreloads { ...@@ -379,6 +389,7 @@ class IntermediatePreloads {
); );
return; return;
} }
this.maybeInit();
// Download attachments that are awaiting download, up to a max. // Download attachments that are awaiting download, up to a max.
const maxDownloadsPerRun = Services.prefs.getIntPref( const maxDownloadsPerRun = Services.prefs.getIntPref(
...@@ -709,6 +720,16 @@ function compareFilters(filterA, filterB) { ...@@ -709,6 +720,16 @@ function compareFilters(filterA, filterB) {
class CRLiteFilters { class CRLiteFilters {
constructor() { constructor() {
this.maybeInit();
}
maybeInit() {
if (
this.client ||
!Services.prefs.getBoolPref(CRLITE_FILTERS_ENABLED_PREF, true)
) {
return;
}
this.client = RemoteSettings( this.client = RemoteSettings(
Services.prefs.getCharPref(CRLITE_FILTERS_COLLECTION_PREF), Services.prefs.getCharPref(CRLITE_FILTERS_COLLECTION_PREF),
{ {
...@@ -734,6 +755,7 @@ class CRLiteFilters { ...@@ -734,6 +755,7 @@ class CRLiteFilters {
); );
return; return;
} }
this.maybeInit();
let current = await this.client.db.list(); let current = await this.client.db.list();
let fullFilters = current.filter(filter => !filter.incremental); let fullFilters = current.filter(filter => !filter.incremental);
if (fullFilters.length < 1) { if (fullFilters.length < 1) {
......
...@@ -188,6 +188,10 @@ async function openIDB(allowUpgrades = true) { ...@@ -188,6 +188,10 @@ async function openIDB(allowUpgrades = true) {
}); });
} }
if (event.oldVersion < 3) { 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 // Attachment store
db.createObjectStore("attachments", { db.createObjectStore("attachments", {
keyPath: ["cid", "attachmentId"], keyPath: ["cid", "attachmentId"],
......
...@@ -8,15 +8,9 @@ with Files('**'): ...@@ -8,15 +8,9 @@ with Files('**'):
BUG_COMPONENT = ('Toolkit', 'Blocklist Implementation') BUG_COMPONENT = ('Toolkit', 'Blocklist Implementation')
# The addons blocklist is also in mobile/android/installer/package-manifest.in # The addons blocklist is also in mobile/android/installer/package-manifest.in
FINAL_TARGET_FILES.defaults.settings.blocklists += ['addons-bloomfilters.json', FINAL_TARGET_FILES.defaults.settings.blocklists += ['addons.json',
'addons.json',
'gfx.json', 'gfx.json',
'plugins.json'] 'plugins.json']
FINAL_TARGET_FILES.defaults.settings.blocklists['addons-bloomfilters'] += [
'addons-bloomfilters/addons-mlbf.bin',
'addons-bloomfilters/addons-mlbf.bin.meta.json'
]
if CONFIG['MOZ_BUILD_APP'] == 'browser': if CONFIG['MOZ_BUILD_APP'] == 'browser':
DIST_SUBDIR = 'browser' DIST_SUBDIR = 'browser'
...@@ -3,16 +3,10 @@ ...@@ -3,16 +3,10 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
FINAL_TARGET_FILES.defaults.settings.main += [ FINAL_TARGET_FILES.defaults.settings.main += [
'anti-tracking-url-decoration.json',
'example.json', 'example.json',
'hijack-blocklists.json', 'hijack-blocklists.json',
'language-dictionaries.json', 'language-dictionaries.json',
'onboarding.json',
'search-config.json',
'search-default-override-allowlist.json', 'search-default-override-allowlist.json',
'sites-classification.json',
'top-sites.json',
'url-classifier-skip-urls.json',
] ]
if CONFIG['MOZ_BUILD_APP'] == 'browser': if CONFIG['MOZ_BUILD_APP'] == 'browser':
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
FINAL_TARGET_FILES.defaults.settings['security-state'] += [ FINAL_TARGET_FILES.defaults.settings['security-state'] += [
'intermediates.json',
'onecrl.json', 'onecrl.json',
] ]
......
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
...@@ -11,13 +11,6 @@ Classes = [ ...@@ -11,13 +11,6 @@ Classes = [
'jsm': 'resource://gre/modules/TrackingDBService.jsm', 'jsm': 'resource://gre/modules/TrackingDBService.jsm',
'constructor': 'TrackingDBService', '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}', 'cid': '{90d1fd17-2018-4e16-b73c-a04a26fa6dd4}',
'contract_ids': ['@mozilla.org/purge-tracker-service;1'], 'contract_ids': ['@mozilla.org/purge-tracker-service;1'],
......
...@@ -549,8 +549,6 @@ SearchService.prototype = { ...@@ -549,8 +549,6 @@ SearchService.prototype = {
.catch(ex => logConsole.error("_init: failure determining region:", ex)) .catch(ex => logConsole.error("_init: failure determining region:", ex))
.finally(() => (this._ensureKnownRegionPromise = null)); .finally(() => (this._ensureKnownRegionPromise = null));
this._setupRemoteSettings().catch(Cu.reportError);
await this._loadEngines(cache); await this._loadEngines(cache);
// If we've got this far, but the application is now shutting down, // If we've got this far, but the application is now shutting down,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment