diff options
Diffstat (limited to '')
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 Binary files differnew file mode 100644 index 0000000000..a017151d0e --- /dev/null +++ b/comm/mail/app/icons/gtk/calendar-alarm-dialog.png diff --git a/comm/mail/app/icons/gtk/calendar-general-dialog.png b/comm/mail/app/icons/gtk/calendar-general-dialog.png Binary files differnew file mode 100644 index 0000000000..83f327e76f --- /dev/null +++ b/comm/mail/app/icons/gtk/calendar-general-dialog.png diff --git a/comm/mail/app/icons/gtk/msgcomposeWindow16.png b/comm/mail/app/icons/gtk/msgcomposeWindow16.png Binary files differnew file mode 100644 index 0000000000..a82a61f515 --- /dev/null +++ b/comm/mail/app/icons/gtk/msgcomposeWindow16.png diff --git a/comm/mail/app/icons/gtk/msgcomposeWindow24.png b/comm/mail/app/icons/gtk/msgcomposeWindow24.png Binary files differnew file mode 100644 index 0000000000..be3a293146 --- /dev/null +++ b/comm/mail/app/icons/gtk/msgcomposeWindow24.png diff --git a/comm/mail/app/icons/gtk/msgcomposeWindow32.png b/comm/mail/app/icons/gtk/msgcomposeWindow32.png Binary files differnew file mode 100644 index 0000000000..29dd4ee0b0 --- /dev/null +++ b/comm/mail/app/icons/gtk/msgcomposeWindow32.png diff --git a/comm/mail/app/icons/gtk/msgcomposeWindow48.png b/comm/mail/app/icons/gtk/msgcomposeWindow48.png Binary files differnew file mode 100644 index 0000000000..52bf9ac2a5 --- /dev/null +++ b/comm/mail/app/icons/gtk/msgcomposeWindow48.png diff --git a/comm/mail/app/icons/windows/calendar-alarm-dialog.ico b/comm/mail/app/icons/windows/calendar-alarm-dialog.ico Binary files differnew file mode 100644 index 0000000000..07ad8e6b6c --- /dev/null +++ b/comm/mail/app/icons/windows/calendar-alarm-dialog.ico diff --git a/comm/mail/app/icons/windows/calendar-general-dialog.ico b/comm/mail/app/icons/windows/calendar-general-dialog.ico Binary files differnew file mode 100644 index 0000000000..81c02242cb --- /dev/null +++ b/comm/mail/app/icons/windows/calendar-general-dialog.ico diff --git a/comm/mail/app/icons/windows/msgcomposeWindow.ico b/comm/mail/app/icons/windows/msgcomposeWindow.ico Binary files differnew file mode 100644 index 0000000000..51d09d9a79 --- /dev/null +++ b/comm/mail/app/icons/windows/msgcomposeWindow.ico 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%¤tAppVersion=%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%¤tAppVersion=%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> |