summaryrefslogtreecommitdiffstats
path: root/comm/mail/app
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /comm/mail/app
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--comm/mail/app-system-headers.mozbuild18
-rw-r--r--comm/mail/app.mozbuild21
-rw-r--r--comm/mail/app/Makefile.in142
-rw-r--r--comm/mail/app/icons/gtk/calendar-alarm-dialog.pngbin0 -> 560 bytes
-rw-r--r--comm/mail/app/icons/gtk/calendar-general-dialog.pngbin0 -> 696 bytes
-rw-r--r--comm/mail/app/icons/gtk/msgcomposeWindow16.pngbin0 -> 453 bytes
-rw-r--r--comm/mail/app/icons/gtk/msgcomposeWindow24.pngbin0 -> 719 bytes
-rw-r--r--comm/mail/app/icons/gtk/msgcomposeWindow32.pngbin0 -> 872 bytes
-rw-r--r--comm/mail/app/icons/gtk/msgcomposeWindow48.pngbin0 -> 1408 bytes
-rw-r--r--comm/mail/app/icons/windows/calendar-alarm-dialog.icobin0 -> 17542 bytes
-rw-r--r--comm/mail/app/icons/windows/calendar-general-dialog.icobin0 -> 17542 bytes
-rw-r--r--comm/mail/app/icons/windows/msgcomposeWindow.icobin0 -> 17542 bytes
-rw-r--r--comm/mail/app/macbuild/Contents/Info.plist.in143
-rw-r--r--comm/mail/app/macbuild/Contents/MacOS-files-copy.in11
-rw-r--r--comm/mail/app/macbuild/Contents/MacOS-files.in18
-rw-r--r--comm/mail/app/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in5
-rw-r--r--comm/mail/app/macbuild/Contents/moz.build26
-rw-r--r--comm/mail/app/macversion.py44
-rw-r--r--comm/mail/app/module.ver11
-rw-r--r--comm/mail/app/moz.build132
-rw-r--r--comm/mail/app/no-pie/NoPie.c26
-rw-r--r--comm/mail/app/no-pie/moz.build24
-rw-r--r--comm/mail/app/nsMailApp.cpp402
-rw-r--r--comm/mail/app/permissions10
-rw-r--r--comm/mail/app/profile/all-thunderbird.js1428
-rw-r--r--comm/mail/app/profile/channel-prefs.js5
-rw-r--r--comm/mail/app/settings/dumps/moz.build7
-rw-r--r--comm/mail/app/settings/dumps/thunderbird/anti-tracking-url-decoration.json11
-rw-r--r--comm/mail/app/settings/dumps/thunderbird/hijack-blocklists.json59
-rw-r--r--comm/mail/app/settings/dumps/thunderbird/moz.build16
-rw-r--r--comm/mail/app/settings/dumps/thunderbird/password-recipes.json4
-rw-r--r--comm/mail/app/settings/dumps/thunderbird/records1
-rw-r--r--comm/mail/app/settings/dumps/thunderbird/search-config.json2152
-rw-r--r--comm/mail/app/settings/dumps/thunderbird/url-classifier-skip-urls.json4
-rw-r--r--comm/mail/app/settings/moz.build10
-rw-r--r--comm/mail/app/splash.rc24
-rw-r--r--comm/mail/app/thunderbird.exe.manifest47
37 files changed, 4801 insertions, 0 deletions
diff --git a/comm/mail/app-system-headers.mozbuild b/comm/mail/app-system-headers.mozbuild
new file mode 100644
index 0000000000..78e3a19d51
--- /dev/null
+++ b/comm/mail/app-system-headers.mozbuild
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Use this file to define additional system header files that the
+# application requires. This is necessary to allow symbols defined in
+# those header files to be loaded from external library files.
+
+# system_headers += [
+# 'file1.h',
+# 'file2.h',
+# ]
+
+if CONFIG["MOZ_SYSTEM_ICU"]:
+ system_headers += [
+ "unicode/strenum.h",
+ "unicode/vtzone.h",
+ ]
diff --git a/comm/mail/app.mozbuild b/comm/mail/app.mozbuild
new file mode 100644
index 0000000000..7c6fc3240b
--- /dev/null
+++ b/comm/mail/app.mozbuild
@@ -0,0 +1,21 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Note that paths in this file are relative to the top directory (m-c)
+
+GENERATED_FILES["source-repo.h"].script = "comm/build/source_repos.py:source_repo_header"
+
+include("/toolkit/toolkit.mozbuild")
+
+# Never add dirs after /comm/mail because they apparently won't get
+# packaged properly on Mac.
+DIRS += [
+ "/comm/mailnews",
+ "/comm/mail/components",
+ "/%s" % CONFIG["MOZ_BRANDING_DIRECTORY"],
+ "/comm/calendar",
+ "/comm/chat",
+ "/comm/mail",
+]
diff --git a/comm/mail/app/Makefile.in b/comm/mail/app/Makefile.in
new file mode 100644
index 0000000000..9b9e86d1a2
--- /dev/null
+++ b/comm/mail/app/Makefile.in
@@ -0,0 +1,142 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+dist_dest = $(DIST)/$(MOZ_MACBUNDLE_NAME)
+
+AB_CD = $(MOZ_UI_LOCALE)
+
+GRE_MILESTONE = $(shell $(PYTHON3) $(topsrcdir)/config/printconfigsetting.py $(DIST)/bin/platform.ini Build Milestone)
+MOZ_BUILDID = $(shell $(PYTHON3) $(topsrcdir)/config/printconfigsetting.py $(DIST)/bin/platform.ini Build BuildID)
+
+# Build a binary bootstrapping with XRE_main
+
+ifndef MOZ_WINCONSOLE
+ifdef MOZ_DEBUG
+MOZ_WINCONSOLE = 1
+else
+MOZ_WINCONSOLE = 0
+endif
+endif
+
+include $(topsrcdir)/config/config.mk
+
+# If we are trying to show an error dialog about the lack of SSE2 support,
+# make sure that code itself doesn't use SSE2.
+ifdef MOZ_LINUX_32_SSE2_STARTUP_ERROR
+CXX := $(filter-out -march=% -msse -msse2 -mfpmath=sse,$(CXX))
+CXX += -march=pentiumpro
+endif
+
+objdir = $(topobjdir)/comm/mail/app
+
+include $(topsrcdir)/config/rules.mk
+
+ifneq ($(OS_ARCH),WINNT)
+ifdef COMPILE_ENVIRONMENT
+ifndef MOZ_NO_PIE_COMPAT
+libs::
+ cp -p $(DIST)/bin/$(MOZ_APP_NAME)$(BIN_SUFFIX) $(DIST)/bin/$(MOZ_APP_NAME)-bin$(BIN_SUFFIX)
+endif
+endif
+
+GARBAGE += $(addprefix $(DIST)/bin/defaults/pref/, all.js all-thunderbird.js mailnews.js)
+endif # ! WinNT
+
+ifeq (gtk,$(MOZ_WIDGET_TOOLKIT))
+ICON_SUFFIX=.png
+DESKTOP_ICONS = \
+ msgcomposeWindow16 \
+ msgcomposeWindow24 \
+ msgcomposeWindow32 \
+ msgcomposeWindow48 \
+ calendar-alarm-dialog \
+ calendar-general-dialog \
+ $(NULL)
+
+DESKTOP_ICON_FILES = $(addsuffix $(ICON_SUFFIX), $(DESKTOP_ICONS))
+
+libs:: $(addprefix $(srcdir)/icons/$(MOZ_WIDGET_TOOLKIT)/,$(DESKTOP_ICON_FILES))
+ $(INSTALL) $(IFLAGS1) $^ $(DIST)/bin/chrome/icons/default
+endif
+
+ifneq (,$(filter windows,$(MOZ_WIDGET_TOOLKIT)))
+ICON_SUFFIX=.ico
+
+DESKTOP_ICONS = \
+ msgcomposeWindow \
+ calendar-alarm-dialog \
+ calendar-general-dialog \
+ $(NULL)
+
+BRANDED_ICONS = \
+ messengerWindow \
+ newmail \
+ $(NULL)
+
+DESKTOP_ICON_FILES = $(addsuffix $(ICON_SUFFIX), $(DESKTOP_ICONS))
+BRANDED_ICON_FILES = $(addsuffix $(ICON_SUFFIX), $(BRANDED_ICONS))
+
+libs:: $(addprefix $(srcdir)/icons/$(MOZ_WIDGET_TOOLKIT)/,$(DESKTOP_ICON_FILES))
+ $(INSTALL) $(IFLAGS1) $^ $(DIST)/bin/chrome/icons/default
+
+libs:: $(addprefix $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/, $(BRANDED_ICON_FILES))
+ $(INSTALL) $(IFLAGS1) $^ $(DIST)/bin/chrome/icons/default
+endif
+
+# channel-prefs.js is handled separate from other prefs due to bug 756325
+libs:: $(srcdir)/profile/channel-prefs.js
+ $(NSINSTALL) -D $(DIST)/bin/defaults/pref
+ $(call py_action,preprocessor,-Fsubstitution $(PREF_PPFLAGS) $(ACDEFINES) $^ -o $(DIST)/bin/defaults/pref/channel-prefs.js)
+
+ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
+
+MAC_APP_NAME = $(MOZ_APP_DISPLAYNAME)
+
+ifdef MOZ_DEBUG
+MAC_APP_NAME := $(MAC_APP_NAME)Debug
+endif
+
+AB_CD = $(MOZ_UI_LOCALE)
+
+ifeq (zh-TW,$(AB_CD))
+LPROJ_ROOT := $(subst -,_,$(AB_CD))
+else
+LPROJ_ROOT := $(firstword $(subst -, ,$(AB_CD)))
+endif
+LPROJ := Contents/Resources/$(LPROJ_ROOT).lproj
+
+clean clobber repackage::
+ $(RM) -r '$(dist_dest)'
+
+MAC_BUNDLE_VERSION = $(shell $(PYTHON3) $(srcdir)/macversion.py --version=$(MOZ_APP_VERSION) --buildid=$(DEPTH)/buildid.h)
+
+.PHONY: repackage
+tools repackage:: $(DIST)/bin/$(MOZ_APP_NAME) $(objdir)/macbuild/Contents/MacOS-files.txt
+ rm -rf $(dist_dest)
+ $(MKDIR) -p '$(dist_dest)/Contents/MacOS'
+ $(MKDIR) -p '$(dist_dest)/$(LPROJ)'
+ rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents '$(dist_dest)' --exclude English.lproj
+ rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents/Resources/English.lproj/ '$(dist_dest)/$(LPROJ)'
+ $(call py_action,preprocessor,-Fsubstitution -DAPP_VERSION='$(MOZ_APP_VERSION)' -DAPP_VERSION_DISPLAY='$(MOZ_APP_VERSION_DISPLAY)' -DMOZ_APP_NAME='$(MOZ_APP_NAME)' -DMAC_APP_NAME='$(MAC_APP_NAME)' -DMOZ_MACBUNDLE_ID='$(MOZ_MACBUNDLE_ID)' -DMAC_BUNDLE_VERSION='$(MAC_BUNDLE_VERSION)' -DMOZ_DEVELOPER_REPO_PATH='$(topsrcdir)' -DMOZ_DEVELOPER_OBJ_PATH='$(topobjdir)' $(srcdir)/macbuild/Contents/Info.plist.in -o '$(dist_dest)/Contents/Info.plist')
+ $(call py_action,preprocessor,-Fsubstitution --output-encoding utf-16 -DMAC_APP_NAME='$(MAC_APP_NAME)' $(srcdir)/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in -o '$(dist_dest)/$(LPROJ)/InfoPlist.strings')
+ rsync -a --exclude-from='$(objdir)/macbuild/Contents/MacOS-files.txt' $(DIST)/bin/ '$(dist_dest)/Contents/Resources'
+ rsync -a --include-from='$(objdir)/macbuild/Contents/MacOS-files.txt' --exclude '*' $(DIST)/bin/ '$(dist_dest)/Contents/MacOS'
+ # MacOS-files-copy.in is a list of files that should be copies rather
+ # than symlinks and placed in .app/Contents/MacOS.
+ rsync -aL --include-from='$(srcdir)/macbuild/Contents/MacOS-files-copy.in' --exclude '*' $(DIST)/bin/ '$(dist_dest)/Contents/MacOS'
+ $(RM) '$(dist_dest)/Contents/MacOS/$(MOZ_APP_NAME)'
+ rsync -aL $(DIST)/bin/$(MOZ_APP_NAME) '$(dist_dest)/Contents/MacOS'
+ $(MKDIR) -p '$(dist_dest)/Contents/Library/Spotlight'
+ rsync -a --copy-unsafe-links $(DIST)/package/thunderbird.mdimporter '$(dist_dest)/Contents/Library/Spotlight'
+ cp -RL $(topsrcdir)/$(MOZ_BRANDING_DIRECTORY)/thunderbird.icns '$(dist_dest)/Contents/Resources/thunderbird.icns'
+ $(MKDIR) -p '$(dist_dest)/Contents/Library/LaunchServices'
+ifdef MOZ_UPDATER
+ mv -f '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater' '$(dist_dest)/Contents/Library/LaunchServices'
+ ln -s ../../../../Library/LaunchServices/org.mozilla.updater '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater'
+endif
+ printf APPLMOZM > '$(dist_dest)/Contents/PkgInfo'
+endif
+
+# Note that anything you do to dist/ down here isn't going to make it into the
+# Mac build, since it's already been copied over to the .app, above.
diff --git a/comm/mail/app/icons/gtk/calendar-alarm-dialog.png b/comm/mail/app/icons/gtk/calendar-alarm-dialog.png
new file mode 100644
index 0000000000..a017151d0e
--- /dev/null
+++ b/comm/mail/app/icons/gtk/calendar-alarm-dialog.png
Binary files differ
diff --git a/comm/mail/app/icons/gtk/calendar-general-dialog.png b/comm/mail/app/icons/gtk/calendar-general-dialog.png
new file mode 100644
index 0000000000..83f327e76f
--- /dev/null
+++ b/comm/mail/app/icons/gtk/calendar-general-dialog.png
Binary files differ
diff --git a/comm/mail/app/icons/gtk/msgcomposeWindow16.png b/comm/mail/app/icons/gtk/msgcomposeWindow16.png
new file mode 100644
index 0000000000..a82a61f515
--- /dev/null
+++ b/comm/mail/app/icons/gtk/msgcomposeWindow16.png
Binary files differ
diff --git a/comm/mail/app/icons/gtk/msgcomposeWindow24.png b/comm/mail/app/icons/gtk/msgcomposeWindow24.png
new file mode 100644
index 0000000000..be3a293146
--- /dev/null
+++ b/comm/mail/app/icons/gtk/msgcomposeWindow24.png
Binary files differ
diff --git a/comm/mail/app/icons/gtk/msgcomposeWindow32.png b/comm/mail/app/icons/gtk/msgcomposeWindow32.png
new file mode 100644
index 0000000000..29dd4ee0b0
--- /dev/null
+++ b/comm/mail/app/icons/gtk/msgcomposeWindow32.png
Binary files differ
diff --git a/comm/mail/app/icons/gtk/msgcomposeWindow48.png b/comm/mail/app/icons/gtk/msgcomposeWindow48.png
new file mode 100644
index 0000000000..52bf9ac2a5
--- /dev/null
+++ b/comm/mail/app/icons/gtk/msgcomposeWindow48.png
Binary files differ
diff --git a/comm/mail/app/icons/windows/calendar-alarm-dialog.ico b/comm/mail/app/icons/windows/calendar-alarm-dialog.ico
new file mode 100644
index 0000000000..07ad8e6b6c
--- /dev/null
+++ b/comm/mail/app/icons/windows/calendar-alarm-dialog.ico
Binary files differ
diff --git a/comm/mail/app/icons/windows/calendar-general-dialog.ico b/comm/mail/app/icons/windows/calendar-general-dialog.ico
new file mode 100644
index 0000000000..81c02242cb
--- /dev/null
+++ b/comm/mail/app/icons/windows/calendar-general-dialog.ico
Binary files differ
diff --git a/comm/mail/app/icons/windows/msgcomposeWindow.ico b/comm/mail/app/icons/windows/msgcomposeWindow.ico
new file mode 100644
index 0000000000..51d09d9a79
--- /dev/null
+++ b/comm/mail/app/icons/windows/msgcomposeWindow.ico
Binary files differ
diff --git a/comm/mail/app/macbuild/Contents/Info.plist.in b/comm/mail/app/macbuild/Contents/Info.plist.in
new file mode 100644
index 0000000000..8c577cbeae
--- /dev/null
+++ b/comm/mail/app/macbuild/Contents/Info.plist.in
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>@MOZ_APP_NAME@</string>
+ <key>CFBundleGetInfoString</key>
+ <string>@MAC_APP_NAME@ @APP_VERSION_DISPLAY@</string>
+ <key>CFBundleIconFile</key>
+ <string>thunderbird.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>@MOZ_MACBUNDLE_ID@</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>@MAC_APP_NAME@</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>@APP_VERSION@</string>
+ <key>CFBundleSignature</key>
+ <string>MOZM</string>
+ <key>CFBundleVersion</key>
+ <string>@MAC_BUNDLE_VERSION@</string>
+ <key>CFBundleURLTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleURLName</key>
+ <string>Email Address URL</string>
+ <key>CFBundleURLSchemes</key>
+ <array>
+ <string>mailto</string>
+ </array>
+ </dict>
+ <dict>
+ <key>CFBundleURLName</key>
+ <string>News URL</string>
+ <key>CFBundleURLSchemes</key>
+ <array>
+ <string>news</string>
+ </array>
+ </dict>
+ <dict>
+ <key>CFBundleURLName</key>
+ <string>RSS / ATOM URL</string>
+ <key>CFBundleURLSchemes</key>
+ <array>
+ <string>feed</string>
+ </array>
+ </dict>
+ </array>
+ <key>NSAppleScriptEnabled</key>
+ <true/>
+ <key>LSApplicationCategoryType</key>
+ <string>public.app-category.productivity</string>
+ <key>LSFileQuarantineEnabled</key>
+ <true/>
+ <key>LSMinimumSystemVersion</key>
+ <string>10.12.0</string>
+ <key>NSSupportsAutomaticGraphicsSwitching</key>
+ <true/>
+ <key>NSRequiresAquaSystemAppearance</key>
+ <false/>
+ <key>NSDisablePersistence</key>
+ <true/>
+ <key>NSPrincipalClass</key>
+ <string>GeckoNSApplication</string>
+ <key>SMPrivilegedExecutables</key>
+ <dict>
+ <key>org.mozilla.updater</key>
+ <string>identifier "org.mozilla.updater" and ((anchor apple generic and certificate leaf[field.1.2.840.113635.100.6.1.9]) or (anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] and certificate leaf[field.1.2.840.113635.100.6.1.13] and certificate leaf[subject.OU] = "43AQ936H96"))</string>
+ </dict>
+ <key>MozillaDeveloperRepoPath</key>
+ <string>@MOZ_DEVELOPER_REPO_PATH@</string>
+ <key>MozillaDeveloperObjPath</key>
+ <string>@MOZ_DEVELOPER_OBJ_PATH@</string>
+ <key>UTExportedTypeDeclarations</key>
+ <array>
+ <dict>
+ <key>UTTypeIdentifier</key>
+ <string>com.mozilla.thunderbird.mozeml</string>
+ <key>UTTypeReferenceURL</key>
+ <string>https://thunderbird.net</string>
+ <key>UTTypeDescription</key>
+ <string>Thunderbird Mail Message</string>
+ <key>UTTypeConformsTo</key>
+ <array>
+ <string>public.data</string>
+ <string>public.content</string>
+ <string>public.email-message</string>
+ </array>
+ <key>UTTypeTagSpecification</key>
+ <dict>
+ <key>com.apple.ostype</key>
+ <string>TBMZ</string>
+ <key>public.filename-extension</key>
+ <array>
+ <string>mozeml</string>
+ </array>
+ </dict>
+ </dict>
+ </array>
+
+ <key>CFBundleDocumentTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>mozeml</string>
+ </array>
+ <key>CFBundleTypeOSTypes</key>
+ <array>
+ <string>TBMZ</string>
+ </array>
+
+ <key>CFBundleTypeName</key>
+ <string>Thunderbird Mail Message</string>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ <key>LSTypeIsPackage</key>
+ <false/>
+ <key>LSItemContentTypes</key>
+ <array>
+ <string>com.mozilla.thunderbird.mozeml</string>
+ </array>
+ </dict>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>eml</string>
+ </array>
+ <key>CFBundleTypeName</key>
+ <string>Thunderbird Email</string>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ </dict>
+ </array>
+ <key>NSContactsUsageDescription</key>
+ <string>Use your macOS contacts in @MAC_APP_NAME@.</string>
+</dict>
+</plist>
diff --git a/comm/mail/app/macbuild/Contents/MacOS-files-copy.in b/comm/mail/app/macbuild/Contents/MacOS-files-copy.in
new file mode 100644
index 0000000000..e9d0f0efb9
--- /dev/null
+++ b/comm/mail/app/macbuild/Contents/MacOS-files-copy.in
@@ -0,0 +1,11 @@
+# Specifies files that should be copied (via deep copy, resolving symlinks)
+# from dist/bin to the .app/Contents/MacOS directory. Linking is preferred to
+# reduce disk I/O during builds, so just include dylibs which need to be in the
+# same directory as returned by dladddr(3).
+#
+# Some of these dylibs load other dylibs which are assumed to be siblings in
+# the same directory obtained from dladdr(3). With macOS 10.15, dladdr returns
+# absolute resolved paths which breaks this assumption if symlinks are used
+# because the symlink targets are in different directories. Hence the need for
+# them to be copied to the same directory.
+/*.dylib
diff --git a/comm/mail/app/macbuild/Contents/MacOS-files.in b/comm/mail/app/macbuild/Contents/MacOS-files.in
new file mode 100644
index 0000000000..b0d3a788e0
--- /dev/null
+++ b/comm/mail/app/macbuild/Contents/MacOS-files.in
@@ -0,0 +1,18 @@
+#if 0
+; Specifies files that should be copied (preserving symlinks) from dist/bin
+; to the .app/Contents/MacOS directory.
+#endif
+#filter substitution
+/*.app/***
+/certutil
+/@MOZ_APP_NAME@-bin
+#if defined(MOZ_CRASHREPORTER)
+/minidump-analyzer
+#endif
+/pingsender
+/pk12util
+/rnp-cli
+/rnpkeys
+/ssltunnel
+/xpcshell
+/XUL
diff --git a/comm/mail/app/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in b/comm/mail/app/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in
new file mode 100644
index 0000000000..c84535de6a
--- /dev/null
+++ b/comm/mail/app/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in
@@ -0,0 +1,5 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+CFBundleName = "@MAC_APP_NAME@";
diff --git a/comm/mail/app/macbuild/Contents/moz.build b/comm/mail/app/macbuild/Contents/moz.build
new file mode 100644
index 0000000000..87937e9967
--- /dev/null
+++ b/comm/mail/app/macbuild/Contents/moz.build
@@ -0,0 +1,26 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+defs = []
+
+for s in (
+ "MOZ_CRASHREPORTER",
+ "MOZ_APP_NAME",
+):
+ if CONFIG[s]:
+ defs.append("-D%s=%s" % (s, "1" if CONFIG[s] is True else CONFIG[s]))
+
+GeneratedFile(
+ "MacOS-files.txt",
+ script="/python/mozbuild/mozbuild/action/preprocessor.py",
+ entry_point="generate",
+ inputs=["MacOS-files.in"],
+ flags=defs,
+)
diff --git a/comm/mail/app/macversion.py b/comm/mail/app/macversion.py
new file mode 100644
index 0000000000..696b747f94
--- /dev/null
+++ b/comm/mail/app/macversion.py
@@ -0,0 +1,44 @@
+#!/usr/bin/python
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import io
+import re
+import sys
+from optparse import OptionParser
+
+o = OptionParser()
+o.add_option("--buildid", dest="buildid")
+o.add_option("--version", dest="version")
+
+(options, args) = o.parse_args()
+
+if not options.buildid:
+ print("--buildid is required", file=sys.stderr)
+ sys.exit(1)
+
+if not options.version:
+ print("--version is required", file=sys.stderr)
+ sys.exit(1)
+
+# We want to build a version number that matches the format allowed for
+# CFBundleVersion (nnnnn[.nn[.nn]]). We'll incorporate both the version
+# number as well as the date, so that it changes at least daily (for nightly
+# builds), but also so that newly-built older versions (e.g. beta build) aren't
+# considered "newer" than previously-built newer versions (e.g. a trunk nightly)
+
+define, MOZ_BUILDID, buildid = io.open(options.buildid, "r", encoding="utf-8").read().split()
+
+# extract only the major version (i.e. "14" from "14.0b1")
+majorVersion = re.match(r"^(\d+)[^\d].*", options.version).group(1)
+# last two digits of the year
+twodigityear = buildid[2:4]
+month = buildid[4:6]
+if month[0] == "0":
+ month = month[1]
+day = buildid[6:8]
+if day[0] == "0":
+ day = day[1]
+
+print("%s.%s.%s" % (majorVersion + twodigityear, month, day))
diff --git a/comm/mail/app/module.ver b/comm/mail/app/module.ver
new file mode 100644
index 0000000000..456739fc6b
--- /dev/null
+++ b/comm/mail/app/module.ver
@@ -0,0 +1,11 @@
+WIN32_MODULE_DESCRIPTION=@MOZ_APP_DISPLAYNAME@
+WIN32_MODULE_PRODUCTNAME=@MOZ_APP_DISPLAYNAME@
+WIN32_MODULE_NAME=@MOZ_APP_DISPLAYNAME@
+WIN32_MODULE_FILEVERSION=@MOZ_APP_WINVERSION@
+WIN32_MODULE_FILEVERSION_STRING=@MOZ_APP_VERSION@
+WIN32_MODULE_PRODUCTVERSION=@MOZ_APP_WINVERSION@
+WIN32_MODULE_PRODUCTVERSION_STRING=@MOZ_APP_VERSION@
+WIN32_MODULE_COPYRIGHT=ŠThunderbird and Mozilla Developers, according to the MPL 1.1/GPL 2.0/LGPL 2.1 licenses, as applicable.
+WIN32_MODULE_COMPANYNAME=Mozilla Corporation
+WIN32_MODULE_TRADEMARKS=Thunderbird is a Trademark of The Mozilla Foundation.
+WIN32_MODULE_COMMENT=Mozilla Thunderbird Mail and News Client
diff --git a/comm/mail/app/moz.build b/comm/mail/app/moz.build
new file mode 100644
index 0000000000..14c7789de7
--- /dev/null
+++ b/comm/mail/app/moz.build
@@ -0,0 +1,132 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+if CONFIG["MOZ_MACBUNDLE_NAME"]:
+ DIRS += ["macbuild/Contents"]
+
+if CONFIG["MOZ_NO_PIE_COMPAT"]:
+ GeckoProgram(CONFIG["MOZ_APP_NAME"] + "-bin")
+
+ DIRS += ["no-pie"]
+else:
+ GeckoProgram(CONFIG["MOZ_APP_NAME"])
+
+USE_LIBS += ["mozglue"]
+SOURCES += ["nsMailApp.cpp"]
+LOCAL_INCLUDES += [
+ "!/build",
+ "/ipc/contentproc/",
+ "/toolkit/xre",
+ "/xpcom/base",
+ "/xpcom/build",
+]
+
+if CONFIG["LIBFUZZER"]:
+ USE_LIBS += ["fuzzer"]
+ LOCAL_INCLUDES += [
+ "/tools/fuzzing/libfuzzer",
+ ]
+
+if CONFIG["OS_ARCH"] == "WINNT":
+ RCINCLUDE = "splash.rc"
+ DEFINES["MOZ_THUNDERBIRD"] = True
+
+ # Don't build thunderbird.exe with CETCOMPAT, because we need to be able to
+ # only enable it for processes that are not using JIT in xul.dll.
+
+ LINK_FLAGS["CETCOMPAT"] = []
+
+if CONFIG["OS_ARCH"] == "Darwin":
+ OS_LIBS += [
+ "-framework CoreFoundation",
+ ]
+
+if CONFIG["MOZ_SANDBOX"] and CONFIG["OS_ARCH"] == "WINNT":
+ # For sandbox includes and the include dependencies those have
+ LOCAL_INCLUDES += [
+ "/security/sandbox/chromium",
+ "/security/sandbox/chromium-shim",
+ ]
+
+ OS_LIBS += [
+ "version",
+ ]
+
+ USE_LIBS += [
+ "sandbox_s",
+ ]
+
+ OS_LIBS += [
+ "advapi32",
+ "winmm",
+ "user32",
+ ]
+
+ DELAYLOAD_DLLS += [
+ "winmm.dll",
+ "user32.dll",
+ ]
+
+if CONFIG["OS_ARCH"] == "WINNT":
+ OS_LIBS += [
+ "ntdll",
+ ]
+
+if CONFIG["CC_TYPE"] in ("msvc", "clang-cl"):
+ # Always enter a Windows program through wmain, whether or not we're
+ # a console application.
+ WIN32_EXE_LDFLAGS += ["-ENTRY:wmainCRTStartup"]
+
+# Control the default heap size.
+# This is the heap returned by GetProcessHeap().
+# As we use the CRT heap, the default size is too large and wastes VM.
+#
+# The default heap size is 1MB on Win32.
+# The heap will grow if need be.
+#
+# Set it to 256k. See bug 127069.
+if CONFIG["OS_ARCH"] == "WINNT" and CONFIG["CC_TYPE"] in ("msvc", "clang-cl"):
+ LDFLAGS += ["/HEAP:0x40000"]
+
+DisableStlWrapping()
+
+if CONFIG["MOZ_LINKER"]:
+ OS_LIBS += CONFIG["MOZ_ZLIB_LIBS"]
+
+if CONFIG["HAVE_CLOCK_MONOTONIC"]:
+ OS_LIBS += CONFIG["REALTIME_LIBS"]
+
+DEFINES["APP_VERSION"] = CONFIG["MOZ_APP_VERSION"]
+
+if CONFIG["MOZILLA_OFFICIAL"]:
+ DEFINES["MOZILLA_OFFICIAL"] = True
+
+if CONFIG["MOZ_GPSD"]:
+ DEFINES["MOZ_GPSD"] = True
+
+if CONFIG["MOZ_LINUX_32_SSE2_STARTUP_ERROR"]:
+ DEFINES["MOZ_LINUX_32_SSE2_STARTUP_ERROR"] = True
+ COMPILE_FLAGS["OS_CXXFLAGS"] = [
+ f
+ for f in COMPILE_FLAGS.get("OS_CXXFLAGS", [])
+ if not f.startswith("-march=") and f not in ("-msse", "-msse2", "-mfpmath=sse")
+ ] + [
+ "-mno-sse",
+ "-mno-sse2",
+ "-mfpmath=387",
+ ]
+
+JS_PREFERENCE_PP_FILES += [
+ "profile/all-thunderbird.js",
+]
+
+DIRS += ["settings"]
+
+for icon in ("messengerWindow", "newmail", "writeMessage", "addressbook"):
+ DEFINES[icon.upper() + "_ICO"] = '"%s/%s/%s.ico"' % (
+ TOPSRCDIR,
+ CONFIG["MOZ_BRANDING_DIRECTORY"],
+ icon,
+ )
diff --git a/comm/mail/app/no-pie/NoPie.c b/comm/mail/app/no-pie/NoPie.c
new file mode 100644
index 0000000000..39b206e0af
--- /dev/null
+++ b/comm/mail/app/no-pie/NoPie.c
@@ -0,0 +1,26 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include <errno.h>
+#include <limits.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+int main(int argc, char* argv[]) {
+ // Ideally, we'd use mozilla::BinaryPath, but that pulls in stdc++compat,
+ // and further causes trouble linking with LTO.
+ char path[PATH_MAX + 4];
+ ssize_t len = readlink("/proc/self/exe", path, PATH_MAX - 1);
+ if (len < 0) {
+ fprintf(stderr, "Couldn't find the application directory.\n");
+ return 255;
+ }
+ strcpy(path + len, "-bin");
+ execv(path, argv);
+ // execv never returns. If it did, there was an error.
+ fprintf(stderr, "Exec failed with error: %s\n", strerror(errno));
+ return 255;
+}
diff --git a/comm/mail/app/no-pie/moz.build b/comm/mail/app/no-pie/moz.build
new file mode 100644
index 0000000000..74aa89409d
--- /dev/null
+++ b/comm/mail/app/no-pie/moz.build
@@ -0,0 +1,24 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+Program(CONFIG["MOZ_APP_NAME"])
+
+SOURCES += [
+ "NoPie.c",
+]
+
+# For some reason, LTO messes things up. We don't care anyways.
+CFLAGS += [
+ "-fno-lto",
+]
+
+# Use OS_LIBS instead of LDFLAGS to "force" the flag to come after -pie
+# from MOZ_PROGRAM_LDFLAGS.
+if CONFIG["CC_TYPE"] == "clang":
+ # clang < 5.0 doesn't support -no-pie.
+ OS_LIBS += ["-nopie"]
+else:
+ OS_LIBS += ["-no-pie"]
diff --git a/comm/mail/app/nsMailApp.cpp b/comm/mail/app/nsMailApp.cpp
new file mode 100644
index 0000000000..842a378026
--- /dev/null
+++ b/comm/mail/app/nsMailApp.cpp
@@ -0,0 +1,402 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsXULAppAPI.h"
+#include "mozilla/CmdLineAndEnvUtils.h"
+#include "mozilla/XREAppData.h"
+#include "nsXPCOM.h"
+#include "nsISupports.h"
+#include "mozilla/Logging.h"
+#include "mozilla/XREAppData.h"
+#include "mozilla/ArrayUtils.h"
+#include "mozilla/Assertions.h"
+#include "mozilla/TimeStamp.h"
+#include "XREChildData.h"
+#include "XREShellData.h"
+
+#include "application.ini.h"
+#include "mozilla/Bootstrap.h"
+#include "mozilla/ProcessType.h"
+#include "mozilla/RuntimeExceptionModule.h"
+#include "mozilla/ScopeExit.h"
+#if defined(XP_WIN)
+# include <windows.h>
+# include <stdlib.h>
+#elif defined(XP_UNIX)
+# include <sys/resource.h>
+# include <unistd.h>
+#endif
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <time.h>
+
+#include "nsCOMPtr.h"
+#include "nsIFile.h"
+
+#ifdef XP_WIN
+# include "mozilla/mscom/ProcessRuntime.h"
+# include "mozilla/WindowsDllBlocklist.h"
+# include "mozilla/WindowsDpiInitialization.h"
+
+# define XRE_WANT_ENVIRON
+# define strcasecmp _stricmp
+# ifdef MOZ_SANDBOX
+# include "mozilla/sandboxing/SandboxInitialization.h"
+# endif
+#endif
+#include "BinaryPath.h"
+
+#include "nsXPCOMPrivate.h" // for MAXPATHLEN and XPCOM_DLL
+
+#include "mozilla/Sprintf.h"
+#include "mozilla/StartupTimeline.h"
+
+#ifdef LIBFUZZER
+# include "FuzzerDefs.h"
+#endif
+
+#ifdef MOZ_LINUX_32_SSE2_STARTUP_ERROR
+# include <cpuid.h>
+# include "mozilla/Unused.h"
+
+static bool IsSSE2Available() {
+ // The rest of the app has been compiled to assume that SSE2 is present
+ // unconditionally, so we can't use the normal copy of SSE.cpp here.
+ // Since SSE.cpp caches the results and we need them only transiently,
+ // instead of #including SSE.cpp here, let's just inline the specific check
+ // that's needed.
+ unsigned int level = 1u;
+ unsigned int eax, ebx, ecx, edx;
+ unsigned int bits = (1u << 26);
+ unsigned int max = __get_cpuid_max(0, nullptr);
+ if (level > max) {
+ return false;
+ }
+ __cpuid_count(level, 0, eax, ebx, ecx, edx);
+ return (edx & bits) == bits;
+}
+
+static const char sSSE2Message[] =
+ "This browser version requires a processor with the SSE2 instruction "
+ "set extension.\nYou may be able to obtain a version that does not "
+ "require SSE2 from your Linux distribution.\n";
+
+__attribute__((constructor)) static void SSE2Check() {
+ if (IsSSE2Available()) {
+ return;
+ }
+ // Using write() in order to avoid jemalloc-based buffering. Ignoring return
+ // values, since there isn't much we could do on failure and there is no
+ // point in trying to recover from errors.
+ MOZ_UNUSED(
+ write(STDERR_FILENO, sSSE2Message, MOZ_ARRAY_LENGTH(sSSE2Message) - 1));
+ // _exit() instead of exit() to avoid running the usual "at exit" code.
+ _exit(255);
+}
+#endif
+
+#if !defined(MOZ_WIDGET_COCOA) && !defined(MOZ_WIDGET_ANDROID)
+# define MOZ_BROWSER_CAN_BE_CONTENTPROC
+# include "plugin-container.cpp"
+#endif
+
+using namespace mozilla;
+
+#ifdef XP_MACOSX
+# define kOSXResourcesFolder "Resources"
+#endif
+#define kDesktopFolder ""
+
+static MOZ_FORMAT_PRINTF(1, 2) void Output(const char* fmt, ...) {
+ va_list ap;
+ va_start(ap, fmt);
+
+#ifndef XP_WIN
+ vfprintf(stderr, fmt, ap);
+#else
+ char msg[2048];
+ vsnprintf_s(msg, _countof(msg), _TRUNCATE, fmt, ap);
+
+ wchar_t wide_msg[2048];
+ MultiByteToWideChar(CP_UTF8, 0, msg, -1, wide_msg, _countof(wide_msg));
+# if MOZ_WINCONSOLE
+ fwprintf_s(stderr, wide_msg);
+# else
+ // Linking user32 at load-time interferes with the DLL blocklist (bug 932100).
+ // This is a rare codepath, so we can load user32 at run-time instead.
+ HMODULE user32 = LoadLibraryW(L"user32.dll");
+ if (user32) {
+ decltype(MessageBoxW)* messageBoxW =
+ (decltype(MessageBoxW)*)GetProcAddress(user32, "MessageBoxW");
+ if (messageBoxW) {
+ messageBoxW(nullptr, wide_msg, L"Thunderbird",
+ MB_OK | MB_ICONERROR | MB_SETFOREGROUND);
+ }
+ FreeLibrary(user32);
+ }
+# endif
+#endif
+
+ va_end(ap);
+}
+
+/**
+ * Return true if |arg| matches the given argument name.
+ */
+static bool IsArg(const char* arg, const char* s) {
+ if (*arg == '-') {
+ if (*++arg == '-') ++arg;
+ return !strcasecmp(arg, s);
+ }
+
+#if defined(XP_WIN)
+ if (*arg == '/') return !strcasecmp(++arg, s);
+#endif
+
+ return false;
+}
+
+Bootstrap::UniquePtr gBootstrap;
+
+static int do_main(int argc, char* argv[], char* envp[]) {
+ // Allow thunderbird.exe to launch XULRunner apps via -app <application.ini>
+ // Note that -app must be the *first* argument.
+ const char* appDataFile = getenv("XUL_APP_FILE");
+ if ((!appDataFile || !*appDataFile) && (argc > 1 && IsArg(argv[1], "app"))) {
+ if (argc == 2) {
+ Output("Incorrect number of arguments passed to -app");
+ return 255;
+ }
+ appDataFile = argv[2];
+
+ char appEnv[MAXPATHLEN];
+ SprintfLiteral(appEnv, "XUL_APP_FILE=%s", argv[2]);
+ if (putenv(strdup(appEnv))) {
+ Output("Couldn't set %s.\n", appEnv);
+ return 255;
+ }
+ argv[2] = argv[0];
+ argv += 2;
+ argc -= 2;
+ } else if (argc > 1 && IsArg(argv[1], "xpcshell")) {
+ for (int i = 1; i < argc; i++) {
+ argv[i] = argv[i + 1];
+ }
+
+ XREShellData shellData;
+#if defined(XP_WIN) && defined(MOZ_SANDBOX)
+ shellData.sandboxBrokerServices =
+ sandboxing::GetInitializedBrokerServices();
+#endif
+
+ return gBootstrap->XRE_XPCShellMain(--argc, argv, envp, &shellData);
+ }
+
+ BootstrapConfig config;
+
+ if (appDataFile && *appDataFile) {
+ config.appData = nullptr;
+ config.appDataPath = appDataFile;
+ } else {
+ // no -app flag so we use the compiled-in app data
+ config.appData = &sAppData;
+ config.appDataPath = kDesktopFolder;
+ }
+
+#if defined(XP_WIN) && defined(MOZ_SANDBOX)
+ sandbox::BrokerServices* brokerServices =
+ sandboxing::GetInitializedBrokerServices();
+ if (!brokerServices) {
+ Output("Couldn't initialize the broker services.\n");
+ return 255;
+ }
+ config.sandboxBrokerServices = brokerServices;
+#endif
+
+#ifdef LIBFUZZER
+ if (getenv("FUZZER"))
+ gBootstrap->XRE_LibFuzzerSetDriver(fuzzer::FuzzerDriver);
+#endif
+
+ // Note: FF needs to keep in sync with LauncherProcessWin,
+ // TB doesn't have that file.
+ const char* acceptableParams[] = {"compose", "mail", nullptr};
+ EnsureCommandlineSafe(argc, argv, acceptableParams);
+
+ return gBootstrap->XRE_main(argc, argv, config);
+}
+
+static nsresult InitXPCOMGlue(LibLoadingStrategy aLibLoadingStrategy) {
+ if (gBootstrap) {
+ return NS_OK;
+ }
+
+ UniqueFreePtr<char> exePath = BinaryPath::Get();
+ if (!exePath) {
+ Output("Couldn't find the application directory.\n");
+ return NS_ERROR_FAILURE;
+ }
+
+ auto bootstrapResult =
+ mozilla::GetBootstrap(exePath.get(), aLibLoadingStrategy);
+ if (bootstrapResult.isErr()) {
+ Output("Couldn't load XPCOM.\n");
+ return NS_ERROR_FAILURE;
+ }
+
+ gBootstrap = bootstrapResult.unwrap();
+
+ // This will set this thread as the main thread.
+ gBootstrap->NS_LogInit();
+
+ return NS_OK;
+}
+
+#ifdef HAS_DLL_BLOCKLIST
+// NB: This must be extern, as this value is checked elsewhere
+uint32_t gBlocklistInitFlags = eDllBlocklistInitFlagDefault;
+#endif
+
+int main(int argc, char* argv[], char* envp[]) {
+#if defined(MOZ_ENABLE_FORKSERVER)
+ if (strcmp(argv[argc - 1], "forkserver") == 0) {
+ nsresult rv = InitXPCOMGlue(LibLoadingStrategy::NoReadAhead);
+ if (NS_FAILED(rv)) {
+ return 255;
+ }
+
+ // Run a fork server in this process, single thread. When it
+ // returns, it means the fork server have been stopped or a new
+ // content process is created.
+ //
+ // For the later case, XRE_ForkServer() will return false, running
+ // in a content process just forked from the fork server process.
+ // argc & argv will be updated with the values passing from the
+ // chrome process. With the new values, this function
+ // continues the reset of the code acting as a content process.
+ if (gBootstrap->XRE_ForkServer(&argc, &argv)) {
+ // Return from the fork server in the fork server process.
+ // Stop the fork server.
+ gBootstrap->NS_LogTerm();
+ return 0;
+ }
+ // In a content process forked from the fork server.
+ // Start acting as a content process.
+ }
+#endif
+
+ mozilla::TimeStamp start = mozilla::TimeStamp::Now();
+
+ // Make sure we unregister the runtime exception module before returning.
+ // We do this here to cover both registers for child and main processes.
+ auto unregisterRuntimeExceptionModule =
+ MakeScopeExit([] { CrashReporter::UnregisterRuntimeExceptionModule(); });
+
+#ifdef MOZ_BROWSER_CAN_BE_CONTENTPROC
+ // We are launching as a content process, delegate to the appropriate
+ // main
+ if (argc > 1 && IsArg(argv[1], "contentproc")) {
+ // Set the process type. We don't remove the arg here as that will be done
+ // later in common code.
+ SetGeckoProcessType(argv[argc - 1]);
+
+ // Register an external module to report on otherwise uncatchable
+ // exceptions. Note that in child processes this must be called after Gecko
+ // process type has been set.
+ CrashReporter::RegisterRuntimeExceptionModule();
+
+# ifdef HAS_DLL_BLOCKLIST
+ DllBlocklist_Initialize(gBlocklistInitFlags |
+ eDllBlocklistInitFlagIsChildProcess);
+# endif
+# if defined(XP_WIN) && defined(MOZ_SANDBOX)
+ // We need to initialize the sandbox TargetServices before InitXPCOMGlue
+ // because we might need the sandbox broker to give access to some files.
+ if (IsSandboxedProcess() && !sandboxing::GetInitializedTargetServices()) {
+ Output("Failed to initialize the sandbox target services.");
+ return 255;
+ }
+# endif
+# if defined(XP_WIN)
+ // Ideally, we would be able to set our DPI awareness in
+ // thunderbird.exe.manifest Unfortunately, that would cause Win32k calls
+ // when user32.dll gets loaded, which would be incompatible with Win32k
+ // Lockdown. We need to call this after GetInitializedTargetServices
+ // because it can affect the detection of the win32k lockdown status.
+ //
+ // MSDN says that it's allowed-but-not-recommended to initialize DPI
+ // programmatically, as long as it's done before any HWNDs are created.
+ // Thus, we do it almost as soon as we possibly can
+ {
+ auto result = mozilla::WindowsDpiInitialization();
+ (void)result; // Ignore errors since some tools block DPI calls
+ }
+# endif
+
+ nsresult rv = InitXPCOMGlue(LibLoadingStrategy::NoReadAhead);
+ if (NS_FAILED(rv)) {
+ return 255;
+ }
+
+ int result = content_process_main(gBootstrap.get(), argc, argv);
+
+ // InitXPCOMGlue calls NS_LogInit, so we need to balance it here.
+ gBootstrap->NS_LogTerm();
+
+ return result;
+ }
+#endif
+
+ // Register an external module to report on otherwise uncatchable exceptions.
+ CrashReporter::RegisterRuntimeExceptionModule();
+
+#ifdef HAS_DLL_BLOCKLIST
+ DllBlocklist_Initialize(gBlocklistInitFlags);
+#endif
+
+#if defined(XP_WIN)
+
+ // Ideally, we would be able to set our DPI awareness in
+ // thunderbird.exe.manifest Unfortunately, that would cause Win32k calls when
+ // user32.dll gets loaded, which would be incompatible with Win32k Lockdown
+ //
+ // MSDN says that it's allowed-but-not-recommended to initialize DPI
+ // programmatically, as long as it's done before any HWNDs are created.
+ // Thus, we do it almost as soon as we possibly can
+ {
+ auto result = mozilla::WindowsDpiInitialization();
+ (void)result; // Ignore errors since some tools block DPI calls
+ }
+#endif
+
+ nsresult rv = InitXPCOMGlue(LibLoadingStrategy::NoReadAhead);
+ if (NS_FAILED(rv)) {
+ return 255;
+ }
+
+ gBootstrap->XRE_StartupTimelineRecord(mozilla::StartupTimeline::START, start);
+
+#ifdef MOZ_BROWSER_CAN_BE_CONTENTPROC
+ gBootstrap->XRE_EnableSameExecutableForContentProc();
+#endif
+
+ int result = do_main(argc, argv, envp);
+
+ gBootstrap->NS_LogTerm();
+
+#ifdef XP_MACOSX
+ // Allow writes again. While we would like to catch writes from static
+ // destructors to allow early exits to use _exit, we know that there is
+ // at least one such write that we don't control (see bug 826029). For
+ // now we enable writes again and early exits will have to use exit instead
+ // of _exit.
+ gBootstrap->XRE_StopLateWriteChecks();
+#endif
+
+ gBootstrap.reset();
+
+ return result;
+}
diff --git a/comm/mail/app/permissions b/comm/mail/app/permissions
new file mode 100644
index 0000000000..9131807e9a
--- /dev/null
+++ b/comm/mail/app/permissions
@@ -0,0 +1,10 @@
+# This file has default permissions for the permission manager.
+# The file-format is strict:
+# * matchtype \t type \t permission \t host
+# * "origin" should be used for matchtype, "host" is supported for legacy reasons
+# * type is a string that identifies the type of permission (e.g. "cookie")
+# * permission is an integer between 1 and 15
+# See nsPermissionManager.cpp for more...
+
+# XPInstall
+origin install 1 https://addons.thunderbird.net
diff --git a/comm/mail/app/profile/all-thunderbird.js b/comm/mail/app/profile/all-thunderbird.js
new file mode 100644
index 0000000000..cacc159aa9
--- /dev/null
+++ b/comm/mail/app/profile/all-thunderbird.js
@@ -0,0 +1,1428 @@
+#filter dumbComments emptyLines substitution
+
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifdef XP_UNIX
+#ifndef XP_MACOSX
+#define UNIX_BUT_NOT_MAC
+#endif
+#endif
+
+pref("general.skins.selectedSkin", "classic/1.0");
+
+#ifdef XP_MACOSX
+pref("mail.biff.animate_dock_icon", false);
+#endif
+
+pref("mail.rights.version", 0);
+
+// Don't show the about:rights notification in debug or non-official builds.
+#ifdef DEBUG
+pref("mail.rights.override", true);
+#endif
+#ifndef MOZILLA_OFFICIAL
+pref("mail.rights.override", true);
+#endif
+
+// At startup, should we check to see if the installation
+// date is older than some threshold
+pref("app.update.checkInstallTime", true);
+
+// The number of days a binary is permitted to be old without checking is defined in
+// thunderbird-branding.js (app.update.checkInstallTime.days)
+
+// The minimum delay in seconds for the timer to fire between the notification
+// of each consumer of the timer manager.
+// minimum=30 seconds, default=120 seconds, and maximum=300 seconds
+pref("app.update.timerMinimumDelay", 120);
+
+// The minimum delay in milliseconds for the first firing after startup of the timer
+// to notify consumers of the timer manager.
+// minimum=10 seconds, default=30 seconds, and maximum=120 seconds
+pref("app.update.timerFirstInterval", 30000);
+
+// App-specific update preferences
+
+// The interval to check for updates (app.update.interval) is defined in
+// the branding files.
+
+// Enables some extra Application Update Logging (can reduce performance)
+pref("app.update.log", false);
+// Causes Application Update Logging to be sent to a file in the profile
+// directory. This preference is automatically disabled on application start to
+// prevent it from being left on accidentally. Turning this pref on enables
+// logging, even if app.update.log is false.
+pref("app.update.log.file", false);
+
+// The number of general background check failures to allow before notifying the
+// user of the failure. User initiated update checks always notify the user of
+// the failure.
+pref("app.update.backgroundMaxErrors", 10);
+
+// Ids of the links to the "What's new" update documentation
+pref("app.update.link.updateAvailableWhatsNew", "update-available-whats-new");
+pref("app.update.link.updateManualWhatsNew", "update-manual-whats-new");
+
+// How many times we should let downloads fail before prompting the user to
+// download a fresh installer.
+pref("app.update.download.promptMaxAttempts", 2);
+
+// How many times we should let an elevation prompt fail before prompting the user to
+// download a fresh installer.
+pref("app.update.elevation.promptMaxAttempts", 2);
+
+#ifdef NIGHTLY_BUILD
+ // Whether to delay popup notifications when an update is available and
+ // suppress them when an update is installed and waiting for user to restart.
+ // If set to true, these notifications will immediately be shown as banners in
+ // the app menu and as badges on the app menu button. Update available
+ // notifications will not create popup prompts until a week has passed without
+ // the user installing the update. Update restart notifications will not
+ // create popup prompts at all. This doesn't affect update notifications
+ // triggered by errors/failures or manual install prompts.
+ pref("app.update.suppressPrompts", false);
+#endif
+
+// If set to true, a message will be displayed in the hamburger menu while
+// an update is being downloaded.
+pref("app.update.notifyDuringDownload", false);
+
+// If set to true, the Update Service will automatically download updates when
+// user can apply updates. This pref is no longer used on Windows, except as the
+// default value to migrate to the new location that this data is now stored
+// (which is in a file in the update directory). Because of this, this pref
+// should no longer be used directly. Instead, getAppUpdateAutoEnabled and
+// getAppUpdateAutoEnabled from UpdateUtils.jsm should be used.
+#ifndef XP_WIN
+ pref("app.update.auto", true);
+#endif
+
+// If set to true, the Update Service will apply updates in the background
+// when it finishes downloading them.
+pref("app.update.staging.enabled", true);
+
+// Update service URL:
+// app.update.url was removed in Bug 1630041
+// app.update.url.manual is in branding section
+// app.update.url.details is in branding section
+// app.update.promptWaitTime is in branding section
+
+// Whether or not to attempt using the service for updates.
+#ifdef MOZ_MAINTENANCE_SERVICE
+pref("app.update.service.enabled", true);
+#endif
+
+#ifdef XP_WIN
+// This pref prevents BITS from being used by Thunderbird to download updates.
+pref("app.update.BITS.enabled", false);
+#endif
+
+// Release notes URL
+pref("app.releaseNotesURL", "https://live.thunderbird.net/%APP%/releasenotes?locale=%LOCALE%&version=%VERSION%&channel=%CHANNEL%&os=%OS%&buildid=%APPBUILDID%");
+
+#ifdef XP_MACOSX
+ // If set to true, Thunderbird will automatically restart if it is left
+ // running with no windows open.
+ pref("app.update.noWindowAutoRestart.enabled", true);
+ // How long to wait after all windows are closed before restarting,
+ // in milliseconds. 5 min = 300000 ms.
+ pref("app.update.noWindowAutoRestart.delayMs", 300000);
+#endif
+
+// URL for "Learn More" for DataCollection
+pref("toolkit.datacollection.infoURL",
+ "https://www.mozilla.org/thunderbird/legal/privacy/#telemetry");
+
+// URL for "Learn More" for Crash Reporter.
+pref("toolkit.crashreporter.infoURL",
+ "https://www.mozilla.org/thunderbird/legal/privacy/#crash-reporter");
+
+pref("datareporting.healthreport.uploadEnabled", true); // Required to enable telemetry pings.
+pref("datareporting.healthreport.infoURL", "https://www.mozilla.org/thunderbird/legal/privacy/#health-report");
+
+#ifdef MOZ_DATA_REPORTING
+pref("datareporting.policy.dataSubmissionEnabled", true);
+pref("datareporting.policy.dataSubmissionPolicyAcceptedVersion", 0);
+pref("datareporting.policy.dataSubmissionPolicyBypassNotification", false);
+pref("datareporting.policy.currentPolicyVersion", 2);
+pref("datareporting.policy.firstRunURL", "https://www.mozilla.org/thunderbird/legal/privacy/");
+#endif
+
+// Base URL for web-based support pages.
+pref("app.support.baseURL", "https://support.thunderbird.net/%APP%/%VERSION%/%OS%/%LOCALE%/");
+
+// Base url for web-based feedback pages.
+pref("app.feedback.baseURL", "https://connect.mozilla.org/");
+
+// Allows using Thundebird without a configured email account, blocking the
+// account setup prompt at startup.
+pref("app.use_without_mail_account", false);
+
+// Show error messages in error console.
+pref("javascript.options.showInConsole", true);
+
+#ifdef NIGHTLY_BUILD
+pref("signon.management.page.os-auth.enabled", true);
+#else
+pref("signon.management.page.os-auth.enabled", false);
+#endif
+
+// Controls enabling of the extension system logging (can reduce performance)
+pref("extensions.logging.enabled", false);
+pref("extensions.overlayloader.loglevel", "warn");
+
+pref("extensions.abuseReport.enabled", false);
+
+// Strict compatibility makes add-ons incompatible by default.
+#ifndef RELEASE_OR_BETA
+pref("extensions.strictCompatibility", false);
+#else
+pref("extensions.strictCompatibility", true);
+#endif
+
+pref("extensions.update.autoUpdateDefault", true);
+
+pref("extensions.systemAddon.update.enabled", true); // See bug 1462160.
+
+// Disable add-ons installed into the shared user and shared system areas by
+// default. This does not include the application directory. See the SCOPE
+// constants in AddonManager.jsm for values to use here
+pref("extensions.autoDisableScopes", 15);
+
+// Enable add-ons installed and owned by the application, like the default theme.
+pref("extensions.startupScanScopes", 4);
+
+// Gecko Profiler
+pref("extensions.geckoProfiler.acceptedExtensionIds", "geckoprofiler@mozilla.com,quantum-foxfooding@mozilla.com,raptor@mozilla.org");
+
+// Allow "legacy" XUL/XPCOM extensions.
+pref("extensions.legacy.enabled", true);
+
+// Preferences for AMO integration
+pref("extensions.getAddons.cache.enabled", true);
+pref("extensions.getAddons.maxResults", 15);
+pref("extensions.getAddons.get.url", "https://services.addons.thunderbird.net/api/v3/addons/search/?guid=%IDS%&lang=%LOCALE%");
+pref("extensions.getAddons.compatOverides.url", "https://services.addons.thunderbird.net/api/v3/addons/compat-override/?guid=%IDS%&lang=%LOCALE%");
+pref("extensions.getAddons.link.url", "https://addons.thunderbird.net/%LOCALE%/%APP%/");
+pref("browser.dictionaries.download.url", "https://addons.thunderbird.net/%LOCALE%/%APP%/language-tools/");
+pref("extensions.getAddons.recommended.url", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/api/%API_VERSION%/list/recommended/all/%MAX_RESULTS%/%OS%/%VERSION%?src=thunderbird");
+pref("extensions.getAddons.search.browseURL", "https://addons.thunderbird.net/%LOCALE%/%APP%/search/?q=%TERMS%&appver=%VERSION%&platform=%OS%");
+pref("extensions.getAddons.search.url", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%/%COMPATIBILITY_MODE%?src=thunderbird");
+pref("extensions.webservice.discoverURL", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/discovery/pane/%VERSION%/%OS%");
+pref("extensions.getAddons.langpacks.url", "https://services.addons.thunderbird.net/api/v3/addons/language-tools/?app=thunderbird&type=language&appversion=%VERSION%");
+pref("extensions.getAddons.discovery.api_url", "https://services.addons.thunderbird.net/api/v4/discovery/?lang=%LOCALE%&edition=%DISTRIBUTION%");
+
+// Blocklist preferences
+pref("extensions.blocklist.detailsURL", "https://blocked.cdn.mozilla.net/");
+pref("extensions.blocklist.itemURL", "https://blocked.cdn.mozilla.net/%blockID%.html");
+
+// Remote settings preferences
+pref("services.settings.server", "https://thunderbird-settings.thunderbird.net/v1");
+pref("services.settings.default_bucket", "thunderbird");
+pref("security.content.signature.root_hash", "[CONTENT SIGNING DISABLED - see bug 1612380]");
+
+// Show new install UI with permission lists
+pref("extensions.webextOptionalPermissionPrompts", true);
+
+// 1 = allow "Man In The Middle" (local proxy, web filter, etc.) for certificate
+// pinning checks.
+pref("security.cert_pinning.enforcement_level", 1);
+
+// Whether to use client certificates stored in OS certificate storage.
+// This does not work for S/MIME. See bug 1726442.
+pref("security.osclientcerts.autoload", false);
+
+// Symmetric (can be overridden by individual extensions) update preferences.
+// e.g.
+// extensions.{GUID}.update.enabled
+// extensions.{GUID}.update.url
+// extensions.{GUID}.update.interval
+// .. etc ..
+//
+pref("extensions.update.enabled", true);
+pref("extensions.update.url", "https://versioncheck.addons.thunderbird.net/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%&currentAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
+
+pref("extensions.update.background.url", "https://versioncheck-bg.addons.thunderbird.net/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%&currentAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
+
+pref("extensions.update.interval", 86400); // Check for updates to Extensions and
+ // Themes every day
+
+pref("extensions.dss.switchPending", false); // Non-dynamic switch pending after next
+
+// Don't show recommendations on the extension and theme list views.
+pref("extensions.htmlaboutaddons.recommendations.enabled", false);
+// Don't allow content scripts on these web sites
+pref("extensions.webextensions.restrictedDomains", "accounts-static.cdn.mozilla.net,accounts.firefox.com,addons.cdn.mozilla.net,addons.mozilla.org,api.accounts.firefox.com,content.cdn.mozilla.net,discovery.addons.mozilla.org,install.mozilla.org,oauth.accounts.firefox.com,profile.accounts.firefox.com,support.mozilla.org,sync.services.mozilla.com,addons.thunderbird.net");
+
+// Define Thunderbird specific add-on related URLs (not used in toolkit code).
+pref("extensions.canonicalAddonServer.url", "https://addons.thunderbird.net");
+pref("extensions.alternativeAddonSearch.url", "https://extension-finder.thunderbird.net");
+
+pref("lightweightThemes.update.enabled", true);
+
+// Use for in-content pages the theme's toolbar color scheme when none is set in the theme.
+pref("browser.theme.unified-color-scheme", true);
+
+// Built-in default permissions.
+pref("permissions.manager.defaultsUrl", "resource://app/defaults/permissions");
+
+#ifdef UNIX_BUT_NOT_MAC
+pref("general.autoScroll", false);
+#else
+pref("general.autoScroll", true);
+#endif
+
+pref("mail.shell.checkDefaultClient", true);
+pref("mail.spellcheck.inline", true);
+
+pref("mail.folder.views.version", 0);
+
+// Force the unit shown for the size of all folders. If empty, the unit
+// is determined automatically for each folder. Allowed values: KB/MB/<empty string>
+pref("mail.folderpane.sizeUnits", "");
+// Summarize messages count and size of subfolders into a collapsed parent?
+// Allowed values: true/false
+pref("mail.folderpane.sumSubfolders", true);
+
+// target folder URI used for the last move or copy
+pref("mail.last_msg_movecopy_target_uri", "");
+// last move or copy operation was a move
+pref("mail.last_msg_movecopy_was_move", true);
+
+//Set the font color for links to something lighter
+pref("browser.anchor_color", "#0B6CDA");
+
+#ifdef XP_MACOSX
+pref("browser.preferences.animateFadeIn", true);
+#else
+pref("browser.preferences.animateFadeIn", false);
+#endif
+pref("browser.preferences.search", true);
+
+// Whether the results panel should be kept open during IME composition.
+// The default value is false because some IME open a picker panel, and we end
+// up with two panels on top of each other. Since for now we can't detect that
+// we leave this choice to the user, hopefully in the future this can be flipped
+// for everyone.
+pref("browser.urlbar.keepPanelOpenDuringImeComposition", false);
+
+pref("accessibility.typeaheadfind", false);
+pref("accessibility.typeaheadfind.timeout", 5000);
+pref("accessibility.typeaheadfind.linksonly", false);
+pref("accessibility.typeaheadfind.flashBar", 1);
+
+pref("mail.close_message_window.on_delete", false);
+
+// Number of lines of To/CC/BCC address headers to show before "more"
+// truncates the list.
+pref("mailnews.headers.show_n_lines_before_more", 1);
+
+// We want to keep track of what items are appropriate in
+// XULStore.json. We use versioning to scrub out the things
+// that have become obsolete.
+// The value will always be set by startup code and must not be changed
+// here. A value of 0 means a new profile.
+pref("mail.ui-rdf.version", 0);
+
+/////////////////////////////////////////////////////////////////
+// Overrides of the core mailnews.js and composer.js prefs
+/////////////////////////////////////////////////////////////////
+pref("mail.showCondensedAddresses", true); // show the friendly display name for people I know
+
+pref("mailnews.attachments.display.start_expanded", false);
+// hidden pref for changing how we present attachments in the message pane
+pref("mail.pane_config.dynamic", 2);
+pref("mailnews.reuse_thread_window2", true);
+pref("editor.singleLine.pasteNewlines", 4); // substitute commas for new lines in single line text boxes
+pref("editor.CR_creates_new_p", true);
+pref("mail.compose.default_to_paragraph", true);
+
+// If true, when pasting a URL, paste the Open Graph / Twitter Card details
+// we can extract from the URL instead.
+pref("mail.compose.add_link_preview", false);
+
+// hidden pref to ensure a certain number of headers in the message pane
+// to avoid the height of the header area from changing when headers are present / not present
+pref("mailnews.headers.minNumHeaders", 0); // 0 means we ignore this pref
+
+// 0=no header, 1="<author> wrote:", 2="On <date> <author> wrote:"
+// 3="<author> wrote On <date>:", 4=user specified
+pref("mailnews.reply_header_type", 2);
+
+pref("mail.operate_on_msgs_in_collapsed_threads", true);
+pref("mail.warn_on_collapsed_thread_operation", true);
+pref("mail.warn_on_shift_delete", true);
+
+// When using commands like "next message" or "previous message", leave
+// at least this percentage of the thread pane visible above / below the
+// selected message.
+pref("mail.threadpane.padding.top_percent", 10);
+pref("mail.threadpane.padding.bottom_percent", 10);
+
+// Use correspondents column instead of from/recipient columns.
+pref("mail.threadpane.use_correspondents", true);
+
+// To allow images to be inserted into a composition with an auth prompt, we
+// need the following two.
+pref("network.auth.subresource-img-cross-origin-http-auth-allow", true);
+pref("network.auth.non-web-content-triggered-resources-http-auth-allow", true);
+
+// 0=as attachment 2=default forward as inline with attachments
+pref("mail.forward_message_mode", 2);
+
+pref("mailnews.send.loglevel", "Warn");
+
+pref("mail.import.in_new_tab", true);
+
+// End core mailnews.js pref overrides
+/////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////
+// Overrides for generic app behavior from the core all.js
+/////////////////////////////////////////////////////////////////
+
+pref("browser.hiddenWindowChromeURL", "chrome://messenger/content/hiddenWindowMac.xhtml");
+
+pref("offline.startup_state", 2);
+// 0 Ask before sending unsent messages when going online
+// 1 Always send unsent messages when going online
+// 2 Never send unsent messages when going online
+pref("offline.send.unsent_messages", 0);
+
+// 0 Ask before synchronizing the offline mail store when going offline
+// 1 Always synchronize the offline store when going offline
+// 2 Never synchronize the offline store when going offline
+pref("offline.download.download_messages", 0);
+
+// All platforms can automatically move the user offline or online based on
+// the network connection.
+pref("offline.autoDetect", true);
+
+// Disable preconnect and friends due to privacy concerns. They are not
+// sent through content policies.
+pref("network.http.speculative-parallel-limit", 0);
+
+// Expose only select protocol handlers. All others should go
+// through the external protocol handler route.
+// If you are changing this list, you may need to also consider changing the
+// list in nsMsgContentPolicy::IsExposedProtocol.
+pref("network.protocol-handler.expose-all", false);
+pref("network.protocol-handler.expose.mailto", true);
+pref("network.protocol-handler.expose.mid", true);
+pref("network.protocol-handler.expose.news", true);
+pref("network.protocol-handler.expose.snews", true);
+pref("network.protocol-handler.expose.nntp", true);
+pref("network.protocol-handler.expose.imap", true);
+pref("network.protocol-handler.expose.pop", true);
+pref("network.protocol-handler.expose.mailbox", true);
+// Although we allow these to be exposed internally, there are various places
+// (e.g. message pane) where we may divert them out to external applications.
+pref("network.protocol-handler.expose.about", true);
+pref("network.protocol-handler.expose.blob", true);
+pref("network.protocol-handler.expose.data", true);
+pref("network.protocol-handler.expose.file", true);
+pref("network.protocol-handler.expose.http", true);
+pref("network.protocol-handler.expose.https", true);
+pref("network.protocol-handler.expose.javascript", true);
+pref("network.protocol-handler.expose.moz-extension", true);
+
+// suppress external-load warning for standard browser schemes
+pref("network.protocol-handler.warn-external.http", false);
+pref("network.protocol-handler.warn-external.https", false);
+pref("network.protocol-handler.warn-external.ftp", false);
+
+// prevent web pages from registering mailnews protocol handlers
+pref("network.protocol-handler.external.cid", false);
+pref("network.protocol-handler.external.mid", false);
+pref("network.protocol-handler.external.mailto", false);
+pref("network.protocol-handler.external.imap", false);
+pref("network.protocol-handler.external.imap-message", false);
+pref("network.protocol-handler.external.pop", false);
+pref("network.protocol-handler.external.pop3", false);
+pref("network.protocol-handler.external.mailbox", false);
+pref("network.protocol-handler.external.mailbox-message", false);
+pref("network.protocol-handler.external.smtp", false);
+pref("network.protocol-handler.external.smtps", false);
+pref("network.protocol-handler.external.nntp", false);
+pref("network.protocol-handler.external.news", false);
+pref("network.protocol-handler.external.news-message", false);
+pref("network.protocol-handler.external.snews", false);
+pref("network.protocol-handler.external.ldap", false);
+pref("network.protocol-handler.external.ldaps", false);
+pref("network.protocol-handler.external.webcal", false);
+pref("network.protocol-handler.external.webcals", false);
+pref("network.protocol-handler.external.moz-cal-handle-itip", false);
+pref("network.protocol-handler.external.smile", false);
+
+pref("network.hosts.smtp_server", "mail");
+pref("network.hosts.pop_server", "mail");
+
+// For testing purposes only: Flipping this pref to true allows
+// to skip the assertion that every about page ships with a CSP.
+pref("dom.security.skip_about_page_has_csp_assert", true);
+
+pref("security.warn_entering_secure", false);
+pref("security.warn_entering_weak", false);
+pref("security.warn_leaving_secure", false);
+pref("security.warn_viewing_mixed", false);
+pref("security.aboutcertificate.enabled", true);
+
+// Don't automatically cleanup intermediate CA certificates that core
+// has on a preloaded list, it causes S/MIME failures. (Bug 1777336)
+pref("security.intermediate_preloading_healer.enabled", false);
+
+// Don't show a prompt for external applications.
+pref("security.external_protocol_requires_permission", false);
+
+// Prompt for the primary password prior to opening application windows,
+// to avoid the race that triggers multiple prompts (see bug 177175).
+pref("security.prompt_for_master_password_on_startup", true);
+
+pref("general.config.obscure_value", 0); // for MCD .cfg files
+
+pref("browser.display.auto_quality_min_font_size", 0);
+
+pref("view_source.syntax_highlight", false);
+
+pref("dom.serviceWorkers.enabled", true);
+
+/////////////////////////////////////////////////////////////////
+// End core all.js pref overrides
+/////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////
+// Generic browser related prefs.
+/////////////////////////////////////////////////////////////////
+pref("browser.send_pings", false);
+pref("browser.xul.error_pages.expert_bad_cert", false);
+
+// Attachment download manager settings
+pref("browser.download.useDownloadDir", false);
+pref("browser.download.folderList", 0);
+pref("browser.download.manager.showAlertOnComplete", false);
+pref("browser.download.manager.showAlertInterval", 2000);
+pref("browser.download.manager.retention", 1);
+pref("browser.download.manager.showWhenStarting", false);
+pref("browser.download.manager.closeWhenDone", true);
+pref("browser.download.manager.focusWhenStarting", false);
+pref("browser.download.manager.flashCount", 0);
+pref("browser.download.manager.addToRecentDocs", true);
+#ifndef XP_MACOSX
+pref("browser.helperApps.deleteTempFileOnExit", true);
+#endif
+
+// Not used in Thunderbird.
+pref("browser.startup.homepage.abouthome_cache.enabled", true);
+
+pref("spellchecker.dictionary", "");
+// Dictionary download preference
+pref("spellchecker.dictionaries.download.url", "https://addons.thunderbird.net/%LOCALE%/%APP%/dictionaries/");
+
+// profile.force.migration can be used to bypass the migration wizard, forcing migration from a particular
+// mail application without any user intervention. Possible values are:
+// seamonkey (mozilla suite) and outlook.
+pref("profile.force.migration", "");
+
+// prefs to control the mail alert notification
+#ifndef XP_MACOSX
+pref("alerts.totalOpenTime", 10000);
+#endif
+
+// Disable new windows notifications until they are fully supported by Thunderbird (bug 1838139).
+#ifdef XP_WIN
+pref("alerts.useSystemBackend", false);
+#endif
+
+// analyze urls in mail messages for scams
+pref("mail.phishing.detection.enabled", true);
+// If phishing detection is enabled, allow fine grained control
+// of the local, static tests
+pref("mail.phishing.detection.ipaddresses", true);
+pref("mail.phishing.detection.mismatched_hosts", true);
+pref("mail.phishing.detection.disallow_form_actions", true);
+
+pref("browser.safebrowsing.reportPhishURL", "https://%LOCALE%.phish-report.mozilla.com/?hl=%LOCALE%");
+
+// prevent status-bar spoofing even if people are foolish enough to turn on JS
+pref("dom.disable_window_status_change", true);
+
+// If a message is opened using Enter or a double click, what should we do?
+// 0 - open it in a new window
+// 1 - open it in an existing window
+// 2 - open it in a new tab
+pref("mail.openMessageBehavior", 2);
+pref("mail.openMessageBehavior.version", 0);
+// If messages or folders are opened using the context menu or a middle click,
+// should we open them in the foreground or in the background?
+pref("mail.tabs.loadInBackground", true);
+
+// Tabs
+pref("mail.tabs.tabMinWidth", 100);
+pref("mail.tabs.tabMaxWidth", 250);
+pref("mail.tabs.tabClipWidth", 140);
+pref("mail.tabs.autoHide", true);
+pref("mail.tabs.closeWindowWithLastTab", true);
+
+// Allow the tabs to be in the titlebar on supported systems
+pref("mail.tabs.drawInTitlebar", true);
+
+// The breakpad report server to link to in about:crashes
+pref("breakpad.reportURL", "https://crash-stats.mozilla.com/report/index/");
+
+// OS Integrated Search and Indexing
+#ifdef XP_WIN
+pref("mail.winsearch.enable", false);
+pref("mail.winsearch.firstRunDone", false);
+#else
+#ifdef XP_MACOSX
+pref("mail.spotlight.enable", false);
+pref("mail.spotlight.firstRunDone", false);
+#endif
+#endif
+
+// -- Windows Search/Spotlight logging options
+#ifdef XP_WIN
+pref("mail.winsearch.loglevel", "Warn");
+#else
+#ifdef XP_MACOSX
+pref("mail.spotlight.loglevel", "Warn");
+#endif
+#endif
+
+// Whether to use a panel that looks like an OS X sheet for customization
+#ifdef XP_MACOSX
+pref("toolbar.customization.usesheet", true);
+#else
+pref("toolbar.customization.usesheet", false);
+#endif
+
+// Start compositions with (empty) attachment pane showing
+pref("mail.compose.show_attachment_pane", false);
+// Check for missing attachments?
+pref("mail.compose.attachment_reminder", true);
+// Words that should trigger a missing attachments warning.
+pref("mail.compose.attachment_reminder_keywords", "chrome://messenger/locale/messengercompose/composeMsgs.properties");
+// When no action is taken on the inline missing attachment notification,
+// show an alert on send?
+pref("mail.compose.attachment_reminder_aggressive", true);
+
+// True if the user should be notified when attaching big files
+pref("mail.compose.big_attachments.notify", true);
+// Size (in kB) to automatically prompt for conversion of attachments to
+// cloud links
+pref("mail.compose.big_attachments.threshold_kb", 5120);
+// True if the user should be notified that links will be inserted into
+// their message when the upload is completed
+pref("mail.compose.big_attachments.insert_notification", true);
+
+// While false, display information about editing sending identity in compose.
+pref("mail.compose.warned_about_customize_from", false);
+
+pref("browser.formfill.enable", true);
+
+// Disable autoplay as we don't handle audio elements in emails very well.
+// See bug 515082.
+pref("media.autoplay.enabled", false);
+
+// whether to hide the timeline view by default in the faceted search display
+pref("gloda.facetview.hidetimeline", true);
+
+// Behavior of sort-by setting in search results:
+// 0 - default to "relevance", and don't remember user setting when it is changed (== old behavior)
+// 1 - default to "date", but don't remember user setting when it is changed
+// 2 - default to "relevance", but remember user preference when it is changed
+// 3 - default to "date", but remember user preference when it is changed
+pref("gloda.facetview.sortby", 2);
+
+// Enable gloda by default!
+pref("mailnews.database.global.indexer.enabled", true);
+// Limit the number of gloda message results
+pref("mailnews.database.global.search.msg.limit", 1000);
+
+// Serif fonts look dated. Switching those language families to sans-serif
+// where we think it makes sense. Worth investigating for other font families
+// as well, viz bug 520824. See all.js for the rest of the font families
+// preferences.
+pref("font.default", "sans-serif");
+pref("font.default.x-unicode", "sans-serif");
+pref("font.default.x-western", "sans-serif");
+pref("font.default.x-cyrillic", "sans-serif");
+pref("font.default.el", "sans-serif");
+
+#ifdef XP_WIN
+pref("font.name.monospace.x-unicode", "Consolas");
+pref("font.name.sans-serif.x-unicode", "Calibri");
+pref("font.name.serif.x-unicode", "Cambria");
+pref("font.size.monospace.x-unicode", 14);
+pref("font.size.variable.x-unicode", 17);
+
+pref("font.name.monospace.x-western", "Consolas");
+pref("font.name.sans-serif.x-western", "Calibri");
+pref("font.name.serif.x-western", "Cambria");
+pref("font.size.monospace.x-western", 14);
+pref("font.size.variable.x-western", 17);
+
+pref("font.name.monospace.x-cyrillic", "Consolas");
+pref("font.name.sans-serif.x-cyrillic", "Calibri");
+pref("font.name.serif.x-cyrillic", "Cambria");
+pref("font.size.monospace.x-cyrillic", 14);
+pref("font.size.variable.x-cyrillic", 17);
+
+pref("font.name.monospace.el", "Consolas");
+pref("font.name.sans-serif.el", "Calibri");
+pref("font.name.serif.el", "Cambria");
+pref("font.size.monospace.el", 14);
+pref("font.size.variable.el", 17);
+
+pref("mail.font.windows.version", 2);
+#endif
+
+#ifdef XP_MACOSX
+pref("font.name.sans-serif.x-unicode", "Lucida Grande");
+pref("font.name.monospace.x-unicode", "Menlo");
+pref("font.name-list.sans-serif.x-unicode", "Lucida Grande");
+pref("font.name-list.monospace.x-unicode", "Menlo, Monaco");
+pref("font.size.variable.x-unicode", 15);
+pref("font.size.monospace.x-unicode", 12);
+
+pref("font.name.sans-serif.x-western", "Lucida Grande");
+pref("font.name.monospace.x-western", "Menlo");
+pref("font.name-list.sans-serif.x-western", "Lucida Grande");
+pref("font.name-list.monospace.x-western", "Menlo, Monaco");
+pref("font.size.variable.x-western", 15);
+pref("font.size.monospace.x-western", 12);
+
+pref("font.name.sans-serif.x-cyrillic", "Lucida Grande");
+pref("font.name.monospace.x-cyrillic", "Menlo");
+pref("font.name-list.sans-serif.x-cyrillic", "Lucida Grande");
+pref("font.name-list.monospace.x-cyrillic", "Menlo, Monaco");
+pref("font.size.variable.x-cyrillic", 15);
+pref("font.size.monospace.x-cyrillic", 12);
+
+pref("font.name.sans-serif.el", "Lucida Grande");
+pref("font.name.monospace.el", "Menlo");
+pref("font.name-list.sans-serif.el", "Lucida Grande");
+pref("font.name-list.monospace.el", "Menlo, Monaco");
+pref("font.size.variable.el", 15);
+pref("font.size.monospace.el", 12);
+#endif
+
+// Since different versions of Windows need different settings, we'll handle
+// this in MailMigrator.jsm.
+
+// Linux, in other words. Other OSes may wish to override.
+#ifdef UNIX_BUT_NOT_MAC
+// The font.name-list fallback is defined in case font.name isn't
+// present -- e.g. in case a profile that's been used on Windows Vista or above
+// is used on Linux.
+pref("font.name-list.serif.x-unicode", "serif");
+pref("font.name-list.sans-serif.x-unicode", "sans-serif");
+pref("font.name-list.monospace.x-unicode", "monospace");
+
+pref("font.name-list.serif.x-western", "serif");
+pref("font.name-list.sans-serif.x-western", "sans-serif");
+pref("font.name-list.monospace.x-western", "monospace");
+
+pref("font.name-list.serif.x-cyrillic", "serif");
+pref("font.name-list.sans-serif.x-cyrillic", "sans-serif");
+pref("font.name-list.monospace.x-cyrillic", "monospace");
+
+pref("font.name-list.serif.el", "serif");
+pref("font.name-list.sans-serif.el", "sans-serif");
+pref("font.name-list.monospace.el", "monospace");
+#endif
+
+pref("mail.setup.loglevel", "Warn");
+
+// Handle links targeting new windows (from within content tabs)
+// These are the values that Firefox can be set to:
+// 0=default window, 1=current window/tab, 2=new window,
+// 3=new tab in most recent window
+//
+// Thunderbird only supports a value of 3. Other values can be set, but are
+// not implemented or supported.
+pref("browser.link.open_newwindow", 3);
+
+// These are the values that Firefox can be set to:
+// 0: no restrictions - divert everything
+// 1: don't divert window.open at all
+// 2: don't divert window.open with features
+//
+// Thunderbird only supports a value of 0. Other values can be set, but are
+// not implemented or supported.
+pref("browser.link.open_newwindow.restriction", 0);
+
+pref("browser.tabs.loadDivertedInBackground", false);
+
+// Enable multi-process.
+pref("browser.tabs.remote.autostart", true);
+pref("browser.tabs.remote.desktopbehavior", true);
+pref("extensions.webextensions.remote", true);
+
+pref("extensions.webextensions.background-delayed-startup", true);
+
+// Browser icon prefs
+pref("browser.chrome.site_icons", true);
+pref("browser.chrome.favicons", true);
+
+// Enable places by default as we want to store global history for visited links
+// Below we define reasonable defaults as copied from Firefox so that we have
+// something sensible.
+pref("places.history.enabled", true);
+
+// the (maximum) number of the recent visits to sample
+// when calculating frecency
+pref("places.frecency.numVisits", 10);
+
+// buckets (in days) for frecency calculation
+pref("places.frecency.firstBucketCutoff", 4);
+pref("places.frecency.secondBucketCutoff", 14);
+pref("places.frecency.thirdBucketCutoff", 31);
+pref("places.frecency.fourthBucketCutoff", 90);
+
+// weights for buckets for frecency calculations
+pref("places.frecency.firstBucketWeight", 100);
+pref("places.frecency.secondBucketWeight", 70);
+pref("places.frecency.thirdBucketWeight", 50);
+pref("places.frecency.fourthBucketWeight", 30);
+pref("places.frecency.defaultBucketWeight", 10);
+
+// bonus (in percent) for visit transition types for frecency calculations
+pref("places.frecency.embedVisitBonus", 0);
+pref("places.frecency.framedLinkVisitBonus", 0);
+pref("places.frecency.linkVisitBonus", 100);
+pref("places.frecency.typedVisitBonus", 2000);
+pref("places.frecency.bookmarkVisitBonus", 75);
+pref("places.frecency.downloadVisitBonus", 0);
+pref("places.frecency.permRedirectVisitBonus", 0);
+pref("places.frecency.tempRedirectVisitBonus", 0);
+pref("places.frecency.reloadVisitBonus", 0);
+pref("places.frecency.defaultVisitBonus", 0);
+
+// bonus (in percent) for place types for frecency calculations
+pref("places.frecency.unvisitedBookmarkBonus", 140);
+pref("places.frecency.unvisitedTypedBonus", 200);
+
+// Enables alternative frecency calculation for origins.
+pref("places.frecency.origins.alternative.featureGate", false);
+
+// The default Places log level.
+pref("places.loglevel", "Error");
+
+// Windows taskbar support
+#ifdef XP_WIN
+pref("mail.taskbar.lists.enabled", true);
+pref("mail.taskbar.lists.tasks.enabled", true);
+#endif
+
+// Account provisioner.
+pref("mail.provider.providerList", "https://broker.thunderbird.net/provider/list");
+pref("mail.provider.suggestFromName", "https://broker.thunderbird.net/provider/suggest");
+pref("mail.provider.enabled", true);
+
+pref("mail.chat.enabled", true);
+// Whether to show chat notifications or not.
+pref("mail.chat.show_desktop_notifications", true);
+// Decide how much information is to be shown in the notification.
+// 0 == Show all info (sender, chat message message preview),
+// 1 == Show sender's info only (not message preview),
+// 2 == No info (fill dummy values).
+pref("mail.chat.notification_info", 0);
+pref("mail.chat.play_sound", true);
+// 0 == default system sound, 1 == user specified wav
+pref("mail.chat.play_sound.type", 0);
+// if sound is user specified, this needs to be a file url
+pref("mail.chat.play_sound.url", "");
+// Enable/Disable support for OTR chat encryption.
+pref("chat.otr.enable", true);
+// Default values for chat account prefs.
+pref("chat.otr.default.requireEncryption", false);
+pref("chat.otr.default.verifyNudge", true);
+pref("chat.otr.default.allowMsgLog", true);
+
+// BigFiles
+pref("mail.cloud_files.enabled", true);
+pref("mail.cloud_files.learn_more_url", "https://support.thunderbird.net/kb/filelink-large-attachments");
+
+// Ignore threads
+pref("mail.ignore_thread.learn_more_url", "https://support.thunderbird.net/kb/ignore-threads");
+
+// Density control for the entire Thunderbird UI.
+// The possible values are 0=compact, 1=normal, 2=touch.
+pref("mail.uidensity", 1);
+
+// Font size control for the entire Thunderbird UI. The value represents the
+// pixel value which will be applied as inline style to the root element of the
+// page (e.g.: 14 = font-size: 14px)
+pref("mail.uifontsize", 0);
+
+// Sanitize dialog window
+pref("privacy.cpd.history", true);
+pref("privacy.cpd.cookies", true);
+pref("privacy.cpd.cache", true);
+
+// What default should we use for the time span in the sanitizer:
+// 0 - Clear everything
+// 1 - Last Hour
+// 2 - Last 2 Hours
+// 3 - Last 4 Hours
+// 4 - Today
+pref("privacy.sanitize.timeSpan", 1);
+
+// Enable Contextual Identity Containers
+pref("privacy.userContext.enabled", false);
+
+// Set to true to add toggles to the WebRTC indicator for globally
+// muting the camera and microphone.
+pref("privacy.webrtc.globalMuteToggles", false);
+
+// If set to true, Thunderbird will collapse the main menu for new profiles
+// (or, more precisely, profiles that start with no accounts created).
+pref("mail.main_menu.collapse_by_default", true);
+
+// If set to true, when saving a message to a file, use underscore
+// instead of space in the file name.
+pref("mail.save_msg_filename_underscores_for_space", false);
+
+#ifdef NIGHTLY_BUILD
+// See bug 1572568 for details. Disallow eval() with system principal.
+pref("security.allow_eval_with_system_principal", false);
+#endif
+
+// Enable FIDO U2F
+pref("security.webauth.u2f", true);
+
+// Use OS date and time settings by default.
+pref("intl.regional_prefs.use_os_locales", true);
+
+// Multi-lingual preferences:
+// *.enabled - Are langpacks available for the build of Firefox?
+// *.downloadEnabled - Langpacks are allowed to be downloaded from ATN. ATN only serves
+// langpacks for release and beta. There is no release-only define, so we also enable
+// it for beta.
+// *.liveReload - Switching a langpack will change the language without a restart.
+// *.liveReloadBidirectional - Allows switching when moving between LTR and RTL
+// languages without a full restart.
+pref("intl.multilingual.enabled", true);
+#if defined(RELEASE_OR_BETA)
+pref("intl.multilingual.downloadEnabled", true);
+pref("intl.multilingual.liveReload", false);
+pref("intl.multilingual.liveReloadBidirectional", false);
+#else
+pref("intl.multilingual.downloadEnabled", false);
+pref("intl.multilingual.liveReload", false);
+pref("intl.multilingual.liveReloadBidirectional", false);
+#endif
+
+// if true, use full page zoom instead of text zoom
+pref("browser.zoom.full", true);
+
+pref("toolkit.osKeyStore.loglevel", "Warn");
+
+// Developer Tools related preferences
+pref("devtools.chrome.enabled", true);
+pref("devtools.debugger.remote-enabled", true);
+pref("devtools.selfxss.count", 5);
+// Enable extensionStorage storage actor by default
+pref("devtools.storage.extensionStorage.enabled", true);
+
+// Toolbox preferences
+pref("devtools.toolbox.footer.height", 250);
+pref("devtools.toolbox.sidebar.width", 500);
+pref("devtools.toolbox.host", "bottom");
+pref("devtools.toolbox.previousHost", "right");
+pref("devtools.toolbox.selectedTool", "inspector");
+pref("devtools.toolbox.sideEnabled", true);
+pref("devtools.toolbox.zoomValue", "1");
+pref("devtools.toolbox.splitconsoleEnabled", false);
+pref("devtools.toolbox.splitconsoleHeight", 100);
+pref("devtools.toolbox.tabsOrder", "");
+pref("devtools.netmonitor.features.newEditAndResend", false);
+
+// The fission pref for enabling the "Multiprocess Browser Toolbox", which will
+// make it possible to debug anything in Firefox (See Bug 1570639 for more
+// information).
+#if defined(NIGHTLY_BUILD)
+pref("devtools.browsertoolbox.fission", true);
+#else
+pref("devtools.browsertoolbox.fission", false);
+#endif
+
+// When the Multiprocess Browser Toolbox is enabled, you can configure the scope of it:
+// - "everything" will enable debugging absolutely everything in the browser
+// All processes, all documents, all workers, all add-ons.
+// - "parent-process" will restrict debugging to the parent process
+// All privileged javascript, documents and workers running in the parent process.
+pref("devtools.browsertoolbox.scope", "everything");
+
+// Toolbox Button preferences
+pref("devtools.command-button-pick.enabled", true);
+pref("devtools.command-button-frames.enabled", true);
+pref("devtools.command-button-splitconsole.enabled", true);
+pref("devtools.command-button-responsive.enabled", true);
+pref("devtools.command-button-screenshot.enabled", false);
+pref("devtools.command-button-rulers.enabled", false);
+pref("devtools.command-button-measure.enabled", false);
+pref("devtools.command-button-noautohide.enabled", false);
+pref("devtools.command-button-errorcount.enabled", true);
+#ifndef MOZILLA_OFFICIAL
+ pref("devtools.command-button-experimental-prefs.enabled", true);
+#endif
+
+// Inspector preferences
+// Enable the Inspector
+pref("devtools.inspector.enabled", true);
+// What was the last active sidebar in the inspector
+pref("devtools.inspector.selectedSidebar", "layoutview");
+pref("devtools.inspector.activeSidebar", "layoutview");
+pref("devtools.inspector.remote", false);
+
+// Enable the 3 pane mode in the inspector
+pref("devtools.inspector.three-pane-enabled", true);
+// Enable the 3 pane mode in the chrome inspector
+pref("devtools.inspector.chrome.three-pane-enabled", false);
+// Collapse pseudo-elements by default in the rule-view
+pref("devtools.inspector.show_pseudo_elements", false);
+// The default size for image preview tooltips in the rule-view/computed-view/markup-view
+pref("devtools.inspector.imagePreviewTooltipSize", 300);
+// Enable user agent style inspection in rule-view
+pref("devtools.inspector.showUserAgentStyles", false);
+// Show native anonymous content and user agent shadow roots
+pref("devtools.inspector.showAllAnonymousContent", false);
+// Enable the inline CSS compatibility warning in inspector rule view
+pref("devtools.inspector.ruleview.inline-compatibility-warning.enabled", false);
+// Enable the compatibility tool in the inspector.
+pref("devtools.inspector.compatibility.enabled", true);
+// Enable color scheme simulation in the inspector.
+pref("devtools.inspector.color-scheme-simulation.enabled", true);
+
+// Grid highlighter preferences
+pref("devtools.gridinspector.gridOutlineMaxColumns", 50);
+pref("devtools.gridinspector.gridOutlineMaxRows", 50);
+pref("devtools.gridinspector.showGridAreas", false);
+pref("devtools.gridinspector.showGridLineNumbers", false);
+pref("devtools.gridinspector.showInfiniteLines", false);
+// Max number of grid highlighters that can be displayed
+pref("devtools.gridinspector.maxHighlighters", 3);
+
+// Whether or not simplified highlighters should be used when
+// prefers-reduced-motion is enabled.
+pref("devtools.inspector.simple-highlighters-reduced-motion", false);
+
+// Whether or not the box model panel is opened in the layout view
+pref("devtools.layout.boxmodel.opened", true);
+// Whether or not the flexbox panel is opened in the layout view
+pref("devtools.layout.flexbox.opened", true);
+// Whether or not the flexbox container panel is opened in the layout view
+pref("devtools.layout.flex-container.opened", true);
+// Whether or not the flexbox item panel is opened in the layout view
+pref("devtools.layout.flex-item.opened", true);
+// Whether or not the grid inspector panel is opened in the layout view
+pref("devtools.layout.grid.opened", true);
+
+// Enable hovering Box Model values and jumping to their source CSS rule in the
+// rule-view.
+#if defined(NIGHTLY_BUILD)
+ pref("devtools.layout.boxmodel.highlightProperty", true);
+#else
+ pref("devtools.layout.boxmodel.highlightProperty", false);
+#endif
+
+// By how many times eyedropper will magnify pixels
+pref("devtools.eyedropper.zoom", 6);
+
+// Enable to collapse attributes that are too long.
+pref("devtools.markup.collapseAttributes", true);
+// Length to collapse attributes
+pref("devtools.markup.collapseAttributeLength", 120);
+// Whether to auto-beautify the HTML on copy.
+pref("devtools.markup.beautifyOnCopy", false);
+// Whether or not the DOM mutation breakpoints context menu are enabled in the
+// markup view.
+pref("devtools.markup.mutationBreakpoints.enabled", true);
+
+// DevTools default color unit
+pref("devtools.defaultColorUnit", "authored");
+
+// Enable the Memory tools
+pref("devtools.memory.enabled", true);
+
+pref("devtools.memory.custom-census-displays", "{}");
+pref("devtools.memory.custom-label-displays", "{}");
+pref("devtools.memory.custom-tree-map-displays", "{}");
+
+pref("devtools.memory.max-individuals", 1000);
+pref("devtools.memory.max-retaining-paths", 10);
+
+// Enable the Performance tools
+pref("devtools.performance.enabled", true);
+// But not the pop-up.
+pref("devtools.performance.popup.feature-flag", false);
+// Override the default preset, which is "web-developer" on beta and release.
+pref("devtools.performance.recording.preset", "firefox-platform");
+pref("devtools.performance.recording.preset.remote", "firefox-platform");
+
+// The default cache UI setting
+pref("devtools.cache.disabled", false);
+
+// The default service workers UI setting
+pref("devtools.serviceWorkers.testing.enabled", false);
+
+// Enable the Network Monitor
+pref("devtools.netmonitor.enabled", true);
+
+pref("devtools.netmonitor.features.search", true);
+pref("devtools.netmonitor.features.requestBlocking", true);
+
+// Enable the Application panel
+pref("devtools.application.enabled", false);
+
+// Enable the custom formatters feature
+// TODO remove once the custom formatters feature is stable (see bug 1734614)
+pref("devtools.custom-formatters", false);
+// This preference represents the user's choice to enable the custom formatters feature.
+// While the preference above will be removed once the feature is stable, this one is menat to stay.
+pref("devtools.custom-formatters.enabled", false);
+
+// The default Network Monitor UI settings
+pref("devtools.netmonitor.panes-network-details-width", 550);
+pref("devtools.netmonitor.panes-network-details-height", 450);
+pref("devtools.netmonitor.panes-search-width", 550);
+pref("devtools.netmonitor.panes-search-height", 450);
+pref("devtools.netmonitor.filters", "[\"all\"]");
+pref("devtools.netmonitor.visibleColumns",
+ "[\"status\",\"method\",\"domain\",\"file\",\"initiator\",\"type\",\"transferred\",\"contentSize\",\"waterfall\"]"
+);
+pref("devtools.netmonitor.columnsData",
+ '[{"name":"status","minWidth":30,"width":5}, {"name":"method","minWidth":30,"width":5}, {"name":"domain","minWidth":30,"width":10}, {"name":"file","minWidth":30,"width":25}, {"name":"url","minWidth":30,"width":25},{"name":"initiator","minWidth":30,"width":10},{"name":"type","minWidth":30,"width":5},{"name":"transferred","minWidth":30,"width":10},{"name":"contentSize","minWidth":30,"width":5},{"name":"waterfall","minWidth":150,"width":15}]');
+pref("devtools.netmonitor.msg.payload-preview-height", 128);
+pref("devtools.netmonitor.msg.visibleColumns",
+ '["data", "time"]'
+);
+pref("devtools.netmonitor.msg.displayed-messages.limit", 500);
+
+pref("devtools.netmonitor.response.ui.limit", 10240);
+
+// Save request/response bodies yes/no.
+pref("devtools.netmonitor.saveRequestAndResponseBodies", true);
+
+// The default Network monitor HAR export setting
+pref("devtools.netmonitor.har.defaultLogDir", "");
+pref("devtools.netmonitor.har.defaultFileName", "%hostname_Archive [%date]");
+pref("devtools.netmonitor.har.jsonp", false);
+pref("devtools.netmonitor.har.jsonpCallback", "");
+pref("devtools.netmonitor.har.includeResponseBodies", true);
+pref("devtools.netmonitor.har.compress", false);
+pref("devtools.netmonitor.har.forceExport", false);
+pref("devtools.netmonitor.har.pageLoadedTimeout", 1500);
+pref("devtools.netmonitor.har.enableAutoExportToFile", false);
+
+pref("devtools.netmonitor.features.webSockets", true);
+
+// netmonitor audit
+pref("devtools.netmonitor.audits.slow", 500);
+
+// Disable the EventSource Inspector.
+pref("devtools.netmonitor.features.serverSentEvents", false);
+
+// Enable the Storage Inspector
+pref("devtools.storage.enabled", true);
+
+// Enable the Style Editor.
+pref("devtools.styleeditor.enabled", true);
+pref("devtools.styleeditor.autocompletion-enabled", true);
+pref("devtools.styleeditor.showMediaSidebar", true);
+pref("devtools.styleeditor.mediaSidebarWidth", 238);
+pref("devtools.styleeditor.navSidebarWidth", 245);
+pref("devtools.styleeditor.transitions", true);
+
+// Screenshot Option Settings.
+pref("devtools.screenshot.clipboard.enabled", false);
+pref("devtools.screenshot.audio.enabled", true);
+
+// Make sure the DOM panel is hidden by default
+pref("devtools.dom.enabled", false);
+
+// Enable the Accessibility panel.
+pref("devtools.accessibility.enabled", true);
+
+// Web console filters
+pref("devtools.webconsole.filter.error", true);
+pref("devtools.webconsole.filter.warn", true);
+pref("devtools.webconsole.filter.info", true);
+pref("devtools.webconsole.filter.log", true);
+pref("devtools.webconsole.filter.debug", true);
+pref("devtools.webconsole.filter.css", false);
+pref("devtools.webconsole.filter.net", false);
+pref("devtools.webconsole.filter.netxhr", false);
+
+// Webconsole autocomplete preference
+pref("devtools.webconsole.input.autocomplete",true);
+#ifdef NIGHTLY_BUILD
+ pref("devtools.webconsole.input.context", true);
+#else
+ pref("devtools.webconsole.input.context", false);
+#endif
+
+// Set to true to eagerly show the results of webconsole terminal evaluations
+// when they don't have side effects.
+pref("devtools.webconsole.input.eagerEvaluation", true);
+
+// Browser console filters
+pref("devtools.browserconsole.filter.error", true);
+pref("devtools.browserconsole.filter.warn", true);
+pref("devtools.browserconsole.filter.info", true);
+pref("devtools.browserconsole.filter.log", true);
+pref("devtools.browserconsole.filter.debug", true);
+pref("devtools.browserconsole.filter.css", false);
+pref("devtools.browserconsole.filter.net", false);
+pref("devtools.browserconsole.filter.netxhr", false);
+
+// Max number of inputs to store in web console history.
+pref("devtools.webconsole.inputHistoryCount", 300);
+
+// Persistent logging: |true| if you want the relevant tool to keep all of the
+// logged messages after reloading the page, |false| if you want the output to
+// be cleared each time page navigation happens.
+pref("devtools.webconsole.persistlog", false);
+pref("devtools.netmonitor.persistlog", false);
+
+// Web Console timestamp: |true| if you want the logs and instructions
+// in the Web Console to display a timestamp, or |false| to not display
+// any timestamps.
+pref("devtools.webconsole.timestampMessages", false);
+
+// Enable the webconsole sidebar toggle in Nightly builds.
+#if defined(NIGHTLY_BUILD)
+ pref("devtools.webconsole.sidebarToggle", true);
+#else
+ pref("devtools.webconsole.sidebarToggle", false);
+#endif
+
+// Saved editor mode state in the console.
+pref("devtools.webconsole.input.editor", false);
+pref("devtools.browserconsole.input.editor", false);
+
+// Editor width for webconsole and browserconsole.
+pref("devtools.webconsole.input.editorWidth", 0);
+pref("devtools.browserconsole.input.editorWidth", 0);
+
+// Display an onboarding UI for the Editor mode.
+pref("devtools.webconsole.input.editorOnboarding", true);
+
+// Enable message grouping in the console, true by default
+pref("devtools.webconsole.groupWarningMessages", true);
+
+// Saved state of the Display content messages checkbox in the browser console.
+pref("devtools.browserconsole.contentMessages", true);
+
+// Enable network monitoring the browser toolbox console/browser console.
+pref("devtools.browserconsole.enableNetworkMonitoring", false);
+
+// Enable client-side mapping service for source maps
+pref("devtools.source-map.client-service.enabled", true);
+
+// The number of lines that are displayed in the web console.
+pref("devtools.hud.loglimit", 10000);
+
+// The developer tools editor configuration:
+// - tabsize: how many spaces to use when a Tab character is displayed.
+// - expandtab: expand Tab characters to spaces.
+// - keymap: which keymap to use (can be 'default', 'emacs' or 'vim')
+// - autoclosebrackets: whether to permit automatic bracket/quote closing.
+// - detectindentation: whether to detect the indentation from the file
+// - enableCodeFolding: Whether to enable code folding or not.
+pref("devtools.editor.tabsize", 2);
+pref("devtools.editor.expandtab", true);
+pref("devtools.editor.keymap", "default");
+pref("devtools.editor.autoclosebrackets", true);
+pref("devtools.editor.detectindentation", true);
+pref("devtools.editor.enableCodeFolding", true);
+pref("devtools.editor.autocomplete", true);
+
+// The angle of the viewport.
+pref("devtools.responsive.viewport.angle", 0);
+// The width of the viewport.
+pref("devtools.responsive.viewport.width", 320);
+// The height of the viewport.
+pref("devtools.responsive.viewport.height", 480);
+// The pixel ratio of the viewport.
+pref("devtools.responsive.viewport.pixelRatio", 0);
+// Whether or not the viewports are left aligned.
+pref("devtools.responsive.leftAlignViewport.enabled", false);
+// Whether to reload when touch simulation is toggled
+pref("devtools.responsive.reloadConditions.touchSimulation", false);
+// Whether to reload when user agent is changed
+pref("devtools.responsive.reloadConditions.userAgent", false);
+// Whether to show the notification about reloading to apply emulation
+pref("devtools.responsive.reloadNotification.enabled", true);
+// Whether or not touch simulation is enabled.
+pref("devtools.responsive.touchSimulation.enabled", false);
+// The user agent of the viewport.
+pref("devtools.responsive.userAgent", "");
+
+// Show the custom user agent input in Nightly builds.
+#if defined(NIGHTLY_BUILD)
+ pref("devtools.responsive.showUserAgentInput", true);
+#else
+ pref("devtools.responsive.showUserAgentInput", false);
+#endif
+
+// Show tab debug targets for This Firefox (on by default for local builds).
+#ifdef MOZILLA_OFFICIAL
+ pref("devtools.aboutdebugging.local-tab-debugging", false);
+#else
+ pref("devtools.aboutdebugging.local-tab-debugging", true);
+#endif
+
+// Show process debug targets.
+pref("devtools.aboutdebugging.process-debugging", true);
+// Stringified array of network locations that users can connect to.
+pref("devtools.aboutdebugging.network-locations", "[]");
+// Debug target pane collapse/expand settings.
+pref("devtools.aboutdebugging.collapsibilities.installedExtension", false);
+pref("devtools.aboutdebugging.collapsibilities.otherWorker", false);
+pref("devtools.aboutdebugging.collapsibilities.serviceWorker", false);
+pref("devtools.aboutdebugging.collapsibilities.sharedWorker", false);
+pref("devtools.aboutdebugging.collapsibilities.tab", false);
+pref("devtools.aboutdebugging.collapsibilities.temporaryExtension", false);
+
+// about:debugging: only show system and hidden extensions in local builds by
+// default.
+#ifdef MOZILLA_OFFICIAL
+ pref("devtools.aboutdebugging.showHiddenAddons", false);
+#else
+ pref("devtools.aboutdebugging.showHiddenAddons", true);
+#endif
+
+// Map top-level await expressions in the console
+pref("devtools.debugger.features.map-await-expression", true);
+
+// This relies on javascript.options.asyncstack as well or it has no effect.
+pref("devtools.debugger.features.async-captured-stacks", true);
+pref("devtools.debugger.features.async-live-stacks", false);
+
+// Disable autohide for DevTools popups and tooltips.
+// This is currently not exposed by any UI to avoid making
+// about:devtools-toolbox tabs unusable by mistake.
+pref("devtools.popup.disable_autohide", false);
+
+// Enable overflow debugging in the inspector.
+pref("devtools.overflow.debugging.enabled", true);
+// Enable drag to edit properties in the inspector rule view.
+pref("devtools.inspector.draggable_properties", true);
+
+// Telemetry settings.
+
+// Server to submit telemetry pings to.
+pref("toolkit.telemetry.server", "https://incoming-telemetry.thunderbird.net");
+pref("toolkit.telemetry.server_owner", "Thunderbird");
+
+// Determines if Telemetry pings can be archived locally.
+pref("toolkit.telemetry.archive.enabled", true);
+// Enables sending the shutdown ping when Thunderbird shuts down.
+pref("toolkit.telemetry.shutdownPingSender.enabled", true);
+// Enables sending the shutdown ping using the pingsender from the first session.
+pref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false);
+// Enables sending a duplicate of the first shutdown ping from the first session.
+pref("toolkit.telemetry.firstShutdownPing.enabled", true);
+// Enables sending the 'new-profile' ping on new profiles.
+pref("toolkit.telemetry.newProfilePing.enabled", true);
+// Enables sending 'update' pings on Thunderbird updates.
+pref("toolkit.telemetry.updatePing.enabled", true);
+// Enables sending 'bhr' pings when the app hangs.
+pref("toolkit.telemetry.bhrPing.enabled", true);
+// Whether to enable Ecosystem Telemetry, requires a restart.
+#ifdef NIGHTLY_BUILD
+ pref("toolkit.telemetry.ecosystemtelemetry.enabled", true);
+#else
+ pref("toolkit.telemetry.ecosystemtelemetry.enabled", false);
+#endif
+
+#ifdef XP_WIN
+pref("mail.minimizeToTray", false);
+#endif
+
+pref("prompts.defaultModalType", 3);
+pref("prompts.contentPromptSubDialog", false);
+
+// The URL for the privacy policy related to recommended extensions.
+pref("extensions.recommendations.privacyPolicyUrl", "https://www.mozilla.org/en-US/privacy/thunderbird/#addons");
+
+// Used by pdf.js to know the first time Thunderbird is run with it installed
+// so it can become the default pdf viewer.
+pref("pdfjs.firstRun", true);
+// The values of preferredAction and alwaysAskBeforeHandling before pdf.js
+// became the default.
+pref("pdfjs.previousHandler.preferredAction", 0);
+pref("pdfjs.previousHandler.alwaysAskBeforeHandling", false);
+
+pref("mail.activity.loglevel", "Warn");
+
+// The number of public recipients before we offer BCC addressing.
+pref("mail.compose.warn_public_recipients.threshold", 15);
+
+// Indicates whether to show an alert before send if no action taken while the
+// too many public recipients notification is shown.
+pref("mail.compose.warn_public_recipients.aggressive", false);
+
+// The URL of most things that can be printed is useless information.
+// Hide it and move the title to the center.
+pref("print.print_headerleft", "");
+pref("print.print_headercenter", "&T");
+pref("print.print_headerright", "");
+
+// Enable Masonry Layout for AddressBook.
+pref("layout.css.grid-template-masonry-value.enabled", true);
+
+#ifdef NIGHTLY_BUILD
+// If set to false, FxAccounts and Sync will be unavailable.
+// A restart is mandatory after flipping that preference.
+pref("identity.fxaccounts.enabled", true);
+pref("identity.fxaccounts.log.sensitive", true);
+pref("services.sync.log.appender.console", "Info");
+// Auto-config URL for FxA self-hosters, makes an HTTP request to
+// [identity.fxaccounts.autoconfig.uri]/.well-known/fxa-client-configuration
+// This is now the prefered way of pointing to a custom FxA server, instead
+// of making changes to "identity.fxaccounts.*.uri".
+pref("identity.fxaccounts.autoconfig.uri", "https://accounts.stage.mozaws.net");
+// The remote FxA root content URL. Must use HTTPS.
+pref("identity.fxaccounts.remote.root", "https://accounts.stage.mozaws.net");
+// The value of the context query parameter passed in FxA requests.
+pref("identity.fxaccounts.contextParam", "fx_desktop_v3");
+// Token server used by the FxA Sync identity.
+pref("identity.sync.tokenserver.uri", "https://token.stage.mozaws.net/1.0/sync/1.5");
+// Adds stage server to the white list, because we need it.
+pref("webchannel.allowObject.urlWhitelist", "https://content.cdn.mozilla.net https://support.mozilla.org https://install.mozilla.org https://accounts.stage.mozaws.net");
+// Adds Firefox/10x.0 to the User-Agent string, because we need it.
+// TODO: Fix this.
+pref("general.useragent.compatMode.firefox", true);
+
+// Enable the sync engines we want, and disable the ones we don't want.
+pref("services.sync.engine.accounts", true);
+pref("services.sync.engine.addons", false);
+pref("services.sync.engine.addressbooks", true);
+pref("services.sync.engine.addresses", false);
+pref("services.sync.engine.calendars", true);
+pref("services.sync.engine.creditcards", false);
+pref("services.sync.engine.identities", true);
+pref("services.sync.engine.prefs", false);
+#endif
+
+// Donation appeal.
+pref("app.donation.eoy.version", 4);
+pref("app.donation.eoy.version.viewed", 0);
+pref("app.donation.eoy.url", "https://www.thunderbird.net/thunderbird/115.0/holidayeoy/");
+
+// IMAP-JS disabled, Bug 1707547.
+pref("mailnews.imap.jsmodule", false);
+
+// Unified toolbar
+
+// 0: icons beside text
+// 1: icons above text
+// 2: icons only
+// 3: text only
+pref("toolbar.unifiedtoolbar.buttonstyle", 0);
diff --git a/comm/mail/app/profile/channel-prefs.js b/comm/mail/app/profile/channel-prefs.js
new file mode 100644
index 0000000000..633c489f3c
--- /dev/null
+++ b/comm/mail/app/profile/channel-prefs.js
@@ -0,0 +1,5 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pref("app.update.channel", "@MOZ_UPDATE_CHANNEL@");
diff --git a/comm/mail/app/settings/dumps/moz.build b/comm/mail/app/settings/dumps/moz.build
new file mode 100644
index 0000000000..6d7b3b432c
--- /dev/null
+++ b/comm/mail/app/settings/dumps/moz.build
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+DIRS += [
+ "thunderbird",
+]
diff --git a/comm/mail/app/settings/dumps/thunderbird/anti-tracking-url-decoration.json b/comm/mail/app/settings/dumps/thunderbird/anti-tracking-url-decoration.json
new file mode 100644
index 0000000000..dd336cbd96
--- /dev/null
+++ b/comm/mail/app/settings/dumps/thunderbird/anti-tracking-url-decoration.json
@@ -0,0 +1,11 @@
+{
+ "data": [
+ {
+ "token": "fbclid",
+ "schema": 1564436129080,
+ "id": "60e82333-914d-4cfa-95b1-5f034b5a704b",
+ "last_modified": 1564511755134
+ }
+ ],
+ "timestamp": 1564511755134
+}
diff --git a/comm/mail/app/settings/dumps/thunderbird/hijack-blocklists.json b/comm/mail/app/settings/dumps/thunderbird/hijack-blocklists.json
new file mode 100644
index 0000000000..f00e73aebe
--- /dev/null
+++ b/comm/mail/app/settings/dumps/thunderbird/hijack-blocklists.json
@@ -0,0 +1,59 @@
+{
+ "data": [
+ {
+ "schema": 1605793537508,
+ "matches": [
+ "[https]opensearch.startpageweb.com/bing-search.xml",
+ "[https]opensearch.startwebsearch.com/bing-search.xml",
+ "[https]opensearch.webstartsearch.com/bing-search.xml",
+ "[https]opensearch.webofsearch.com/bing-search.xml",
+ "[profile]/searchplugins/Yahoo! Powered.xml",
+ "[profile]/searchplugins/yahoo! powered.xml",
+ "[profile]/searchplugins/bing-lavasoft-ff59.xml"
+ ],
+ "id": "load-paths",
+ "last_modified": 1626756455894
+ },
+ {
+ "schema": 1605793528951,
+ "matches": [
+ "hspart=lvs",
+ "pc=COS",
+ "clid=2308146",
+ "fr=mca",
+ "PC=MC0",
+ "lavasoft.gosearchresults",
+ "securedsearch.lavasoft",
+ "fr=mcsaoffblock",
+ "fr=jnazafzv",
+ "clid=2285101",
+ "pc=mc",
+ "//defaultsearch.co/",
+ "//searchdefault.co/"
+ ],
+ "id": "submission-urls",
+ "last_modified": 1626756429780
+ },
+ {
+ "schema": 1605728369453,
+ "matches": [
+ "hspart=lvs",
+ "pc=COS",
+ "clid=2308146",
+ "fr=mca",
+ "PC=MC0",
+ "lavasoft.gosearchresults",
+ "securedsearch.lavasoft",
+ "fr=mcsaoffblock",
+ "fr=jnazafzv",
+ "clid=2285101",
+ "pc=mc",
+ "//defaultsearch.co/",
+ "//searchdefault.co/"
+ ],
+ "id": "homepage-urls",
+ "last_modified": 1626756283026
+ }
+ ],
+ "timestamp": 1626756455894
+}
diff --git a/comm/mail/app/settings/dumps/thunderbird/moz.build b/comm/mail/app/settings/dumps/thunderbird/moz.build
new file mode 100644
index 0000000000..b3535c982e
--- /dev/null
+++ b/comm/mail/app/settings/dumps/thunderbird/moz.build
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Data obtained by
+# SERVER="https://thunderbird-settings.thunderbird.net/v1"
+# wget -qO- "$SERVER/buckets/thunderbird/collections/search-config/changeset?_expected=0" | \
+# jq '{"data": .changes, "timestamp": .timestamp}'
+
+FINAL_TARGET_FILES.defaults.settings.thunderbird += [
+ "anti-tracking-url-decoration.json",
+ "hijack-blocklists.json",
+ "password-recipes.json",
+ "search-config.json",
+ "url-classifier-skip-urls.json",
+]
diff --git a/comm/mail/app/settings/dumps/thunderbird/password-recipes.json b/comm/mail/app/settings/dumps/thunderbird/password-recipes.json
new file mode 100644
index 0000000000..6e31aa8c12
--- /dev/null
+++ b/comm/mail/app/settings/dumps/thunderbird/password-recipes.json
@@ -0,0 +1,4 @@
+{
+ "data": [],
+ "timestamp": 1674595048726
+}
diff --git a/comm/mail/app/settings/dumps/thunderbird/records b/comm/mail/app/settings/dumps/thunderbird/records
new file mode 100644
index 0000000000..cf94aab050
--- /dev/null
+++ b/comm/mail/app/settings/dumps/thunderbird/records
@@ -0,0 +1 @@
+{"data":[{"appliesTo":[{"included":{"everywhere":true}},{"included":{"locales":{"matches":["af","an","ar","as","ast","az","be","bg","br","bs","crh","cy","da","de","dsb","el","eo","et","eu","fa","fi","fy-NL","ga-IE","gd","gl","gn","he","hr","hsb","hu","ia","id","is","it","ka","kab","kk","km","kn","lij","lo","lt","ltg","lv","mk","ml","mr","ms","my","nl","oc","or","pl","rm","ro","ru","si","sk","sl","sq","sr","sv-SE","ta","te","th","tl","tr","uk","ur","uz","vi","wo","zh-CN","zh-TW"]}},"webExtension":{"locales":["$USER_LOCALE"]}},{"included":{"locales":{"matches":["be"]}},"webExtension":{"locales":["be","be-tarask"]}},{"included":{"locales":{"matches":["bn","bn-BD","bn-IN"]}},"webExtension":{"locales":["bn"]}},{"included":{"locales":{"matches":["ca","ca-valencia"]}},"webExtension":{"locales":["ca"]}},{"included":{"locales":{"matches":["cak","es-AR","es-CL","es-ES","es-MX","trs"]}},"webExtension":{"locales":["es"]}},{"included":{"locales":{"matches":["cs"]}},"webExtension":{"locales":["cz"]}},{"included":{"locales":{"matches":["ff","fr","son"]}},"webExtension":{"locales":["fr"]}},{"included":{"locales":{"matches":["gu-IN"]}},"webExtension":{"locales":["gu"]}},{"included":{"locales":{"matches":["hi-IN"]}},"webExtension":{"locales":["hi"]}},{"included":{"locales":{"matches":["hy-AM"]}},"webExtension":{"locales":["hy"]}},{"included":{"locales":{"matches":["ja-JP-macos","ja"]}},"webExtension":{"locales":["ja"]}},{"included":{"locales":{"matches":["ko"]}},"webExtension":{"locales":["kr"]}},{"included":{"locales":{"matches":["mai"]}},"webExtension":{"locales":["hi"]}},{"included":{"locales":{"matches":["ml"]}},"webExtension":{"locales":["en","ml"]}},{"included":{"locales":{"matches":["nb-NO"]}},"webExtension":{"locales":["NO"]}},{"included":{"locales":{"matches":["ne-NP"]}},"webExtension":{"locales":["ne"]}},{"included":{"locales":{"matches":["nn-NO"]}},"webExtension":{"locales":["NN"]}},{"included":{"locales":{"matches":["pa-IN"]}},"webExtension":{"locales":["pa"]}},{"included":{"locales":{"matches":["pt-BR","pt-PT"]}},"webExtension":{"locales":["pt"]}}],"webExtension":{"id":"wikipedia@search.mozilla.org","version":"1.0"},"id":"8563efb6-e9f5-4f83-88b4-5124e5a51885","last_modified":1597452131957},{"appliesTo":[{"included":{"locales":{"matches":["sk"]}}}],"webExtension":{"id":"zoznam-sk@search.mozilla.org","version":"1.2"},"id":"208e5b83-ea31-4ad3-b5b1-8c46fdb646d2","last_modified":1597452131934},{"appliesTo":[{"included":{"locales":{"matches":["ja-JP-macos","ja"]}}}],"webExtension":{"id":"yahoo-jp-auctions@search.mozilla.org","version":"1.2"},"id":"3d048cc7-0b49-49f1-8275-25562f997cd4","last_modified":1597452131911},{"appliesTo":[{"included":{"locales":{"matches":["ja-JP-macos","ja"]}}}],"webExtension":{"id":"yahoo-jp@search.mozilla.org","version":"1.0"},"id":"4a3c25e9-32fc-43ba-9f64-04f44f23edf0","last_modified":1597452131889},{"appliesTo":[{"included":{"locales":{"matches":["pl"]}}}],"webExtension":{"id":"wolnelektury-pl@search.mozilla.org","version":"1.0"},"id":"cebf41a8-bb48-4f5a-b05a-404e57c4e019","last_modified":1597452131866},{"appliesTo":[{"included":{"locales":{"matches":["te"]}},"webExtension":{"locales":["te"]}},{"included":{"locales":{"matches":["oc"]}},"webExtension":{"locales":["oc"]}}],"webExtension":{"id":"wiktionary@search.mozilla.org","version":"1.0"},"id":"676fad59-3280-4e5d-a3ae-74c918f6b8d3","last_modified":1597452131842},{"appliesTo":[{"included":{"locales":{"matches":["hu"]}}}],"webExtension":{"id":"vatera@search.mozilla.org","version":"1.2"},"id":"ff997f3f-e41c-44e2-96b2-419a1ed7e7c4","last_modified":1597452131820},{"appliesTo":[{"included":{"locales":{"matches":["sv-SE"]}}}],"webExtension":{"id":"tyda-sv-SE@search.mozilla.org","version":"1.0"},"id":"f3930927-4422-4cc1-9576-b70a80e528b8","last_modified":1597452131797},{"appliesTo":[{"included":{"locales":{"matches":["default","en-US","ach","an","bs","ca","ca-valencia","crh","en-CA","ga-IE","gn","hr","ia","ka","kk","km","lo","lt","mai","ms","my","ne-NP","oc","pt-BR","sl","tl","tr","ur","uz","wo"]}}},{"included":{"locales":{"matches":["ja-JP-macos","ja"]}},"webExtension":{"locales":["ja"]}}],"webExtension":{"id":"twitter@search.mozilla.org","version":"1.0"},"id":"bf7356d5-b520-4d94-a96a-eb832315a049","last_modified":1597452131769},{"appliesTo":[{"included":{"locales":{"matches":["ga-IE"]}}}],"webExtension":{"id":"tearma@search.mozilla.org","version":"1.0"},"id":"ada324f8-3081-4397-b78b-e03bd860375e","last_modified":1597452131747},{"appliesTo":[{"included":{"locales":{"matches":["ltg","lv"]}}}],"webExtension":{"id":"sslv@search.mozilla.org","version":"1.0"},"id":"3f907fb8-c074-444a-850f-b6ea3a651c56","last_modified":1597452131724},{"appliesTo":[{"included":{"locales":{"matches":["cs"]}}}],"webExtension":{"id":"seznam-cz@search.mozilla.org","version":"1.0"},"id":"38f61654-35a4-4c93-af84-7c215edaf434","last_modified":1597452131701},{"appliesTo":[{"included":{"locales":{"matches":["ltg","lv"]}}}],"webExtension":{"id":"salidzinilv@search.mozilla.org","version":"1.0"},"id":"6bec5c4a-0f12-4399-b4d5-2fe9d73c0e74","last_modified":1597452131679},{"appliesTo":[{"included":{"locales":{"matches":["zh-TW"]}}}],"webExtension":{"id":"readmoo@search.mozilla.org","version":"1.0"},"id":"4399d0ea-7540-43f6-adbd-4833b341ba9f","last_modified":1597452131655},{"appliesTo":[{"included":{"locales":{"matches":["ja-JP-macos","jp"]}}}],"webExtension":{"id":"rakuten@search.mozilla.org","version":"1.2"},"id":"fc2c153a-936c-4d7e-a72c-e0a7ce23b6d8","last_modified":1597452131632},{"appliesTo":[{"included":{"locales":{"matches":["nb-NO","nn-NO"]}}}],"webExtension":{"id":"qxl-NO@search.mozilla.org","version":"1.0"},"id":"dfc109bd-b4e5-4aa9-95a3-5cd81d67341d","last_modified":1597452131611},{"appliesTo":[{"included":{"locales":{"matches":["fr"]}}}],"webExtension":{"id":"qwant@search.mozilla.org","version":"1.0"},"id":"a0ce2b21-9204-486d-b0a1-07819e38b2e0","last_modified":1597452131588},{"appliesTo":[{"included":{"locales":{"matches":["pl"]}}}],"webExtension":{"id":"pwn-pl@search.mozilla.org","version":"1.0"},"id":"3f0b73cf-2645-427a-acbd-f9b9a7e86ca9","last_modified":1597452131564},{"appliesTo":[{"included":{"locales":{"matches":["sv-SE"]}}}],"webExtension":{"id":"prisjakt-sv-SE@search.mozilla.org","version":"1.0"},"id":"1a571c53-a05e-483f-ba76-944ce03e405c","last_modified":1597452131543},{"appliesTo":[{"included":{"locales":{"matches":["ru"]}}}],"webExtension":{"id":"priceru@search.mozilla.org","version":"1.0"},"id":"2ca250af-f2ac-4f63-af34-1b1b53fd3b92","last_modified":1597452131520},{"appliesTo":[{"included":{"locales":{"matches":["pt-PT"]}}}],"webExtension":{"id":"priberam@search.mozilla.org","version":"1.2"},"id":"44c5c666-422b-4fc2-b9e2-cddd0d3b7ccc","last_modified":1597452131497},{"appliesTo":[{"included":{"locales":{"matches":["sr"]}}}],"webExtension":{"id":"pogodak@search.mozilla.org","version":"1.0"},"id":"473fd16b-ed84-4ed1-822c-50ac5d9ee63b","last_modified":1597452131475},{"appliesTo":[{"included":{"locales":{"matches":["bg"]}}}],"webExtension":{"id":"pazaruvaj@search.mozilla.org","version":"1.0"},"id":"6752ecbe-99cc-4ce9-90db-31c8d9e7c506","last_modified":1597452131452},{"appliesTo":[{"included":{"locales":{"matches":["cy"]}}}],"webExtension":{"id":"palasprint@search.mozilla.org","version":"1.0"},"id":"1f5075fa-ed75-4561-919f-3fa6e1158bf7","last_modified":1597452131429},{"appliesTo":[{"included":{"locales":{"matches":["ru"]}}}],"webExtension":{"id":"ozonru@search.mozilla.org","version":"1.2"},"id":"954cc2fe-72f5-4360-b200-ab455c5ad920","last_modified":1597452131407},{"appliesTo":[{"included":{"locales":{"matches":["et"]}}}],"webExtension":{"id":"osta-ee@search.mozilla.org","version":"1.0"},"id":"e4e7b227-f6e6-49bf-840a-a7b7601e1a92","last_modified":1597452131384},{"appliesTo":[{"included":{"locales":{"matches":["ja-JP-macos","jp"]}}}],"webExtension":{"id":"oshiete-goo@search.mozilla.org","version":"1.0"},"id":"ba06b66e-b083-42f9-96ca-06beb7df003b","last_modified":1597452131360},{"appliesTo":[{"included":{"locales":{"matches":["bs"]}}}],"webExtension":{"id":"olx@search.mozilla.org","version":"1.0"},"id":"0a2b2d3b-18d7-425d-b852-319cafe49d22","last_modified":1597452131338},{"appliesTo":[{"included":{"locales":{"matches":["sl"]}}}],"webExtension":{"id":"odpiralni@search.mozilla.org","version":"1.0"},"id":"7e85688f-5f3e-4dce-a624-6a80ea792a39","last_modified":1597452131315},{"appliesTo":[{"included":{"locales":{"matches":["et"]}}}],"webExtension":{"id":"neti-ee@search.mozilla.org","version":"1.0"},"id":"c7cd702e-9049-4a75-823c-6ccd7ad2b86f","last_modified":1597452131292},{"appliesTo":[{"included":{"locales":{"matches":["ko"]}}}],"webExtension":{"id":"naver-kr@search.mozilla.org","version":"1.0"},"id":"af1943a3-75e1-4429-8a95-43675686786c","last_modified":1597452131271},{"appliesTo":[{"included":{"locales":{"matches":["sl"]}}}],"webExtension":{"id":"najdi-si@search.mozilla.org","version":"1.0"},"id":"fda60f56-ac34-410a-8e74-1b2ba0dbaeaa","last_modified":1597452131248},{"appliesTo":[{"included":{"locales":{"matches":["he"]}}}],"webExtension":{"id":"morfix-dic@search.mozilla.org","version":"1.1"},"id":"2950bf4a-450f-47cd-8988-1d9d73c10300","last_modified":1597452131225},{"appliesTo":[{"included":{"locales":{"matches":["pt-BR"]}}}],"webExtension":{"id":"mercadolivre@search.mozilla.org","version":"1.0"},"id":"393eed85-f54c-453c-9df3-d5351473a2d0","last_modified":1597452131204},{"appliesTo":[{"included":{"locales":{"matches":["es-AR"]}},"webExtension":{"locales":["ar"]}},{"included":{"locales":{"matches":["es-CL"]}},"webExtension":{"locales":["cl"]}},{"included":{"locales":{"matches":["es-MX"]}},"webExtension":{"locales":["mx"]}}],"webExtension":{"id":"mercadolibre@search.mozilla.org","version":"1.0"},"id":"58ccc938-9b28-43fa-99c8-8fb2afaf0531","last_modified":1597452131181},{"appliesTo":[{"included":{"locales":{"matches":["fy-NL"]}},"webExtension":{"locales":["fy-NL"]}},{"included":{"locales":{"matches":["nl"]}},"webExtension":{"locales":["nl"]}}],"webExtension":{"id":"marktplaats@search.mozilla.org","version":"1.0"},"id":"5e341152-6dc1-4357-80cb-8c2d615ec5dc","last_modified":1597452131158},{"appliesTo":[{"included":{"locales":{"matches":["cs"]}}}],"webExtension":{"id":"mapy-cz@search.mozilla.org","version":"1.0"},"id":"bcee8873-4644-44c1-babf-b35be366f4f7","last_modified":1597452131136},{"appliesTo":[{"included":{"locales":{"matches":["ru"]}}}],"webExtension":{"id":"mailru@search.mozilla.org","version":"1.0"},"id":"969a8778-1f6d-4af2-87cd-c08a9a4f80b8","last_modified":1597452131114},{"appliesTo":[{"included":{"locales":{"matches":["th"]}}}],"webExtension":{"id":"longdo@search.mozilla.org","version":"1.0"},"id":"c64fefb6-61b5-49fe-8148-1470fa586c21","last_modified":1597452131091},{"appliesTo":[{"included":{"locales":{"matches":["hy-AM"]}}}],"webExtension":{"id":"list-am@search.mozilla.org","version":"1.0"},"id":"2e099aaa-b949-4038-8595-69678b09c46d","last_modified":1597452131070},{"appliesTo":[{"included":{"locales":{"matches":["de","dsb","hsb","rm"]}}}],"webExtension":{"id":"leo_ende_de@search.mozilla.org","version":"1.0"},"id":"4db2ab80-c651-405b-88ba-1b30396a5d23","last_modified":1597452131047},{"appliesTo":[{"included":{"locales":{"matches":["kn"]}}}],"webExtension":{"id":"kannadastore@search.mozilla.org","version":"1.2"},"id":"8cb31936-c2da-47b6-8acc-15e2d48d2362","last_modified":1597452131024},{"appliesTo":[{"included":{"locales":{"matches":["uk"]}}}],"webExtension":{"id":"hotline-ua@search.mozilla.org","version":"1.0"},"id":"5b2895b4-afb4-452d-bc8f-4b3752448fba","last_modified":1597452131003},{"appliesTo":[{"included":{"locales":{"matches":["cs"]}}}],"webExtension":{"id":"heureka-cz@search.mozilla.org","version":"1.0"},"id":"dfc28b2a-40ac-4772-bca3-8b090ab8a05e","last_modified":1597452130980},{"appliesTo":[{"included":{"locales":{"matches":["nn-NO","nb-NO"]}}}],"webExtension":{"id":"gulesider-NO@search.mozilla.org","version":"1.0"},"id":"311b0b99-0619-446f-ad7c-695e531ec000","last_modified":1597452130957},{"appliesTo":[{"included":{"locales":{"matches":["br"]}}}],"webExtension":{"id":"freelang@search.mozilla.org","version":"1.0"},"id":"e72ce961-ea88-4296-ac41-745d75c14363","last_modified":1597452130936},{"appliesTo":[{"included":{"locales":{"matches":["kk"]}}}],"webExtension":{"id":"flip@search.mozilla.org","version":"1.0"},"id":"0b17f642-5519-4e5b-89bb-71e16e3e0763","last_modified":1597452130913},{"appliesTo":[{"included":{"locales":{"matches":["gd"]}}}],"webExtension":{"id":"faclair-beag@search.mozilla.org","version":"1.0"},"id":"2b046c0d-3cc6-4639-8454-2d2ea024705b","last_modified":1597452130891},{"appliesTo":[{"included":{"locales":{"matches":["hr"]}}}],"webExtension":{"id":"eudict@search.mozilla.org","version":"1.0"},"id":"1bf9f430-9b92-4c3b-a2c1-0a7edddc1f28","last_modified":1597452130869},{"appliesTo":[{"included":{"locales":{"matches":["et"]}}}],"webExtension":{"id":"eki-ee@search.mozilla.org","version":"1.0"},"id":"7c60a125-37c2-48f1-b541-86fe070b4388","last_modified":1597452130847},{"appliesTo":[{"included":{"locales":{"matches":["de"]}}}],"webExtension":{"id":"ecosia@search.mozilla.org","version":"1.0"},"id":"e7083870-11cf-4c2b-8843-67b3e098f474","last_modified":1597452130824},{"appliesTo":[{"included":{"locales":{"matches":["es-AR","es-CL","es-ES"]}}}],"webExtension":{"id":"drae@search.mozilla.org","version":"1.0"},"id":"fcf39b52-b59d-42a5-b1a8-4361159b428d","last_modified":1597452130803},{"appliesTo":[{"included":{"locales":{"matches":["ca","ca-valencia"]}}}],"webExtension":{"id":"diec2@search.mozilla.org","version":"1.2"},"id":"b88830cd-705d-492a-a28c-742abfa9334b","last_modified":1597452130780},{"appliesTo":[{"included":{"locales":{"matches":["ko"]}}}],"webExtension":{"id":"daum-kr@search.mozilla.org","version":"1.0"},"id":"2dc000ee-a78b-4e78-91af-ac76b79bac47","last_modified":1597452130756},{"appliesTo":[{"included":{"locales":{"matches":["vi"]}}}],"webExtension":{"id":"coccoc@search.mozilla.org","version":"1.0"},"id":"cd8d215b-6c81-439b-bc16-dab6bae8188b","last_modified":1597452130735},{"appliesTo":[{"included":{"locales":{"matches":["en-GB"]}}}],"webExtension":{"id":"chambers-en-GB@search.mozilla.org","version":"1.0"},"id":"7047c29e-7ad4-49db-adb9-6c135e6c59f8","last_modified":1597452130712},{"appliesTo":[{"included":{"locales":{"matches":["sl"]}}}],"webExtension":{"id":"ceneji@search.mozilla.org","version":"1.0"},"id":"c0fe16a1-6d66-48a2-bc54-ceb9a78754ce","last_modified":1597452130688},{"appliesTo":[{"included":{"locales":{"matches":["fy-NL"]}},"webExtension":{"locales":["fy-NL"]}},{"included":{"locales":{"matches":["nl"]}},"webExtension":{"locales":["nl"]}}],"webExtension":{"id":"bolcom@search.mozilla.org","version":"1.0"},"id":"adc06075-02c9-4d8d-88ab-bccd1b843184","last_modified":1597452130667},{"appliesTo":[{"included":{"locales":{"matches":["nb-NO","nn-NO"]}}}],"webExtension":{"id":"bok-NO@search.mozilla.org","version":"1.0"},"id":"dc33bc2b-758b-41fe-804c-e9894aea9cc1","last_modified":1597452130644},{"appliesTo":[{"included":{"locales":{"matches":["gd"]}}}],"webExtension":{"id":"bbc-alba@search.mozilla.org","version":"1.0"},"id":"614c27ea-1537-4db0-ac1d-b873732bde57","last_modified":1597452130621},{"appliesTo":[{"included":{"locales":{"matches":["sk"]}}}],"webExtension":{"id":"azet-sk@search.mozilla.org","version":"1.0"},"id":"17835df2-e2b8-4ca8-91bc-a45299bdcae5","last_modified":1597452130600},{"appliesTo":[{"included":{"locales":{"matches":["az"]}}}],"webExtension":{"id":"azerdict@search.mozilla.org","version":"1.0"},"id":"85d4f0c7-ace1-4e67-9e16-38db2aebf84b","last_modified":1597452130577},{"appliesTo":[{"included":{"locales":{"matches":["sk"]}}}],"webExtension":{"id":"atlas-sk@search.mozilla.org","version":"1.0"},"id":"bb87e317-4ba3-458e-9b64-d4459e61b001","last_modified":1597452130554},{"appliesTo":[{"included":{"locales":{"matches":["pl"]}}}],"webExtension":{"id":"allegro-pl@search.mozilla.org","version":"1.0"},"id":"9933195c-160e-41bb-984b-019137687d48","last_modified":1597452130533},{"appliesTo":[{"included":{"locales":{"matches":["sv-SE"]}}}],"webExtension":{"id":"allaannonser-sv-SE@search.mozilla.org","version":"1.2"},"id":"7011ae79-112a-494a-834b-857b66e444c0","last_modified":1597452130511},{"appliesTo":[{"default":"yes","included":{"locales":{"matches":["ru","tr","be","kk"],"startsWith":["en"]},"regions":["ru","tr","by","kz"]},"telemetryId":"yandex-en","webExtension":{"locales":["en"]}},{"included":{"locales":{"matches":["az"]}},"telemetryId":"yandex-az","webExtension":{"locales":["az"]}},{"included":{"locales":{"matches":["be"]}},"telemetryId":"yandex-by","webExtension":{"locales":["by"]}},{"included":{"locales":{"matches":["kk"]}},"telemetryId":"yandex-kk","webExtension":{"locales":["kk"]}},{"included":{"locales":{"matches":["ru"]}},"telemetryId":"yandex-ru","webExtension":{"locales":["ru"]}},{"included":{"locales":{"matches":["tr"]}},"telemetryId":"yandex-tr","webExtension":{"locales":["tr"]}}],"webExtension":{"id":"yandex@search.mozilla.org","version":"1.0"},"id":"cdfef3b9-59a5-4e58-998b-8f61e5f63279","last_modified":1597452130488},{"orderHint":500,"telemetryId":"ddg","webExtension":{"id":"ddg@search.mozilla.org","version":"1.0"},"id":"2c33bcaa-aae3-42e5-ad0d-915e2e822cc9","last_modified":1597452130466},{"params":{"searchUrlGetParams":{"ix":"sunray","Go.x":"0","Go.y":"0","keywords":"{searchTerms}","pageletid":"headsearch","searchType":"","bestSaleNum":"0"}},"appliesTo":[{"included":{"locales":{"matches":["zh-CN"]}}}],"orderHint":500,"telemetryId":"amazondotcn","webExtension":{"id":"amazondotcn@search.mozilla.org","version":"1.0"},"id":"965270fc-b4ee-4dcc-bdcb-fed87fe563a9","last_modified":1597452130444},{"params":{"searchUrlGetParams":[{"name":"field-keywords","value":"{searchTerms}"},{"name":"ie","value":"{inputEncoding}"},{"name":"mode","value":"blended"}]},"appliesTo":[{"included":{"locales":{"matches":["as","bn","bn-IN","kn","gu-IN","mai","ml","mr","or","pa-IN","ta","te","ur"]}},"telemetryId":"amazon-in","webExtension":{"locales":["in"]}},{"params":{"searchUrlGetParams":[{"name":"field-keywords","value":"{searchTerms}"},{"name":"ie","value":"{inputEncoding}"},{"name":"mode","value":"blended"},{"name":"sourceid","value":"Mozilla-search"}]},"included":{"locales":{"matches":["br","ff","fr","son","wo"]}},"telemetryId":"amazon-france","webExtension":{"locales":["france"]}},{"included":{"locales":{"matches":["br","ff","fr","son","wo"]},"regions":["ca"]},"telemetryId":"amazon-ca","webExtension":{"locales":["ca"]}},{"included":{"locales":{"matches":["en-CA"]}},"telemetryId":"amazon-ca","webExtension":{"locales":["ca"]}},{"params":{"searchUrlGetParams":[{"name":"field-keywords","value":"{searchTerms}"},{"name":"ie","value":"{inputEncoding}"},{"name":"mode","value":"blended"},{"name":"sourceid","value":"Mozilla-search"}]},"included":{"locales":{"matches":["ja-JP-macos","ja"]}},"telemetryId":"amazon-jp","webExtension":{"locales":["jp"]}},{"params":{"searchUrlGetParams":[{"name":"field-keywords","value":"{searchTerms}"},{"name":"ie","value":"{inputEncoding}"},{"name":"mode","value":"blended"},{"name":"sourceid","value":"Mozilla-search"}]},"included":{"locales":{"matches":["it","lij"]}},"telemetryId":"amazon-it","webExtension":{"locales":["it"]}},{"params":{"searchUrlGetParams":[{"name":"field-keywords","value":"{searchTerms}"},{"name":"ie","value":"{inputEncoding}"},{"name":"mode","value":"blended"},{"name":"sourceid","value":"Mozilla-search"}]},"included":{"locales":{"matches":["de","dsb","hsb"]}},"telemetryId":"amazon-de","webExtension":{"locales":["de"]}},{"params":{"searchUrlGetParams":[{"name":"field-keywords","value":"{searchTerms}"},{"name":"ie","value":"{inputEncoding}"},{"name":"mode","value":"blended"},{"name":"sourceid","value":"Mozilla-search"}]},"included":{"locales":{"matches":["cy","da","el","en-GB","eu","ga-IE","gd","gl","hr","nb-NO","nn-NO","pt-PT","sq","sr"]}},"telemetryId":"amazon-en-GB","webExtension":{"locales":["en-GB"]}},{"included":{"locales":{"matches":["cy","da","el","en-GB","eu","ga-IE","gd","gl","hr","nb-NO","nn-NO","pt-PT","sq","sr"]},"regions":["au"]},"telemetryId":"amazon-au","webExtension":{"locales":["au"]}}],"orderHint":500,"webExtension":{"id":"amazon@search.mozilla.org","version":"1.1"},"id":"968c66a0-0d32-4bdb-a132-66d0e7dead54","last_modified":1597452130421},{"params":{"searchUrlGetParams":[{"name":"field-keywords","value":"{searchTerms}"},{"name":"ie","value":"{inputEncoding}"},{"name":"mode","value":"blended"},{"name":"sourceid","value":"Mozilla-search"}]},"appliesTo":[{"included":{"regions":["default"]}},{"included":{"locales":{"matches":["ach","af","ar","az","bg","cak","en-US","eo","es-AR","fa","gn","hy-AM","ia","is","ka","km","lt","mk","ms","my","ro","si","th","tl","trs","uz"]}}},{"included":{"locales":{"matches":["ach","af","ar","az","bg","cak","en-US","eo","es-AR","fa","gn","hy-AM","ia","is","ka","km","lt","mk","ms","my","ro","si","th","tl","trs","uz"]},"regions":["au"]},"telemetryId":"amazon-au","webExtension":{"id":"amazon@search.mozilla.org","locales":["au"],"version":"1.1"}},{"included":{"locales":{"matches":["ach","af","ar","az","bg","cak","en-US","eo","es-AR","fa","gn","hy-AM","ia","is","ka","km","lt","mk","ms","my","ro","si","th","tl","trs","uz"]},"regions":["ca"]},"telemetryId":"amazon-ca","webExtension":{"id":"amazon@search.mozilla.org","locales":["ca"],"version":"1.1"}},{"params":{"searchUrlGetParams":[{"name":"field-keywords","value":"{searchTerms}"},{"name":"ie","value":"{inputEncoding}"},{"name":"mode","value":"blended"},{"name":"sourceid","value":"Mozilla-search"}]},"included":{"locales":{"matches":["ach","af","ar","az","bg","cak","en-US","eo","es-AR","fa","gn","hy-AM","ia","is","ka","km","lt","mk","ms","my","ro","si","th","tl","trs","uz"]},"regions":["fr"]},"telemetryId":"amazon-france","webExtension":{"id":"amazon@search.mozilla.org","locales":["france"],"version":"1.1"}},{"params":{"searchUrlGetParams":[{"name":"field-keywords","value":"{searchTerms}"},{"name":"ie","value":"{inputEncoding}"},{"name":"mode","value":"blended"},{"name":"sourceid","value":"Mozilla-search"}]},"included":{"locales":{"matches":["ach","af","ar","az","bg","cak","en-US","eo","es-AR","fa","gn","hy-AM","ia","is","ka","km","lt","mk","ms","my","ro","si","th","tl","trs","uz"]},"regions":["gb"]},"telemetryId":"amazon-en-GB","webExtension":{"id":"amazon@search.mozilla.org","locales":["en-GB"],"version":"1.1"}}],"orderHint":500,"telemetryId":"amazondotcom","webExtension":{"id":"amazondotcom@search.mozilla.org","version":"1.1"},"id":"5eb7e179-c11d-4029-99b7-bc7ea1467d46","last_modified":1597452130399},{"params":{"searchUrlGetParams":[{"name":"wd","value":"{searchTerms}"},{"name":"tn","value":"monline_7_dg"},{"name":"ie","value":"utf-8"}],"suggestUrlGetParams":[{"name":"wd","value":"{searchTerms}"},{"name":"tn","value":"monline_7_dg"},{"name":"ie","value":"utf-8"},{"name":"action","value":"opensearch"}]},"appliesTo":[{"included":{"locales":{"matches":["zh-CN"]}}},{"default":"yes","included":{"locales":{"matches":["zh-CN"]},"regions":["cn"]}}],"telemetryId":"baidu","webExtension":{"id":"baidu@search.mozilla.org","version":"1.0"},"id":"59f371ee-05cc-4c9e-8961-27fe1fa4cbc2","last_modified":1597452130376},{"params":{"searchUrlGetParams":[{"name":"q","value":"{searchTerms}"}]},"appliesTo":[{"included":{"locales":{"matches":["ach","af","an","ar","ast","az","ca","ca-valencia","cak","da","de","dsb","el","eo","es-CL","es-ES","es-MX","eu","fa","ff","fi","fr","fy-NL","gn","gu-IN","hi-IN","hr","hsb","ia","is","it","ja-JP-macos","ja","ka","kab","km","kn","lij","lo","lt","mai","mk","ml","ms","my","nb-NO","ne-NP","nl","nn-NO","oc","or","pa-IN","pt-BR","rm","ro","son","sq","sr","sv-SE","th","tl","trs","uk","ur","uz","wo","xh","zh-CN"],"startsWith":["bn","en"]}}},{"included":{"regions":["default"]}}],"webExtension":{"id":"bing@search.mozilla.org","version":"1.0"},"id":"d6b19d48-c263-49f9-9f5b-72fb5a3824bc","last_modified":1597452130353},{"params":{"searchUrlGetParams":[{"name":"q","value":"{searchTerms}"}]},"appliesTo":[{"default":"yes-if-no-other","included":{"everywhere":true}}],"orderHint":1000,"telemetryId":"google","webExtension":{"id":"google@search.mozilla.org","version":"1.0"},"id":"6158e467-c0d3-48e8-a5cf-a2102b7f9456","last_modified":1597452130330}]} \ No newline at end of file
diff --git a/comm/mail/app/settings/dumps/thunderbird/search-config.json b/comm/mail/app/settings/dumps/thunderbird/search-config.json
new file mode 100644
index 0000000000..9c6bcde4ef
--- /dev/null
+++ b/comm/mail/app/settings/dumps/thunderbird/search-config.json
@@ -0,0 +1,2152 @@
+{
+ "data": [
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "everywhere": true
+ }
+ }
+ ],
+ "orderHint": 500,
+ "telemetryId": "ddg",
+ "webExtension": {
+ "id": "ddg@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "2c33bcaa-aae3-42e5-ad0d-915e2e822cc9",
+ "last_modified": 1604535069307
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "everywhere": true
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": [
+ "af",
+ "an",
+ "ar",
+ "as",
+ "ast",
+ "az",
+ "be",
+ "bg",
+ "br",
+ "bs",
+ "crh",
+ "cy",
+ "da",
+ "de",
+ "dsb",
+ "el",
+ "eo",
+ "et",
+ "eu",
+ "fa",
+ "fi",
+ "fy-NL",
+ "ga-IE",
+ "gd",
+ "gl",
+ "gn",
+ "he",
+ "hr",
+ "hsb",
+ "hu",
+ "ia",
+ "id",
+ "is",
+ "it",
+ "ka",
+ "kab",
+ "kk",
+ "km",
+ "kn",
+ "lij",
+ "lo",
+ "lt",
+ "ltg",
+ "lv",
+ "mk",
+ "ml",
+ "mr",
+ "ms",
+ "my",
+ "nl",
+ "oc",
+ "or",
+ "pl",
+ "rm",
+ "ro",
+ "ru",
+ "si",
+ "sk",
+ "sl",
+ "sq",
+ "sr",
+ "sv-SE",
+ "ta",
+ "te",
+ "th",
+ "tl",
+ "tr",
+ "uk",
+ "ur",
+ "uz",
+ "vi",
+ "wo",
+ "zh-CN",
+ "zh-TW"
+ ]
+ }
+ },
+ "webExtension": {
+ "locales": ["$USER_LOCALE"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["be"]
+ }
+ },
+ "webExtension": {
+ "locales": ["be", "be-tarask"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["bn", "bn-BD", "bn-IN"]
+ }
+ },
+ "webExtension": {
+ "locales": ["bn"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["ca", "ca-valencia"]
+ }
+ },
+ "webExtension": {
+ "locales": ["ca"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["cak", "es-AR", "es-CL", "es-ES", "es-MX", "trs"]
+ }
+ },
+ "webExtension": {
+ "locales": ["es"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["cs"]
+ }
+ },
+ "webExtension": {
+ "locales": ["cz"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["ff", "fr", "son"]
+ }
+ },
+ "webExtension": {
+ "locales": ["fr"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["gu-IN"]
+ }
+ },
+ "webExtension": {
+ "locales": ["gu"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["hi-IN"]
+ }
+ },
+ "webExtension": {
+ "locales": ["hi"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["hy-AM"]
+ }
+ },
+ "webExtension": {
+ "locales": ["hy"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["ja-JP-macos", "ja"]
+ }
+ },
+ "webExtension": {
+ "locales": ["ja"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["ko"]
+ }
+ },
+ "webExtension": {
+ "locales": ["kr"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["mai"]
+ }
+ },
+ "webExtension": {
+ "locales": ["hi"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["ml"]
+ }
+ },
+ "webExtension": {
+ "locales": ["en", "ml"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["nb-NO"]
+ }
+ },
+ "webExtension": {
+ "locales": ["NO"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["ne-NP"]
+ }
+ },
+ "webExtension": {
+ "locales": ["ne"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["nn-NO"]
+ }
+ },
+ "webExtension": {
+ "locales": ["NN"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["pa-IN"]
+ }
+ },
+ "webExtension": {
+ "locales": ["pa"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["pt-BR", "pt-PT"]
+ }
+ },
+ "webExtension": {
+ "locales": ["pt"]
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "wikipedia@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "8563efb6-e9f5-4f83-88b4-5124e5a51885",
+ "last_modified": 1597452131957
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["sk"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "zoznam-sk@search.mozilla.org",
+ "version": "1.2"
+ },
+ "id": "208e5b83-ea31-4ad3-b5b1-8c46fdb646d2",
+ "last_modified": 1597452131934
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["ja-JP-macos", "ja"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "yahoo-jp-auctions@search.mozilla.org",
+ "version": "1.2"
+ },
+ "id": "3d048cc7-0b49-49f1-8275-25562f997cd4",
+ "last_modified": 1597452131911
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["ja-JP-macos", "ja"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "yahoo-jp@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "4a3c25e9-32fc-43ba-9f64-04f44f23edf0",
+ "last_modified": 1597452131889
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["pl"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "wolnelektury-pl@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "cebf41a8-bb48-4f5a-b05a-404e57c4e019",
+ "last_modified": 1597452131866
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["te"]
+ }
+ },
+ "webExtension": {
+ "locales": ["te"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["oc"]
+ }
+ },
+ "webExtension": {
+ "locales": ["oc"]
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "wiktionary@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "676fad59-3280-4e5d-a3ae-74c918f6b8d3",
+ "last_modified": 1597452131842
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["hu"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "vatera@search.mozilla.org",
+ "version": "1.2"
+ },
+ "id": "ff997f3f-e41c-44e2-96b2-419a1ed7e7c4",
+ "last_modified": 1597452131820
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["sv-SE"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "tyda-sv-SE@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "f3930927-4422-4cc1-9576-b70a80e528b8",
+ "last_modified": 1597452131797
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["ga-IE"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "tearma@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "ada324f8-3081-4397-b78b-e03bd860375e",
+ "last_modified": 1597452131747
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["ltg", "lv"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "sslv@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "3f907fb8-c074-444a-850f-b6ea3a651c56",
+ "last_modified": 1597452131724
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["cs"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "seznam-cz@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "38f61654-35a4-4c93-af84-7c215edaf434",
+ "last_modified": 1597452131701
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["ltg", "lv"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "salidzinilv@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "6bec5c4a-0f12-4399-b4d5-2fe9d73c0e74",
+ "last_modified": 1597452131679
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["zh-TW"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "readmoo@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "4399d0ea-7540-43f6-adbd-4833b341ba9f",
+ "last_modified": 1597452131655
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["ja-JP-macos", "jp"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "rakuten@search.mozilla.org",
+ "version": "1.2"
+ },
+ "id": "fc2c153a-936c-4d7e-a72c-e0a7ce23b6d8",
+ "last_modified": 1597452131632
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["nb-NO", "nn-NO"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "qxl-NO@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "dfc109bd-b4e5-4aa9-95a3-5cd81d67341d",
+ "last_modified": 1597452131611
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["fr"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "qwant@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "a0ce2b21-9204-486d-b0a1-07819e38b2e0",
+ "last_modified": 1597452131588
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["pl"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "pwn-pl@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "3f0b73cf-2645-427a-acbd-f9b9a7e86ca9",
+ "last_modified": 1597452131564
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["sv-SE"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "prisjakt-sv-SE@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "1a571c53-a05e-483f-ba76-944ce03e405c",
+ "last_modified": 1597452131543
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["ru"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "priceru@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "2ca250af-f2ac-4f63-af34-1b1b53fd3b92",
+ "last_modified": 1597452131520
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["pt-PT"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "priberam@search.mozilla.org",
+ "version": "1.2"
+ },
+ "id": "44c5c666-422b-4fc2-b9e2-cddd0d3b7ccc",
+ "last_modified": 1597452131497
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["sr"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "pogodak@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "473fd16b-ed84-4ed1-822c-50ac5d9ee63b",
+ "last_modified": 1597452131475
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["bg"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "pazaruvaj@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "6752ecbe-99cc-4ce9-90db-31c8d9e7c506",
+ "last_modified": 1597452131452
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["cy"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "palasprint@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "1f5075fa-ed75-4561-919f-3fa6e1158bf7",
+ "last_modified": 1597452131429
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["ru"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "ozonru@search.mozilla.org",
+ "version": "1.2"
+ },
+ "id": "954cc2fe-72f5-4360-b200-ab455c5ad920",
+ "last_modified": 1597452131407
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["et"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "osta-ee@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "e4e7b227-f6e6-49bf-840a-a7b7601e1a92",
+ "last_modified": 1597452131384
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["ja-JP-macos", "jp"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "oshiete-goo@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "ba06b66e-b083-42f9-96ca-06beb7df003b",
+ "last_modified": 1597452131360
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["bs"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "olx@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "0a2b2d3b-18d7-425d-b852-319cafe49d22",
+ "last_modified": 1597452131338
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["sl"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "odpiralni@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "7e85688f-5f3e-4dce-a624-6a80ea792a39",
+ "last_modified": 1597452131315
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["et"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "neti-ee@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "c7cd702e-9049-4a75-823c-6ccd7ad2b86f",
+ "last_modified": 1597452131292
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["ko"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "naver-kr@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "af1943a3-75e1-4429-8a95-43675686786c",
+ "last_modified": 1597452131271
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["sl"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "najdi-si@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "fda60f56-ac34-410a-8e74-1b2ba0dbaeaa",
+ "last_modified": 1597452131248
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["he"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "morfix-dic@search.mozilla.org",
+ "version": "1.1"
+ },
+ "id": "2950bf4a-450f-47cd-8988-1d9d73c10300",
+ "last_modified": 1597452131225
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["pt-BR"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "mercadolivre@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "393eed85-f54c-453c-9df3-d5351473a2d0",
+ "last_modified": 1597452131204
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["es-AR"]
+ }
+ },
+ "webExtension": {
+ "locales": ["ar"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["es-CL"]
+ }
+ },
+ "webExtension": {
+ "locales": ["cl"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["es-MX"]
+ }
+ },
+ "webExtension": {
+ "locales": ["mx"]
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "mercadolibre@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "58ccc938-9b28-43fa-99c8-8fb2afaf0531",
+ "last_modified": 1597452131181
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["fy-NL"]
+ }
+ },
+ "webExtension": {
+ "locales": ["fy-NL"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["nl"]
+ }
+ },
+ "webExtension": {
+ "locales": ["nl"]
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "marktplaats@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "5e341152-6dc1-4357-80cb-8c2d615ec5dc",
+ "last_modified": 1597452131158
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["cs"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "mapy-cz@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "bcee8873-4644-44c1-babf-b35be366f4f7",
+ "last_modified": 1597452131136
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["th"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "longdo@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "c64fefb6-61b5-49fe-8148-1470fa586c21",
+ "last_modified": 1597452131091
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["hy-AM"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "list-am@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "2e099aaa-b949-4038-8595-69678b09c46d",
+ "last_modified": 1597452131070
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["de", "dsb", "hsb", "rm"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "leo_ende_de@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "4db2ab80-c651-405b-88ba-1b30396a5d23",
+ "last_modified": 1597452131047
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["kn"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "kannadastore@search.mozilla.org",
+ "version": "1.2"
+ },
+ "id": "8cb31936-c2da-47b6-8acc-15e2d48d2362",
+ "last_modified": 1597452131024
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["uk"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "hotline-ua@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "5b2895b4-afb4-452d-bc8f-4b3752448fba",
+ "last_modified": 1597452131003
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["cs"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "heureka-cz@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "dfc28b2a-40ac-4772-bca3-8b090ab8a05e",
+ "last_modified": 1597452130980
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["nn-NO", "nb-NO"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "gulesider-NO@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "311b0b99-0619-446f-ad7c-695e531ec000",
+ "last_modified": 1597452130957
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["br"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "freelang@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "e72ce961-ea88-4296-ac41-745d75c14363",
+ "last_modified": 1597452130936
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["kk"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "flip@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "0b17f642-5519-4e5b-89bb-71e16e3e0763",
+ "last_modified": 1597452130913
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["gd"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "faclair-beag@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "2b046c0d-3cc6-4639-8454-2d2ea024705b",
+ "last_modified": 1597452130891
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["hr"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "eudict@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "1bf9f430-9b92-4c3b-a2c1-0a7edddc1f28",
+ "last_modified": 1597452130869
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["et"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "eki-ee@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "7c60a125-37c2-48f1-b541-86fe070b4388",
+ "last_modified": 1597452130847
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["de"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "ecosia@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "e7083870-11cf-4c2b-8843-67b3e098f474",
+ "last_modified": 1597452130824
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["es-AR", "es-CL", "es-ES"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "drae@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "fcf39b52-b59d-42a5-b1a8-4361159b428d",
+ "last_modified": 1597452130803
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["ca", "ca-valencia"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "diec2@search.mozilla.org",
+ "version": "1.2"
+ },
+ "id": "b88830cd-705d-492a-a28c-742abfa9334b",
+ "last_modified": 1597452130780
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["ko"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "daum-kr@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "2dc000ee-a78b-4e78-91af-ac76b79bac47",
+ "last_modified": 1597452130756
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["vi"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "coccoc@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "cd8d215b-6c81-439b-bc16-dab6bae8188b",
+ "last_modified": 1597452130735
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["en-GB"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "chambers-en-GB@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "7047c29e-7ad4-49db-adb9-6c135e6c59f8",
+ "last_modified": 1597452130712
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["sl"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "ceneji@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "c0fe16a1-6d66-48a2-bc54-ceb9a78754ce",
+ "last_modified": 1597452130688
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["fy-NL"]
+ }
+ },
+ "webExtension": {
+ "locales": ["fy-NL"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["nl"]
+ }
+ },
+ "webExtension": {
+ "locales": ["nl"]
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "bolcom@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "adc06075-02c9-4d8d-88ab-bccd1b843184",
+ "last_modified": 1597452130667
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["nb-NO", "nn-NO"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "bok-NO@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "dc33bc2b-758b-41fe-804c-e9894aea9cc1",
+ "last_modified": 1597452130644
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["gd"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "bbc-alba@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "614c27ea-1537-4db0-ac1d-b873732bde57",
+ "last_modified": 1597452130621
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["sk"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "azet-sk@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "17835df2-e2b8-4ca8-91bc-a45299bdcae5",
+ "last_modified": 1597452130600
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["az"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "azerdict@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "85d4f0c7-ace1-4e67-9e16-38db2aebf84b",
+ "last_modified": 1597452130577
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["sk"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "atlas-sk@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "bb87e317-4ba3-458e-9b64-d4459e61b001",
+ "last_modified": 1597452130554
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["pl"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "allegro-pl@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "9933195c-160e-41bb-984b-019137687d48",
+ "last_modified": 1597452130533
+ },
+ {
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["sv-SE"]
+ }
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "allaannonser-sv-SE@search.mozilla.org",
+ "version": "1.2"
+ },
+ "id": "7011ae79-112a-494a-834b-857b66e444c0",
+ "last_modified": 1597452130511
+ },
+ {
+ "params": {
+ "searchUrlGetParams": [
+ {
+ "name": "field-keywords",
+ "value": "{searchTerms}"
+ },
+ {
+ "name": "ie",
+ "value": "{inputEncoding}"
+ },
+ {
+ "name": "mode",
+ "value": "blended"
+ }
+ ]
+ },
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": [
+ "as",
+ "bn",
+ "bn-IN",
+ "kn",
+ "gu-IN",
+ "mai",
+ "ml",
+ "mr",
+ "or",
+ "pa-IN",
+ "ta",
+ "te",
+ "ur"
+ ]
+ }
+ },
+ "telemetryId": "amazon-in",
+ "webExtension": {
+ "locales": ["in"]
+ }
+ },
+ {
+ "params": {
+ "searchUrlGetParams": [
+ {
+ "name": "field-keywords",
+ "value": "{searchTerms}"
+ },
+ {
+ "name": "ie",
+ "value": "{inputEncoding}"
+ },
+ {
+ "name": "mode",
+ "value": "blended"
+ },
+ {
+ "name": "sourceid",
+ "value": "Mozilla-search"
+ }
+ ]
+ },
+ "included": {
+ "locales": {
+ "matches": ["br", "ff", "fr", "son", "wo"]
+ }
+ },
+ "telemetryId": "amazon-france",
+ "webExtension": {
+ "locales": ["france"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["br", "ff", "fr", "son", "wo"]
+ },
+ "regions": ["ca"]
+ },
+ "telemetryId": "amazon-ca",
+ "webExtension": {
+ "locales": ["ca"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": ["en-CA"]
+ }
+ },
+ "telemetryId": "amazon-ca",
+ "webExtension": {
+ "locales": ["ca"]
+ }
+ },
+ {
+ "params": {
+ "searchUrlGetParams": [
+ {
+ "name": "field-keywords",
+ "value": "{searchTerms}"
+ },
+ {
+ "name": "ie",
+ "value": "{inputEncoding}"
+ },
+ {
+ "name": "mode",
+ "value": "blended"
+ },
+ {
+ "name": "sourceid",
+ "value": "Mozilla-search"
+ }
+ ]
+ },
+ "included": {
+ "locales": {
+ "matches": ["ja-JP-macos", "ja"]
+ }
+ },
+ "telemetryId": "amazon-jp",
+ "webExtension": {
+ "locales": ["jp"]
+ }
+ },
+ {
+ "params": {
+ "searchUrlGetParams": [
+ {
+ "name": "field-keywords",
+ "value": "{searchTerms}"
+ },
+ {
+ "name": "ie",
+ "value": "{inputEncoding}"
+ },
+ {
+ "name": "mode",
+ "value": "blended"
+ },
+ {
+ "name": "sourceid",
+ "value": "Mozilla-search"
+ }
+ ]
+ },
+ "included": {
+ "locales": {
+ "matches": ["it", "lij"]
+ }
+ },
+ "telemetryId": "amazon-it",
+ "webExtension": {
+ "locales": ["it"]
+ }
+ },
+ {
+ "params": {
+ "searchUrlGetParams": [
+ {
+ "name": "field-keywords",
+ "value": "{searchTerms}"
+ },
+ {
+ "name": "ie",
+ "value": "{inputEncoding}"
+ },
+ {
+ "name": "mode",
+ "value": "blended"
+ },
+ {
+ "name": "sourceid",
+ "value": "Mozilla-search"
+ }
+ ]
+ },
+ "included": {
+ "locales": {
+ "matches": ["de", "dsb", "hsb"]
+ }
+ },
+ "telemetryId": "amazon-de",
+ "webExtension": {
+ "locales": ["de"]
+ }
+ },
+ {
+ "params": {
+ "searchUrlGetParams": [
+ {
+ "name": "field-keywords",
+ "value": "{searchTerms}"
+ },
+ {
+ "name": "ie",
+ "value": "{inputEncoding}"
+ },
+ {
+ "name": "mode",
+ "value": "blended"
+ },
+ {
+ "name": "sourceid",
+ "value": "Mozilla-search"
+ }
+ ]
+ },
+ "included": {
+ "locales": {
+ "matches": [
+ "cy",
+ "da",
+ "el",
+ "en-GB",
+ "eu",
+ "ga-IE",
+ "gd",
+ "gl",
+ "hr",
+ "nb-NO",
+ "nn-NO",
+ "pt-PT",
+ "sq",
+ "sr"
+ ]
+ }
+ },
+ "telemetryId": "amazon-en-GB",
+ "webExtension": {
+ "locales": ["en-GB"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": [
+ "cy",
+ "da",
+ "el",
+ "en-GB",
+ "eu",
+ "ga-IE",
+ "gd",
+ "gl",
+ "hr",
+ "nb-NO",
+ "nn-NO",
+ "pt-PT",
+ "sq",
+ "sr"
+ ]
+ },
+ "regions": ["au"]
+ },
+ "telemetryId": "amazon-au",
+ "webExtension": {
+ "locales": ["au"]
+ }
+ }
+ ],
+ "orderHint": 500,
+ "webExtension": {
+ "id": "amazon@search.mozilla.org",
+ "version": "1.1"
+ },
+ "id": "968c66a0-0d32-4bdb-a132-66d0e7dead54",
+ "last_modified": 1597452130421
+ },
+ {
+ "params": {
+ "searchUrlGetParams": [
+ {
+ "name": "field-keywords",
+ "value": "{searchTerms}"
+ },
+ {
+ "name": "ie",
+ "value": "{inputEncoding}"
+ },
+ {
+ "name": "mode",
+ "value": "blended"
+ },
+ {
+ "name": "sourceid",
+ "value": "Mozilla-search"
+ }
+ ]
+ },
+ "appliesTo": [
+ {
+ "included": {
+ "regions": ["default"]
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": [
+ "ach",
+ "af",
+ "ar",
+ "az",
+ "bg",
+ "cak",
+ "en-US",
+ "eo",
+ "es-AR",
+ "fa",
+ "gn",
+ "hy-AM",
+ "ia",
+ "is",
+ "ka",
+ "km",
+ "lt",
+ "mk",
+ "ms",
+ "my",
+ "ro",
+ "si",
+ "th",
+ "tl",
+ "trs",
+ "uz"
+ ]
+ }
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": [
+ "ach",
+ "af",
+ "ar",
+ "az",
+ "bg",
+ "cak",
+ "en-US",
+ "eo",
+ "es-AR",
+ "fa",
+ "gn",
+ "hy-AM",
+ "ia",
+ "is",
+ "ka",
+ "km",
+ "lt",
+ "mk",
+ "ms",
+ "my",
+ "ro",
+ "si",
+ "th",
+ "tl",
+ "trs",
+ "uz"
+ ]
+ },
+ "regions": ["au"]
+ },
+ "telemetryId": "amazon-au",
+ "webExtension": {
+ "id": "amazon@search.mozilla.org",
+ "locales": ["au"],
+ "version": "1.1"
+ }
+ },
+ {
+ "included": {
+ "locales": {
+ "matches": [
+ "ach",
+ "af",
+ "ar",
+ "az",
+ "bg",
+ "cak",
+ "en-US",
+ "eo",
+ "es-AR",
+ "fa",
+ "gn",
+ "hy-AM",
+ "ia",
+ "is",
+ "ka",
+ "km",
+ "lt",
+ "mk",
+ "ms",
+ "my",
+ "ro",
+ "si",
+ "th",
+ "tl",
+ "trs",
+ "uz"
+ ]
+ },
+ "regions": ["ca"]
+ },
+ "telemetryId": "amazon-ca",
+ "webExtension": {
+ "id": "amazon@search.mozilla.org",
+ "locales": ["ca"],
+ "version": "1.1"
+ }
+ },
+ {
+ "params": {
+ "searchUrlGetParams": [
+ {
+ "name": "field-keywords",
+ "value": "{searchTerms}"
+ },
+ {
+ "name": "ie",
+ "value": "{inputEncoding}"
+ },
+ {
+ "name": "mode",
+ "value": "blended"
+ },
+ {
+ "name": "sourceid",
+ "value": "Mozilla-search"
+ }
+ ]
+ },
+ "included": {
+ "locales": {
+ "matches": [
+ "ach",
+ "af",
+ "ar",
+ "az",
+ "bg",
+ "cak",
+ "en-US",
+ "eo",
+ "es-AR",
+ "fa",
+ "gn",
+ "hy-AM",
+ "ia",
+ "is",
+ "ka",
+ "km",
+ "lt",
+ "mk",
+ "ms",
+ "my",
+ "ro",
+ "si",
+ "th",
+ "tl",
+ "trs",
+ "uz"
+ ]
+ },
+ "regions": ["fr"]
+ },
+ "telemetryId": "amazon-france",
+ "webExtension": {
+ "id": "amazon@search.mozilla.org",
+ "locales": ["france"],
+ "version": "1.1"
+ }
+ },
+ {
+ "params": {
+ "searchUrlGetParams": [
+ {
+ "name": "field-keywords",
+ "value": "{searchTerms}"
+ },
+ {
+ "name": "ie",
+ "value": "{inputEncoding}"
+ },
+ {
+ "name": "mode",
+ "value": "blended"
+ },
+ {
+ "name": "sourceid",
+ "value": "Mozilla-search"
+ }
+ ]
+ },
+ "included": {
+ "locales": {
+ "matches": [
+ "ach",
+ "af",
+ "ar",
+ "az",
+ "bg",
+ "cak",
+ "en-US",
+ "eo",
+ "es-AR",
+ "fa",
+ "gn",
+ "hy-AM",
+ "ia",
+ "is",
+ "ka",
+ "km",
+ "lt",
+ "mk",
+ "ms",
+ "my",
+ "ro",
+ "si",
+ "th",
+ "tl",
+ "trs",
+ "uz"
+ ]
+ },
+ "regions": ["gb"]
+ },
+ "telemetryId": "amazon-en-GB",
+ "webExtension": {
+ "id": "amazon@search.mozilla.org",
+ "locales": ["en-GB"],
+ "version": "1.1"
+ }
+ }
+ ],
+ "orderHint": 500,
+ "telemetryId": "amazondotcom",
+ "webExtension": {
+ "id": "amazondotcom@search.mozilla.org",
+ "version": "1.1"
+ },
+ "id": "5eb7e179-c11d-4029-99b7-bc7ea1467d46",
+ "last_modified": 1597452130399
+ },
+ {
+ "params": {
+ "searchUrlGetParams": [
+ {
+ "name": "wd",
+ "value": "{searchTerms}"
+ },
+ {
+ "name": "tn",
+ "value": "monline_7_dg"
+ },
+ {
+ "name": "ie",
+ "value": "utf-8"
+ }
+ ],
+ "suggestUrlGetParams": [
+ {
+ "name": "wd",
+ "value": "{searchTerms}"
+ },
+ {
+ "name": "tn",
+ "value": "monline_7_dg"
+ },
+ {
+ "name": "ie",
+ "value": "utf-8"
+ },
+ {
+ "name": "action",
+ "value": "opensearch"
+ }
+ ]
+ },
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": ["zh-CN"]
+ }
+ }
+ },
+ {
+ "default": "yes",
+ "included": {
+ "locales": {
+ "matches": ["zh-CN"]
+ },
+ "regions": ["cn"]
+ }
+ }
+ ],
+ "telemetryId": "baidu",
+ "webExtension": {
+ "id": "baidu@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "59f371ee-05cc-4c9e-8961-27fe1fa4cbc2",
+ "last_modified": 1597452130376
+ },
+ {
+ "params": {
+ "searchUrlGetParams": [
+ {
+ "name": "q",
+ "value": "{searchTerms}"
+ }
+ ]
+ },
+ "appliesTo": [
+ {
+ "included": {
+ "locales": {
+ "matches": [
+ "ach",
+ "af",
+ "an",
+ "ar",
+ "ast",
+ "az",
+ "ca",
+ "ca-valencia",
+ "cak",
+ "da",
+ "de",
+ "dsb",
+ "el",
+ "eo",
+ "es-CL",
+ "es-ES",
+ "es-MX",
+ "eu",
+ "fa",
+ "ff",
+ "fi",
+ "fr",
+ "fy-NL",
+ "gn",
+ "gu-IN",
+ "hi-IN",
+ "hr",
+ "hsb",
+ "ia",
+ "is",
+ "it",
+ "ja-JP-macos",
+ "ja",
+ "ka",
+ "kab",
+ "km",
+ "kn",
+ "lij",
+ "lo",
+ "lt",
+ "mai",
+ "mk",
+ "ml",
+ "ms",
+ "my",
+ "nb-NO",
+ "ne-NP",
+ "nl",
+ "nn-NO",
+ "oc",
+ "or",
+ "pa-IN",
+ "pt-BR",
+ "rm",
+ "ro",
+ "son",
+ "sq",
+ "sr",
+ "sv-SE",
+ "th",
+ "tl",
+ "trs",
+ "uk",
+ "ur",
+ "uz",
+ "wo",
+ "xh",
+ "zh-CN"
+ ],
+ "startsWith": ["bn", "en"]
+ }
+ }
+ },
+ {
+ "included": {
+ "regions": ["default"]
+ }
+ }
+ ],
+ "webExtension": {
+ "id": "bing@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "d6b19d48-c263-49f9-9f5b-72fb5a3824bc",
+ "last_modified": 1597452130353
+ },
+ {
+ "params": {
+ "searchUrlGetParams": [
+ {
+ "name": "q",
+ "value": "{searchTerms}"
+ }
+ ]
+ },
+ "appliesTo": [
+ {
+ "default": "yes-if-no-other",
+ "included": {
+ "everywhere": true
+ }
+ }
+ ],
+ "orderHint": 1000,
+ "telemetryId": "google",
+ "webExtension": {
+ "id": "google@search.mozilla.org",
+ "version": "1.0"
+ },
+ "id": "6158e467-c0d3-48e8-a5cf-a2102b7f9456",
+ "last_modified": 1597452130330
+ }
+ ],
+ "timestamp": 1648185887941
+}
diff --git a/comm/mail/app/settings/dumps/thunderbird/url-classifier-skip-urls.json b/comm/mail/app/settings/dumps/thunderbird/url-classifier-skip-urls.json
new file mode 100644
index 0000000000..72d65b7215
--- /dev/null
+++ b/comm/mail/app/settings/dumps/thunderbird/url-classifier-skip-urls.json
@@ -0,0 +1,4 @@
+{
+ "data": [],
+ "timestamp": 1617259999367
+}
diff --git a/comm/mail/app/settings/moz.build b/comm/mail/app/settings/moz.build
new file mode 100644
index 0000000000..9b3acf08b9
--- /dev/null
+++ b/comm/mail/app/settings/moz.build
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+with Files("**"):
+ BUG_COMPONENT = ("Thunderbird", "General")
+
+DIRS += [
+ "dumps",
+]
diff --git a/comm/mail/app/splash.rc b/comm/mail/app/splash.rc
new file mode 100644
index 0000000000..4a3f209482
--- /dev/null
+++ b/comm/mail/app/splash.rc
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#include <windows.h>
+#include "nsNativeAppSupportWin.h"
+
+1 24 "thunderbird.exe.manifest"
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_STARTMENU_APPNAME, "@MOZ_APP_DISPLAYNAME@"
+END
+
+// Program icon.
+IDI_APPLICATION ICON MESSENGERWINDOW_ICO
+
+// For some reason IDI_MAILBIFF needs to be larger than the value of IDI_APPLICATION for static builds
+#define IDI_MAILBIFF 32576
+IDI_MAILBIFF ICON NEWMAIL_ICO
+
+// Windows taskbar icons
+#define IDI_WRITE_MESSAGE 32577
+IDI_WRITE_MESSAGE ICON WRITEMESSAGE_ICO
diff --git a/comm/mail/app/thunderbird.exe.manifest b/comm/mail/app/thunderbird.exe.manifest
new file mode 100644
index 0000000000..f3ac19a291
--- /dev/null
+++ b/comm/mail/app/thunderbird.exe.manifest
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<assemblyIdentity
+ version="1.0.0.0"
+ processorArchitecture="*"
+ name="Mozilla.Thunderbird"
+ type="win32"
+/>
+<description>Mozilla Thunderbird</description>
+<dependency>
+ <dependentAssembly>
+ <assemblyIdentity
+ type="win32"
+ name="Microsoft.Windows.Common-Controls"
+ version="6.0.0.0"
+ processorArchitecture="*"
+ publicKeyToken="6595b64144ccf1df"
+ language="*"
+ />
+ </dependentAssembly>
+</dependency>
+<dependency>
+ <dependentAssembly>
+ <assemblyIdentity
+ type="win32"
+ name="mozglue"
+ version="1.0.0.0"
+ language="*"
+ />
+ </dependentAssembly>
+</dependency>
+<ms_asmv3:trustInfo xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3">
+ <ms_asmv3:security>
+ <ms_asmv3:requestedPrivileges>
+ <ms_asmv3:requestedExecutionLevel level="asInvoker" uiAccess="false" />
+ </ms_asmv3:requestedPrivileges>
+ </ms_asmv3:security>
+</ms_asmv3:trustInfo>
+ <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+ <application>
+ <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
+ <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
+ <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
+ <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
+ </application>
+ </compatibility>
+</assembly>