From ee40a9e71bcca763f4039cacc983122cdeb3cc9d Mon Sep 17 00:00:00 2001 From: Figue Date: Thu, 24 Oct 2019 23:43:40 +0200 Subject: [PATCH] Push to 68.x branch. Not official, some patches comes from Antonio Trande gitlab for Fedora https://gitlab.com/anto.trande/icecat --- .SRCINFO | 54 +++-- PKGBUILD | 99 ++++----- patch_makeicecat_stuff.patch | 330 ++++++++++++++++++++++++++++-- settings.js | 376 +++++++++++++++++++++++++++++++++++ 4 files changed, 767 insertions(+), 92 deletions(-) create mode 100644 settings.js diff --git a/.SRCINFO b/.SRCINFO index 4db84fa8c2bf2..ab3ce8fb0ed38 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = icecat pkgdesc = GNU version of the Firefox browser. - pkgver = 60.9.0 - pkgrel = 2 + pkgver = 68.2.0 + pkgrel = 1 url = http://www.gnu.org/software/gnuzilla/ arch = x86_64 license = GPL @@ -10,58 +10,54 @@ pkgbase = icecat makedepends = unzip makedepends = zip makedepends = diffutils - makedepends = python2 + makedepends = python2-setuptools makedepends = yasm makedepends = mesa makedepends = imake - makedepends = autoconf2.13 - makedepends = libpulse - makedepends = gst-plugins-base-libs makedepends = inetutils + makedepends = xorg-server-xvfb + makedepends = autoconf2.13 makedepends = rust - makedepends = llvm makedepends = clang - makedepends = bzr + makedepends = llvm + makedepends = jack + makedepends = gtk2 + makedepends = python + makedepends = nodejs + makedepends = python2-psutil + makedepends = cbindgen + makedepends = nasm makedepends = wget - makedepends = mercurial - makedepends = perl-rename depends = gtk3 - depends = gtk2 depends = mozilla-common depends = libxt depends = startup-notification depends = mime-types depends = dbus-glib - depends = alsa-lib depends = ffmpeg - depends = icu - depends = libevent depends = nss - depends = hunspell - depends = sqlite depends = ttf-font + depends = libpulse optdepends = networkmanager: Location detection via available WiFi networks optdepends = libnotify: Notification integration optdepends = pulseaudio: Audio support optdepends = speech-dispatcher: Text-to-Speech + optdepends = hunspell-en_US: Spell checking, American English + options = !emptydirs + options = !makeflags + options = !strip source = http://git.savannah.gnu.org/cgit/gnuzilla.git/snapshot/gnuzilla-6634ee332979f7a78b11cbf09a77364143a981ed.tar.gz source = icecat.desktop source = icecat-safe.desktop - source = rust_133-part0.patch - source = rust_133-part1.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9046663 - source = rust_133-part2.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9046664 - source = deny_missing_docs.patch source = patch_makeicecat_stuff.patch - source = fix-addons.patch + source = 0001-Use-remoting-name-for-GDK-application-names.patch::https://git.archlinux.org/svntogit/packages.git/plain/trunk/0001-Use-remoting-name-for-GDK-application-names.patch?h=packages/firefox&id=3dac00b6aefd97b66f13af0ad8761a3765094368 + source = settings.js sha256sums = 2655c3a8f656435e636fcc7774f3fa6e62bf1f98056a64b8b84fbec9a03f7b0c - sha256sums = 88a2bfdc78e320fc53dcdc732991d305122ea4eecbbea1dc1723538baa6cd8e2 - sha256sums = 190577ad917bccfc89a9bcafbc331521f551b6f54e190bb6216eada48dcb1303 - sha256sums = c10521badc262b476e844d3f3045ddf27e28d83d49b5db0d0e19431f06386e4d - sha256sums = 8b37332dd205946ea95c606103b5b0e1e8498819051ea1c1bce79f04fd88ebca - sha256sums = 08ab4293d6008524a38e20b428c750c4c55a2f7189e9a0067871ad723c1efab5 - sha256sums = cb1116c783995b8187574f84acb8365681aedaa2c76222cf060d31fedcb063c4 - sha256sums = 49f7c5cb5a15a30f3fa524960a4ea273c76b191703899db68002f3194c175632 - sha256sums = 15b381ff8d8296bbf61036401ba774a9b44aaefdc13b2c0627ef6d44e055b00e + sha256sums = e00dbf01803cdd36fd9e1c0c018c19bb6f97e43016ea87062e6134bdc172bc7d + sha256sums = 33dd309eeb99ec730c97ba844bf6ce6c7840f7d27da19c82389cdefee8c20208 + sha256sums = 228b553953df859aa03164352622c4f9d6514cff1e30756181a4cbe60d9324e5 + sha256sums = ab07ab26617ff76fce68e07c66b8aa9b96c2d3e5b5517e51a3c3eac2edd88894 + sha256sums = f56b75584f1baac86948cdebef71b767e37eee0e1c3677380ff9b2285514efea pkgname = icecat diff --git a/PKGBUILD b/PKGBUILD index 95f54884baebb..dc353dca8f05e 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -6,66 +6,75 @@ # Contributor: Muhammad 'MJ' Jassim pkgname=icecat -pkgver=60.9.0 +pkgver=68.2.0 +a_pkgver=( ${pkgver//./ } ) _pkgver=6634ee332979f7a78b11cbf09a77364143a981ed -pkgrel=2 +pkgrel=1 pkgdesc="GNU version of the Firefox browser." arch=(x86_64) url="http://www.gnu.org/software/gnuzilla/" license=('GPL' 'MPL' 'LGPL') -depends=('gtk3' 'gtk2' 'mozilla-common' 'libxt' 'startup-notification' 'mime-types' 'dbus-glib' 'alsa-lib' 'ffmpeg' - 'icu' 'libevent' 'nss' 'hunspell' 'sqlite' 'ttf-font') -makedepends=('unzip' 'zip' 'diffutils' 'python2' 'yasm' 'mesa' 'imake' 'autoconf2.13' - 'libpulse' 'gst-plugins-base-libs' 'inetutils' 'rust' 'llvm' 'clang' 'bzr' 'wget' 'mercurial' 'perl-rename') +depends=(gtk3 mozilla-common libxt startup-notification mime-types dbus-glib + ffmpeg nss ttf-font libpulse) +makedepends=(unzip zip diffutils python2-setuptools yasm mesa imake inetutils + xorg-server-xvfb autoconf2.13 rust clang llvm jack gtk2 + python nodejs python2-psutil cbindgen nasm wget) optdepends=('networkmanager: Location detection via available WiFi networks' 'libnotify: Notification integration' 'pulseaudio: Audio support' - 'speech-dispatcher: Text-to-Speech') + 'speech-dispatcher: Text-to-Speech' + 'hunspell-en_US: Spell checking, American English') +options=(!emptydirs !makeflags !strip) source=(http://git.savannah.gnu.org/cgit/gnuzilla.git/snapshot/gnuzilla-${_pkgver}.tar.gz - icecat.desktop icecat-safe.desktop - rust_133-part0.patch 'rust_133-part1.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9046663' 'rust_133-part2.patch::https://bugzilla.mozilla.org/attachment.cgi?id=9046664' - deny_missing_docs.patch patch_makeicecat_stuff.patch fix-addons.patch) + icecat.desktop icecat-safe.desktop patch_makeicecat_stuff.patch + "0001-Use-remoting-name-for-GDK-application-names.patch::https://git.archlinux.org/svntogit/packages.git/plain/trunk/0001-Use-remoting-name-for-GDK-application-names.patch?h=packages/firefox&id=3dac00b6aefd97b66f13af0ad8761a3765094368" + settings.js) sha256sums=('2655c3a8f656435e636fcc7774f3fa6e62bf1f98056a64b8b84fbec9a03f7b0c' - '88a2bfdc78e320fc53dcdc732991d305122ea4eecbbea1dc1723538baa6cd8e2' - '190577ad917bccfc89a9bcafbc331521f551b6f54e190bb6216eada48dcb1303' - 'c10521badc262b476e844d3f3045ddf27e28d83d49b5db0d0e19431f06386e4d' - '8b37332dd205946ea95c606103b5b0e1e8498819051ea1c1bce79f04fd88ebca' - '08ab4293d6008524a38e20b428c750c4c55a2f7189e9a0067871ad723c1efab5' - 'cb1116c783995b8187574f84acb8365681aedaa2c76222cf060d31fedcb063c4' - '49f7c5cb5a15a30f3fa524960a4ea273c76b191703899db68002f3194c175632' - '15b381ff8d8296bbf61036401ba774a9b44aaefdc13b2c0627ef6d44e055b00e') + 'e00dbf01803cdd36fd9e1c0c018c19bb6f97e43016ea87062e6134bdc172bc7d' + '33dd309eeb99ec730c97ba844bf6ce6c7840f7d27da19c82389cdefee8c20208' + '228b553953df859aa03164352622c4f9d6514cff1e30756181a4cbe60d9324e5' + 'ab07ab26617ff76fce68e07c66b8aa9b96c2d3e5b5517e51a3c3eac2edd88894' + 'f56b75584f1baac86948cdebef71b767e37eee0e1c3677380ff9b2285514efea') #validpgpkeys=(A57369A8BABC2542B5A0368C3C76EED7D7E04784) # Ruben Rodriguez (GNU IceCat releases key) prepare() { cd gnuzilla-${_pkgver} patch -Np1 -i ../patch_makeicecat_stuff.patch - sed -e '/sha256sum/d' -i makeicecat - sed -e "s/^FFMAJOR.*/FFMAJOR=${pkgver:0:2}/g" -i makeicecat - sed -e "s/^FFMINOR.*/FFMINOR=${pkgver:(-3):(-2)}/g" -i makeicecat - sed -e "s/^FFSUB.*/FFSUB=${pkgver:(5)}/g" -i makeicecat + cp -vf ../settings.js data/ + sed -e "s/^FFMAJOR.*/FFMAJOR=${a_pkgver[0]}/g" -i makeicecat + sed -e "s/^FFMINOR.*/FFMINOR=${a_pkgver[1]}/g" -i makeicecat + sed -e "s/^FFSUB.*/FFSUB=${a_pkgver[2]}/g" -i makeicecat +# sed -e "s/^FFSUB.*/FFSUB=/g" -i makeicecat + sed -e "s/^GNUVERSION=.*/GNUVERSION=${pkgrel}/g" -i makeicecat + sed -e 's/^FFVERSION.*/FFVERSION=$FFMAJOR.$FFMINOR.$FFSUB/g' -i makeicecat # Only need this patch if release has 2 numbers +# sed -e 's/^gpg --recv-keys.*//g' -i makeicecat ## WITH PROXY gpg doesn't work!!!!!! rm -rf output # Clean output just in case is already an old build there bash makeicecat cd output/icecat-${pkgver} + # Fix brand name variables + echo -e "-brand-shorter-name = IceCat\n-brand-full-name = GNU IceCat\n-brand-product-name = IceCat\n-vendor-short-name = GNU" >> browser/branding/official/locales/en-US/brand.ftl + + # https://bugzilla.mozilla.org/show_bug.cgi?id=1530052 + patch -Np1 -i ../../../0001-Use-remoting-name-for-GDK-application-names.patch + + # Remove extra tag + mv -f browser/base/content/aboutDialog.xul browser/base/content/aboutDialog.xul_bad + cat browser/base/content/aboutDialog.xul_bad | uniq > browser/base/content/aboutDialog.xul + rm -f browser/base/content/aboutDialog.xul_bad + # Patch to move files directly to /usr/lib/icecat. No more symlinks. sed -e 's;$(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION);$(libdir)/$(MOZ_APP_NAME);g' -i config/baseconfig.mk sed -e 's;$(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION);$(libdir)/$(MOZ_APP_NAME)-devel;g' -i config/baseconfig.mk - # Bug 1521249 --enable-rust-simd fails to build using Rust 1.33 - # https://bugzilla.mozilla.org/show_bug.cgi?id=1521249 - patch -Np1 -i ${srcdir}/rust_133-part0.patch - patch -Np1 -i ${srcdir}/rust_133-part1.patch || true - patch -Np1 -i ${srcdir}/rust_133-part2.patch - patch -Np1 -i ${srcdir}/deny_missing_docs.patch - - # fixes installation of those addons which don't have ID on IceCat ("Cannot find id for addon" error). Thanks to kitsunyan. - patch -Np1 -i ${srcdir}/fix-addons.patch - - # Fix for error: static declaration of 'gettid' follows non-static declaration - sed -i -e "s/static inline pid_t gettid/inline pid_t gettid/" tools/profiler/core/platform.h + # Update all IceCat extensions + #git clone https://gitlab.com/sebaro/ViewTube.git data/extensions/viewtube@extension/ + #cd data/extensions/https-everywhere@eff.org + #rm -rf * && wget -O - 'https://www.eff.org/files/https-everywhere-latest.xpi' | bsdtar -xvf- + #cd ../../.. printf '%b' " \e[1;36m->\e[0m\033[1m Starting build...\n" @@ -73,35 +82,30 @@ prepare() { ac_add_options --enable-application=browser ac_add_options --prefix=/usr -ac_add_options --libdir=/usr/lib -ac_add_options --enable-linker=gold ac_add_options --enable-hardening ac_add_options --enable-optimize ac_add_options --enable-rust-simd +ac_add_options --enable-lto # Branding ac_add_options --enable-official-branding ac_add_options --with-distribution-id=org.gnu +ac_add_options --with-unsigned-addon-scopes=app,system # System libraries -ac_add_options --with-system-zlib -ac_add_options --with-system-bz2 -ac_add_options --with-system-icu -ac_add_options --with-system-jpeg ac_add_options --with-system-nspr ac_add_options --with-system-nss -ac_add_options --enable-system-sqlite -ac_add_options --enable-system-ffi # Features ac_add_options --enable-alsa +ac_add_options --enable-jack ac_add_options --enable-startup-notification ac_add_options --disable-crashreporter ac_add_options --disable-updater +ac_add_options --disable-tests ac_add_options --disable-debug-symbols ac_add_options --disable-tests ac_add_options --disable-eme ac_add_options --disable-gconf -ac_add_options --disable-stylo # Workaround to fix build with rustc 1.38 ac_add_options --with-app-basename=icecat ac_add_options --with-app-name=icecat @@ -110,7 +114,6 @@ END build() { cd gnuzilla-${_pkgver}/output/icecat-${pkgver} - ICECATDIR="/usr/lib/${pkgname}" && export ICECATDIR export CC=clang export CXX=clang++ @@ -118,10 +121,10 @@ build() { export NM=llvm-nm export RANLIB=llvm-ranlib - # Do PGO - #xvfb-run -a -n 95 -s "-extension GLX -screen 0 1280x1024x24" \ - # MOZ_PGO=1 ./mach build - ./mach build + # LTO needs more open files + ulimit -n 4096 + + xvfb-run -a -n 97 -s "-screen 0 1600x1200x24" ./mach build ./mach buildsymbols } diff --git a/patch_makeicecat_stuff.patch b/patch_makeicecat_stuff.patch index 90fceac77563b..62d85364e11d2 100644 --- a/patch_makeicecat_stuff.patch +++ b/patch_makeicecat_stuff.patch @@ -1,6 +1,155 @@ ---- a/makeicecat 2019-05-13 20:55:02.000000000 +0200 -+++ b/makeicecat 2019-05-13 20:54:38.007705184 +0200 -@@ -264,12 +264,9 @@ +--- a/makeicecat 2019-09-16 17:42:47.412945771 +0200 ++++ b/makeicecat 2019-09-16 22:33:31.344728411 +0200 +@@ -16,6 +16,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + # ++# Modified for IceCat on Archlinux + + set -euxo pipefail + +@@ -40,11 +41,11 @@ + + wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz + wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc +-gpg --recv-keys --keyserver keyserver.ubuntu.com 24C6F355 +-gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc +-echo -n 0a5f0c1d8d1e9443d85083d37fec32e5cc15c1001ea992d49745490065b4a023 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - ++gpg2 --keyserver hkp://gpg.mozilla.org/ --list-keys "Mozilla Software Releases " ++gpg2 --keyserver hkp://gpg.mozilla.org/ --receive-keys 14F26682D0916CDD81E37B6D61B7B526D98F0353 ++gpg2 --keyserver hkp://gpg.mozilla.org/ --verify firefox-${FFVERSION}esr.source.tar.xz.asc + +-echo Extracting Firefox tarball ++#echo Extracting Firefox tarball + tar -xf firefox-${FFVERSION}esr.source.tar.xz + + mv firefox-${FFVERSION} $SOURCEDIR +@@ -53,11 +54,11 @@ + # Retrieve l10n + ############################################################################### + +-mkdir l10n ++mkdir -p l10n + cd l10n + while read line;do + line=$(echo $line |cut -d' ' -f1) +- #[ $line = "es-ES" ] || continue # To speed up testing ++ [ $line = "es-ES" ] || continue # To speed up testing + [ $line = "en-US" ] && continue + hg clone https://hg.mozilla.org/l10n-central/$line + mkdir -p $line/browser/chrome/browser/preferences +@@ -70,7 +71,7 @@ + + hg clone http://hg.mozilla.org/l10n/compare-locales/ + cd compare-locales/ +-hg checkout RELEASE_3_3_0 ++hg checkout RELEASE_7_2_5 + cd .. + rm compare-locales/.hg* compare-locales/.git* -rf + mv compare-locales $SOURCEDIR/l10n +@@ -79,12 +80,7 @@ + + cd $SOURCEDIR + +-#for patch in $DATA/patches/*; do +-# echo Patching with file: $patch +-# patch -p1 < $patch +-#done +- +-cp $DATA/Changelog.IceCat $DATA/README.IceCat . ++cp -p $DATA/Changelog.IceCat $DATA/README.IceCat . + + ############################################################################### + # Functions +@@ -177,29 +173,29 @@ + do + /bin/sed /^$/d -i $file + sort -u $file > /tmp/sorttmp +- cp /tmp/sorttmp $file ++ cp -p /tmp/sorttmp $file + echo >> $file + done + +-# Disable activity-stream antifeatures. ++echo "Disable activity-stream antifeatures..." + # These are not condensed into a single sed script to make it fail on individual commands that didn't change the source +-sed '/^const DEFAULT_SITES/,/^])\;/c const DEFAULT_SITES = new Map\([[""]]\);' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed '/\["showSponsored/,/value/s/value: true/value: false/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed '/\["disableSnippets/,/value/s/value: false/value: true/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed '/\["telemetry"/,/value/s/value: true/value: false/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed '/\["section.highlights.includePocket"/,/value/s/value: true/value: false/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed '/\["telemetry.ping.endpoint"/,/value/s/value: .*/value: ""/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed '/\["tippyTop.service.endpoint"/,/value/s/value: .*/value: ""/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed 's/\(read_more_endpoint:\) .http.*/\1 "",/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed 's/\(stories_endpoint:\) .http.*/\1 "",/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed 's/\(stories_referrer:\) .http.*/\1 "",/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed 's/\(privacy_notice_link:\) .http.*/\1 "https:\/\/trisquel.info\/legal",/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed 's/\(disclaimer_link:\) .http.*/\1 "",/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed 's/\(topics_endpoint:\) .http.*/\1 "",/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed '/name: "snippets"/,/value/s/value: true/value: false/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed '/name: "telemetry"/,/value/s/value: true/value: false/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +-sed '/name: "section.topstories"/,/return/s/return.*/return false;/' -i browser/extensions/activity-stream/lib/ActivityStream.jsm +- ++sed '/^const DEFAULT_SITES/,/^])\;/c const DEFAULT_SITES = new Map\([[""]]\);' -i browser/components/newtab/lib/ActivityStream.jsm ++sed '/\["showSponsored/,/value/s/value: true/value: false/' -i browser/components/newtab/lib/ActivityStream.jsm ++#sed '/\["disableSnippets/,/value/s/value: false/value: true/' -i browser/components/newtab/lib/ActivityStream.jsm ++sed '/\["telemetry"/,/value/s/value: true/value: false/' -i browser/components/newtab/lib/ActivityStream.jsm ++sed '/\["section.highlights.includePocket"/,/value/s/value: true/value: false/' -i browser/components/newtab/lib/ActivityStream.jsm ++sed '/\["telemetry.ping.endpoint"/,/value/s/value: .*/value: ""/' -i browser/components/newtab/lib/ActivityStream.jsm ++#sed '/\["tippyTop.service.endpoint"/,/value/s/value: .*/value: ""/' -i browser/components/newtab/lib/ActivityStream.jsm ++sed 's/\(read_more_endpoint:\) .http.*/\1 "",/' -i browser/components/newtab/lib/ActivityStream.jsm ++sed 's/\(stories_endpoint:\) .http.*/\1 "",/' -i browser/components/newtab/lib/ActivityStream.jsm ++sed 's/\(stories_referrer:\) .http.*/\1 "",/' -i browser/components/newtab/lib/ActivityStream.jsm ++#sed 's/\(privacy_notice_link:\) .http.*/\1 "https:\/\/trisquel.info\/legal",/' -i browser/components/newtab/lib/ActivityStream.jsm ++#sed 's/\(disclaimer_link:\) .http.*/\1 "",/' -i browser/components/newtab/lib/ActivityStream.jsm ++sed 's/\(topics_endpoint:\) .http.*/\1 "",/' -i browser/components/newtab/lib/ActivityStream.jsm ++#sed '/name: "snippets"/,/value/s/value: true/value: false/' -i browser/components/newtab/lib/ActivityStream.jsm ++sed '/name: "telemetry"/,/value/s/value: true/value: false/' -i browser/components/newtab/lib/ActivityStream.jsm ++sed '/name: "section.topstories"/,/return/s/return.*/return false;/' -i browser/components/newtab/lib/ActivityStream.jsm ++echo "Terminated activity-stream modifications" + + ############################################################################### + # Branding +@@ -209,9 +205,6 @@ + rm browser/branding/{official,unofficial,aurora,nightly} mobile/android/branding/* -rf + cp -a $DATA/branding/icecat/ browser/branding/official + cp -a $DATA/branding/icecat/ browser/branding/nightly +-cp -a $DATA/branding/icecatmobile/ mobile/android/branding/official +-cp -a $DATA/branding/icecatmobile/ mobile/android/branding/unofficial +-cp -a $DATA/branding/icecatmobile/ mobile/android/branding/nightly + # Disable preprocessor + sed 's/_PP//' -i browser/branding/branding-common.mozbuild + +@@ -219,7 +212,7 @@ + rm -rf ./browser/metro ./addon-sdk/source/doc/static-files/media ./b2g + + # Custom bookmarks +-cp $DATA/bookmarks.html.in browser/locales/generic/profile/bookmarks.html.in ++cp -p $DATA/bookmarks.html.in browser/locales/generic/profile/bookmarks.html.in + + # Custom legal about pages + +@@ -235,15 +228,15 @@ + find -name aboutRights.dtd | xargs sed -i "s/ENTITY $STRING.*/ENTITY $STRING \"\">/" + done + +-sed '/helpus.start/d' -i browser/base/content/aboutDialog.xul ++#sed '/helpus.start/d' -i browser/base/content/aboutDialog.xul + +-cp $DATA/aboutRights.xhtml toolkit/content/aboutRights.xhtml +-cp $DATA/aboutRights.xhtml toolkit/content/aboutRights-unbranded.xhtml ++cp -pb $DATA/aboutRights.xhtml toolkit/content/aboutRights.xhtml ++cp -pb $DATA/aboutRights.xhtml toolkit/content/aboutRights-unbranded.xhtml + + sed -i 's/Mozilla\ Project<\/a>/GNU\ Project<\/a>/g' browser/base/content/overrides/app-license.html + + # Custom logo for about:preferences?entrypoint=menupanel#sync +-cp $DATA/branding/sync.png browser/themes/shared/fxa/logo.png ++cp -p $DATA/branding/sync.png browser/themes/shared/fxa/logo.png + + # Hide mobile promo + echo ".fxaMobilePromo { display: none !important; }" >> browser/themes/shared/incontentprefs/preferences.inc.css +@@ -260,22 +253,15 @@ ############################################################################### # Replace Firefox branding @@ -16,7 +165,17 @@ echo "Running batch rebranding" SEDSCRIPT=" -@@ -289,11 +286,8 @@ + s|marketplace.firefox.com|f-droid.org/repository/browse|g; + s/org.mozilla.firefox/org.gnu.icecat/g; + s/Adobe Flash/Flash/g; +-s|addons.mozilla.org.*/mobile|directory.fsf.org/wiki/GNU_IceCat|g; +-s|addons.mozilla.org.*/android|directory.fsf.org/wiki/GNU_IceCat|g; +-s|support.mozilla.org.*/mobile|libreplanet.org/wiki/Group:IceCat/icecat-help|g; +-s|fhr.cdn.mozilla.net.*mobile|127.0.0.1|g; + s/run-mozilla.sh/run-icecat.sh/g; + s/Firefox Marketplace/F-droid free software repository/g; + s|mozilla.com/plugincheck|$ADDONSURL|g; +@@ -285,11 +271,8 @@ s/Mozilla Firefox/GNU IceCat/g; s/firefox/icecat/g; @@ -28,7 +187,7 @@ s/ Mozilla / GNU /g; s|PACKAGES/icecat|PACKAGES/firefox|g; -@@ -331,7 +325,7 @@ +@@ -327,7 +310,7 @@ sed 's/mozilla-bin/icecat-bin/' -i build/unix/run-mozilla.sh @@ -37,7 +196,19 @@ # do not alter useragent/platform/oscpu/etc with fingerprinting countermeasure, it makes things worse sed '/ShouldResistFingerprinting/,/}/s/^/\/\//' -i ./netwerk/protocol/http/nsHttpHandler.cpp -@@ -378,7 +372,6 @@ +@@ -339,8 +322,9 @@ + find . -name region.properties |xargs -i /bin/sed 's_https://www.mibbit.*__' -i {} + + # Set migrator scripts +-cp browser/components/migration/IceCatProfileMigrator.js browser/components/migration/FirefoxProfileMigrator.js +-sed 's/IceCat/Firefox/g; s/icecat/firefox/g' -i browser/components/migration/FirefoxProfileMigrator.js ++#cp -p browser/components/migration/IceCatProfileMigrator.js browser/components/migration/FirefoxProfileMigrator.js ++cp -p ./browser/components/migration/IceCatProfileMigrator.jsm ./browser/components/migration/FirefoxProfileMigrator.jsm ++sed 's/IceCat/Firefox/g; s/icecat/firefox/g' -i ./browser/components/migration/FirefoxProfileMigrator.jsm + + # Copy js settings + cat $DATA/settings.js >> browser/app/profile/icecat.js +@@ -374,7 +358,6 @@ MOZ_DATA_REPORTING=0 MOZ_SERVICES_SYNC=0 MOZ_DEVICES=0 @@ -45,10 +216,58 @@ MOZ_ADDON_SIGNING=0 EOF -@@ -449,87 +442,6 @@ - cp $ff32 image/test/unit/image2jpg32x32-win.png +@@ -397,133 +380,36 @@ + ff22=$DATA/branding/icecat/default22.png + ff16=$DATA/branding/icecat/default16.png - ############################################################################### +-#Grey flat logo +-gf300=$DATA/android-images/resources/drawable-xhdpi/icon_home_empty_icecat.png +-gf225=$DATA/android-images/resources/drawable-hdpi/icon_home_empty_icecat.png +-gf150=$DATA/android-images/resources/drawable-mdpi/icon_home_empty_icecat.png +-gf32=$DATA/android-images/resources/drawable-xhdpi/ic_status_logo.png +-gf24=$DATA/android-images/resources/drawable-hdpi/ic_status_logo.png +-gf16=$DATA/android-images/resources/drawable-mdpi/ic_status_logo.png +-# White flat +-wf24=$DATA/android-images/resources/drawable-mdpi-v11/ic_status_logo.png +-wf48=$DATA/android-images/resources/drawable-xhdpi-v11/ic_status_logo.png +-wf36=$DATA/android-images/resources/drawable-hdpi-v11/ic_status_logo.png +- +-#Market logo +-ma50=$DATA/android-images/core/marketplace-logo.png +-ma128=$DATA/android-images/resources/drawable-mdpi/marketplace.png +- +-cp $ff16 dom/canvas/test/crossorigin/image.png +-cp $ff16 image/test/unit/image1.png +-cp $jpglogo image/test/unit/image1png16x16.jpg +-cp $jpglogo image/test/unit/image1png64x64.jpg +-cp $ff16 image/test/unit/image2jpg16x16.png +-cp $ff16 image/test/unit/image2jpg16x16-win.png +-cp $ff32 image/test/unit/image2jpg32x32.png +-cp $ff32 image/test/unit/image2jpg32x32-win.png +-cp $ff16 dom/canvas/test/crossorigin/image-allow-credentials.png +-cp $ff16 dom/html/test/image-allow-credentials.png +-cp $ff16 dom/canvas/test/crossorigin/image-allow-star.png +-cp $ff16 toolkit/components/places/tests/favicons/expected-favicon-big32.jpg.png +-cp $ff16 toolkit/components/places/tests/favicons/expected-favicon-big64.png.png +-cp $jpglogo toolkit/components/places/tests/favicons/favicon-big32.jpg +-cp $ff64 toolkit/components/places/tests/favicons/favicon-big64.png +-cp $favicon image/test/unit/image4gif16x16bmp24bpp.ico +-cp $favicon image/test/unit/image4gif16x16bmp32bpp.ico +-cp $favicon image/test/unit/image4gif32x32bmp24bpp.ico +-cp $favicon image/test/unit/image4gif32x32bmp32bpp.ico +-cp $jpglogo image/test/unit/image1png16x16.jpg +-cp $jpglogo image/test/unit/image2.jpg +-cp $jpglogo image/test/unit/image2jpg16x16cropped.jpg +-cp $jpglogo image/test/unit/image2jpg16x16cropped2.jpg +-cp $jpglogo image/test/unit/image2jpg16x32cropped3.jpg +-cp $jpglogo image/test/unit/image2jpg16x32scaled.jpg +-cp $jpglogo image/test/unit/image2jpg32x16cropped4.jpg +-cp $jpglogo image/test/unit/image2jpg32x16scaled.jpg +-cp $jpglogo image/test/unit/image2jpg32x32.jpg +-cp $ff32 image/test/unit/image2jpg32x32.png +-cp $ff32 image/test/unit/image2jpg32x32-win.png +- +-############################################################################### -# Mobile -############################################################################### - @@ -128,15 +347,96 @@ -find . ! -executable -exec chmod 644 {} \; -find . -type d -exec chmod 755 {} \; -EOF -- --############################################################################### - # Extensions - ############################################################################### ++cp -p $ff16 dom/canvas/test/crossorigin/image.png ++cp -p $ff16 image/test/unit/image1.png ++cp -p $jpglogo image/test/unit/image1png16x16.jpg ++cp -p $jpglogo image/test/unit/image1png64x64.jpg ++cp -p $ff16 image/test/unit/image2jpg16x16.png ++cp -p $ff16 image/test/unit/image2jpg16x16-win.png ++cp -p $ff32 image/test/unit/image2jpg32x32.png ++cp -p $ff32 image/test/unit/image2jpg32x32-win.png ++cp -p $ff16 dom/canvas/test/crossorigin/image-allow-credentials.png ++cp -p $ff16 dom/html/test/image-allow-credentials.png ++cp -p $ff16 dom/canvas/test/crossorigin/image-allow-star.png ++cp -p $ff16 toolkit/components/places/tests/favicons/expected-favicon-big32.jpg.png ++cp -p $ff16 toolkit/components/places/tests/favicons/expected-favicon-big64.png.png ++cp -p $jpglogo toolkit/components/places/tests/favicons/favicon-big32.jpg ++cp -p $ff64 toolkit/components/places/tests/favicons/favicon-big64.png ++cp -p $favicon image/test/unit/image4gif16x16bmp24bpp.ico ++cp -p $favicon image/test/unit/image4gif16x16bmp32bpp.ico ++cp -p $favicon image/test/unit/image4gif32x32bmp24bpp.ico ++cp -p $favicon image/test/unit/image4gif32x32bmp32bpp.ico ++cp -p $jpglogo image/test/unit/image1png16x16.jpg ++cp -p $jpglogo image/test/unit/image2.jpg ++cp -p $jpglogo image/test/unit/image2jpg16x16cropped.jpg ++cp -p $jpglogo image/test/unit/image2jpg16x16cropped2.jpg ++cp -p $jpglogo image/test/unit/image2jpg16x32cropped3.jpg ++cp -p $jpglogo image/test/unit/image2jpg16x32scaled.jpg ++cp -p $jpglogo image/test/unit/image2jpg32x16cropped4.jpg ++cp -p $jpglogo image/test/unit/image2jpg32x16scaled.jpg ++cp -p $jpglogo image/test/unit/image2jpg32x32.jpg ++cp -p $ff32 image/test/unit/image2jpg32x32.png ++cp -p $ff32 image/test/unit/image2jpg32x32-win.png + + ############################################################################### + # Extensions +@@ -540,7 +426,6 @@ + # Add extensions to manifest + for EXTENSION in $(ls $DATA/extensions/); do + sed "/Browser Chrome Files/s%$%\n@BINPATH@/browser/extensions/$EXTENSION/*%" -i browser/installer/package-manifest.in +-sed "/Browser Chrome Files/s%$%\n@BINPATH@/extensions/$EXTENSION/*%" -i mobile/android/installer/package-manifest.in + #echo "DIRS += ['$EXTENSION']" >> browser/app/profile/extensions/moz.build + #touch browser/app/profile/extensions/$EXTENSION/moz.build + done +@@ -549,18 +434,12 @@ + + cat << EOF >> browser/app/Makefile.in + libs:: ++ mkdir -p \$(DIST)/bin/browser/extensions + cp -a \$(topsrcdir)/extensions/gnu/* \$(DIST)/bin/browser/extensions +- mkdir -p \$(DIST)/icecat/browser/extensions/ ++ mkdir -p \$(DIST)/icecat/browser/extensions + cp -a \$(topsrcdir)/extensions/gnu/* \$(DIST)/icecat/browser/extensions/ + EOF + +- +-cat << EOF >> mobile/android/app/Makefile.in +-libs:: +- mkdir -p \$(DIST)/bin/distribution +- cp -a \$(topsrcdir)/extensions/gnu/ \$(DIST)/bin/distribution/extensions +-EOF +- + #sed '/^make-package-internal:/ s%$%\n\tcp $(topsrcdir)/extensions.gnu/* $(DIST)/icecat/browser/extensions -a%' -i toolkit/mozapps/installer/packager.mk + + # Add extensions to allowed-dupes.mn +@@ -569,17 +448,15 @@ + browser/chrome/browser/content/browser/aboutaccounts/images/fox.png + EOF + find extensions/gnu/ | sed s=extensions/gnu=browser/extensions= >> ./browser/installer/allowed-dupes.mn +-find extensions/gnu/ | sed s=extensions/gnu=distribution/extensions= >> mobile/android/installer/allowed-dupes.mn + + # Onboarding +- +-sed 's/.Ubuntu., //' -i browser/extensions/activity-stream/css/activity-stream*.css +-cp $DATA/onboarding/bootstrap.js browser/extensions/onboarding +-cp $DATA/onboarding/onboarding.js browser/extensions/onboarding/content +-cp $DATA/onboarding/onboarding.properties browser/extensions/onboarding/locales/en-US ++mkdir -p browser/extensions/onboarding/locales/en-US browser/extensions/onboarding/content ++cp -p $DATA/onboarding/bootstrap.js browser/extensions/onboarding/ ++cp -p $DATA/onboarding/onboarding.js browser/extensions/onboarding/content/ ++cp -p $DATA/onboarding/onboarding.properties browser/extensions/onboarding/locales/en-US/ + for locale in $(ls -1 $DATA/onboarding/locales/); do + mkdir -p l10n/$locale/browser/extensions/onboarding || true +- cp $DATA/onboarding/locales/$locale/onboarding.properties l10n/$locale/browser/extensions/onboarding ++ cp -p $DATA/onboarding/locales/$locale/onboarding.properties l10n/$locale/browser/extensions/onboarding/ + done + + # Fix CVE-2009-4029 +@@ -589,7 +466,3 @@ -@@ -594,6 +506,3 @@ # Fix CVE-2012-3386 /bin/sed 's/chmod a+w/chmod u+w/' -i ./js/src/ctypes/libffi/Makefile.in ./toolkit/crashreporter/google-breakpad/Makefile.in ./toolkit/crashreporter/google-breakpad/src/third_party/glog/Makefile.in || true - +- -cd .. -echo Packaging tarball -tar cfj icecat-$ICECATVERSION.tar.bz2 $SOURCEDIR diff --git a/settings.js b/settings.js new file mode 100644 index 0000000000000..a7d8e60ca5efb --- /dev/null +++ b/settings.js @@ -0,0 +1,376 @@ +// Default name strings +pref ("distribution.about", "GNU IceCat"); +pref ("distribution.id", "gnu"); +pref ("distribution.version", "1.0"); + +// I'm feeling Ducky. +pref("keyword.URL", "https://duckduckgo.com/?t=trisquel&q=!+"); +pref("browser.search.defaultenginename", "DuckDuckGo"); +pref("browser.search.order.1", "DuckDuckGo"); +pref("browser.search.defaultenginename", "DuckDuckGo"); +pref("browser.search.order.extra.duckduckgo", "DuckDuckGo"); +pref("browser.search.showOneOffButtons", false); +pref("browser.search.suggest.enabled",false); +// Disable preconnecting to search engine when clicking on the search bar +pref("network.http.speculative-parallel-limit", 0); + +// Release notes and vendor URLs +pref("app.releaseNotesURL", "https://savannah.gnu.org/news/?group=gnuzilla"); +pref("app.vendorURL", "https://www.gnu.org/software/gnuzilla/"); +pref("app.privacyURL", "http://www.gnu.org/software/gnuzilla/"); + +// Disable plugin installer +pref("plugins.hide_infobar_for_missing_plugin", true); +pref("plugins.hide_infobar_for_outdated_plugin", true); +pref("plugins.notifyMissingFlash", false); + +//https://developer.mozilla.org/en-US/docs/Web/API/MediaSource +//pref("media.mediasource.enabled",true); + +//Speeding it up +pref("network.http.pipelining", true); +pref("network.http.proxy.pipelining", true); +pref("network.http.pipelining.maxrequests", 10); +pref("nglayout.initialpaint.delay", 0); + +// Disable third party cookies +pref("network.cookie.cookieBehavior", 1); + +//privacy.firstparty.isolate +pref("privacy.firstparty.isolate", true); + +// Extensions cannot be updated without permission +pref("extensions.update.enabled", false); +// Use LANG environment variable to choose locale +pref("intl.locale.matchOS", true); +pref("intl.locale.requested", ""); +// Disable default browser checking. +pref("browser.shell.checkDefaultBrowser", false); +// Prevent EULA dialog to popup on first run +pref("browser.EULA.override", true); +// Don't disable extensions dropped in to a system +// location, or those owned by the application +pref("extensions.autoDisableScopes", 3); +//pref("extensions.enabledScopes", 15); +// Don't display the one-off addon selection dialog when +// upgrading from a version of Firefox older than 8.0 +pref("extensions.shownSelectionUI", true); +// Don't call home for blacklisting +pref("extensions.blocklist.enabled", false); + +// disable app updater url +pref("app.update.url", "http://127.0.0.1/"); + +// Startup page +// Set useragent to Firefox compatible +pref("general.useragent.compatMode.icecat",true); +// Spoof the useragent to a generic one +//pref("general.useragent.override", "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/60.0"); + +//pref ("browser.startup.page" , 3); +//pref ("browser.startup.homepage" , "https://www.gnu.org/software/gnuzilla/"); +//pref ("startup.homepage_welcome_url", "https://www.gnu.org/software/gnuzilla/"); +pref("startup.homepage_welcome_url", ""); +//pref ("startup.homepage_override_url" , "https://www.gnu.org/software/gnuzilla/"); +pref("browser.startup.homepage_override.mstone", "ignore"); + +// Help URL +pref ("app.support.baseURL", "http://libreplanet.org/wiki/Group:IceCat/"); +pref ("app.support.inputURL", "https://lists.gnu.org/mailman/listinfo/bug-gnuzilla"); +pref ("app.feedback.baseURL", "https://lists.gnu.org/mailman/listinfo/bug-gnuzilla"); +pref ("browser.uitour.url", "http://libreplanet.org/wiki/Group:IceCat/Tour"); +pref ("plugins.update.url", "https://www.gnu.org/software/gnuzilla/"); +pref ("browser.customizemode.tip0.learnMoreUrl", "http://libreplanet.org/wiki/Group:IceCat/Tour"); + +// Dictionary download preference +pref("browser.dictionaries.download.url", "http://dictionaries.mozdev.org/"); +pref("browser.search.searchEnginesURL", "http://mycroft.mozdev.org/"); +// Enable Spell Checking In All Text Fields +pref("layout.spellcheckDefault", 2); + +// Apturl preferences +pref("network.protocol-handler.app.apt","/usr/bin/apturl"); +pref("network.protocol-handler.warn-external.apt",false); +pref("network.protocol-handler.app.apt+http","/usr/bin/apturl"); +pref("network.protocol-handler.warn-external.apt+http",false); +pref("network.protocol-handler.external.apt",true); +pref("network.protocol-handler.external.apt+http",true); + +// Privacy & Freedom Issues +// https://webdevelopmentaid.wordpress.com/2013/10/21/customize-privacy-settings-in-mozilla-firefox-part-1-aboutconfig/ +// https://panopticlick.eff.org +// http://ip-check.info +// http://browserspy.dk +// https://wiki.mozilla.org/Fingerprinting +// http://www.browserleaks.com +// http://fingerprint.pet-portal.eu +pref("privacy.donottrackheader.enabled", true); +pref("privacy.donottrackheader.value", 1); +pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", false); +pref("browser.safebrowsing.enabled", false); +pref("browser.safebrowsing.downloads.remote.enabled", false); +pref("browser.safebrowsing.malware.enabled", false); +pref("services.sync.privacyURL", "https://www.gnu.org/software/gnuzilla/"); +pref("social.enabled", false); +pref("social.remote-install.enabled", false); +pref("datareporting.policy.dataSubmissionEnabled", false); +pref("datareporting.healthreport.uploadEnabled", false); +pref("datareporting.healthreport.about.reportUrl", "127.0.0.1"); +pref("datareporting.healthreport.documentServerURI", "127.0.0.1"); +pref("healthreport.uploadEnabled", false); +pref("social.toast-notifications.enabled", false); +pref("datareporting.policy.dataSubmissionEnabled", false); +pref("datareporting.healthreport.service.enabled", false); +pref("browser.slowStartup.notificationDisabled", true); +pref("network.http.sendRefererHeader", 2); +pref("network.http.referer.spoofSource", true); +// We don't want to send the Origin header +pref("network.http.originextension", false); +//http://grack.com/blog/2010/01/06/3rd-party-cookies-dom-storage-and-privacy/ +//pref("dom.storage.enabled", false); +pref("dom.event.clipboardevents.enabled",false); +pref("network.prefetch-next", false); +pref("network.dns.disablePrefetch", true); +pref("network.http.sendSecureXSiteReferrer", false); +pref("toolkit.telemetry.enabled", false); +pref("toolkit.telemetry.server", ""); +pref("experiments.manifest.uri", ""); +pref("toolkit.telemetry.unified", false); +// Do not tell what plugins do we have enabled: https://mail.mozilla.org/pipermail/firefox-dev/2013-November/001186.html +pref("plugins.enumerable_names", ""); +pref("plugin.state.flash", 0); +// Do not autoupdate search engines +pref("browser.search.update", false); +// Warn when the page tries to redirect or refresh +//pref("accessibility.blockautorefresh", true); +pref("dom.battery.enabled", false); +pref("device.sensors.enabled", false); +pref("camera.control.face_detection.enabled", false); +pref("camera.control.autofocus_moving_callback.enabled", false); +pref("network.http.speculative-parallel-limit", 0); +// No search suggestions +pref("browser.urlbar.userMadeSearchSuggestionsChoice", true); +pref("browser.search.suggest.enabled", false); +// Always ask before restoring the browsing session +pref("browser.sessionstore.max_resumed_crashes", 0); +// Disable shield/heartbeat +pref("extensions.shield-recipe-client.enabled", false); +// Don't download ads for the newtab page +pref("browser.newtabpage.directory.source", ""); +pref("browser.newtabpage.directory.ping", ""); +pref("browser.newtabpage.introShown", true); +// Disable home snippets +pref("browser.aboutHomeSnippets.updateUrl", ""); +// Always ask before restoring the browsing session +pref("browser.sessionstore.max_resumed_crashes", 0); +// Disable tracking protection by default, as it makes automated connections to fetch lists +pref("browser.safebrowsing.provider.mozilla.updateURL", ""); +pref("privacy.trackingprotection.enabled", false); +pref("privacy.trackingprotection.pbmode.enabled", false); +pref("privacy.trackingprotection.introURL", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/tracking-protection/start/"); +// Disable geolocation +pref("geo.enabled", false); +pref("browser.search.geoip.url", ""); +// Disable captive portal detection +pref("captivedetect.canonicalURL", ""); +pref("network.captive-portal-service.enabled", false); +// Disable shield/heartbeat +pref("extensions.shield-recipe-client.enabled", false); +// Canvas fingerprint protection +pref("privacy.resistFingerprinting", true); +// Webgl can be used for fingerprinting +pref("webgl.disabled", true); +// Don't reveal your internal IP when WebRTC is enabled +pref("media.peerconnection.ice.no_host", true); + +// Services +pref("gecko.handlerService.schemes.mailto.0.name", ""); +pref("gecko.handlerService.schemes.mailto.1.name", ""); +pref("handlerService.schemes.mailto.1.uriTemplate", ""); +pref("gecko.handlerService.schemes.mailto.0.uriTemplate", ""); +pref("browser.contentHandlers.types.0.title", ""); +pref("browser.contentHandlers.types.0.uri", ""); +pref("browser.contentHandlers.types.1.title", ""); +pref("browser.contentHandlers.types.1.uri", ""); +pref("gecko.handlerService.schemes.webcal.0.name", ""); +pref("gecko.handlerService.schemes.webcal.0.uriTemplate", ""); +pref("gecko.handlerService.schemes.irc.0.name", ""); +pref("gecko.handlerService.schemes.irc.0.uriTemplate", ""); + +// Disable channel updates +pref("app.update.enabled", false); +pref("app.update.auto", false); +pref("toolkit.telemetry.enabled", false); + +// EME +pref("media.eme.enabled", false); +pref("media.eme.apiVisible", false); + +// WebRTC +pref("media.peerconnection.enabled", true); +// Don't reveal your internal IP when WebRTC is enabled +pref("media.peerconnection.ice.no_host", true); +pref("media.peerconnection.ice.default_address_only", true); + +// Services +pref("gecko.handlerService.schemes.mailto.0.name", ""); +pref("gecko.handlerService.schemes.mailto.1.name", ""); +pref("handlerService.schemes.mailto.1.uriTemplate", ""); +pref("gecko.handlerService.schemes.mailto.0.uriTemplate", ""); +pref("browser.contentHandlers.types.0.title", ""); +pref("browser.contentHandlers.types.0.uri", ""); +pref("browser.contentHandlers.types.1.title", ""); +pref("browser.contentHandlers.types.1.uri", ""); +pref("gecko.handlerService.schemes.webcal.0.name", ""); +pref("gecko.handlerService.schemes.webcal.0.uriTemplate", ""); +pref("gecko.handlerService.schemes.irc.0.name", ""); +pref("gecko.handlerService.schemes.irc.0.uriTemplate", ""); +// https://kiwiirc.com/client/irc.247cdn.net/?nick=Your%20Nickname#underwater-hockey +// Don't call home for blacklisting +pref("extensions.blocklist.enabled", false); + + + +pref("font.default.x-western", "sans-serif"); + +// Preferences for the Get Add-ons panel +pref ("extensions.webservice.discoverURL", "https://gnuzilla.gnu.org/extensions"); +pref ("extensions.getAddons.search.url", "https://gnuzilla.gnu.org/extensions"); + +// Mobile +pref("privacy.announcements.enabled", false); +pref("browser.snippets.enabled", false); +pref("browser.snippets.syncPromo.enabled", false); +pref("identity.mobilepromo.android", "https://f-droid.org/repository/browse/?fdid=org.gnu.icecat&"); +pref("browser.snippets.geoUrl", "http://127.0.0.1/"); +pref("browser.snippets.updateUrl", "http://127.0.0.1/"); +pref("browser.snippets.statsUrl", "http://127.0.0.1/"); +pref("datareporting.policy.firstRunTime", 0); +pref("datareporting.policy.dataSubmissionPolicyVersion", 2); +pref("browser.webapps.checkForUpdates", 0); +pref("browser.webapps.updateCheckUrl", "http://127.0.0.1/"); +pref("app.faqURL", "http://libreplanet.org/wiki/Group:IceCat/FAQ"); + +// PFS url +pref("pfs.datasource.url", "http://gnuzilla.gnu.org/plugins/PluginFinderService.php?mimetype=%PLUGIN_MIMETYPE%"); +pref("pfs.filehint.url", "http://gnuzilla.gnu.org/plugins/PluginFinderService.php?mimetype=%PLUGIN_MIMETYPE%"); + +// Geolocation depends on third party services +pref("geo.enabled", false); +pref("geo.wifi.uri", ""); + +// I'm feeling Ducky. +pref("keyword.URL", "https://duckduckgo.com/html?t=gnu&q=!+"); +pref("browser.search.defaultenginename", "DuckDuckGo"); +pref("browser.search.order.extra.duckduckgo", "DuckDuckGo"); +pref("browser.search.showOneOffButtons", false); +// US specific default (used as a fallback if the geoSpecificDefaults request fails). +pref("browser.search.defaultenginename.US", "data:text/plain,browser.search.defaultenginename.US=DuckDuckGo"); +pref("browser.search.order.US.1", "data:text/plain,browser.search.order.US.1=DuckDuckGo"); +pref("browser.search.order.US.2", "data:text/plain,browser.search.order.US.2=Google"); +pref("browser.search.order.US.3", "data:text/plain,browser.search.order.US.3=Yahoo"); + +// Disable Gecko media plugins: https://wiki.mozilla.org/GeckoMediaPlugins +pref("media.gmp-manager.url", "http://127.0.0.1/"); +pref("media.gmp-manager.url.override", "data:text/plain,"); +pref("media.gmp-manager.url", ""); +pref("media.gmp-provider.enabled", false); +// Don't install openh264 codec +pref("media.gmp-gmpopenh264.enabled", false); +pref("media.gmp-eme-adobe.enabled", false); + +//Disable middle click content load +//Avoid loading urls by mistake +pref("middlemouse.contentLoadURL", false); + +//Disable heartbeat +pref("browser.selfsupport.url", ""); + +//Disable Link to FireFox Marketplace, currently loaded with non-free "apps" +pref("browser.apps.URL", ""); + +//Disable Firefox Hello +pref("loop.enabled",false); + +// Use old style preferences, that allow javascript to be disabled +pref("browser.preferences.inContent",false); + +// Don't download ads for the newtab page +pref("browser.newtabpage.directory.source", ""); +pref("browser.newtabpage.directory.ping", ""); +pref("browser.newtabpage.introShown", true); + +// Disable home snippets +pref("browser.aboutHomeSnippets.updateUrl", "data:text/html"); + +// Disable hardware acceleration +//pref("layers.acceleration.disabled", false); +pref("gfx.direct2d.disabled", true); + +// Disable SSDP +pref("browser.casting.enabled", false); + +//Disable directory service +pref("social.directories", ""); + +// Crypto hardening +// https://gist.github.com/haasn/69e19fc2fe0e25f3cff5 +//General settings +pref("security.tls.unrestricted_rc4_fallback", false); +pref("security.tls.insecure_fallback_hosts.use_static_list", false); +pref("security.tls.version.min", 1); +pref("security.ssl.require_safe_negotiation", false); +pref("security.ssl.treat_unsafe_negotiation_as_broken", true); +pref("security.ssl3.rsa_seed_sha", true); +pref("security.OCSP.enabled", 1); +pref("security.OCSP.require", false); // set to false otherwise it breaks captive portal usage + +// Avoid logjam attack +pref("security.ssl3.dhe_rsa_aes_128_sha", false); +pref("security.ssl3.dhe_rsa_aes_256_sha", false); +pref("security.ssl3.dhe_dss_aes_128_sha", false); +pref("security.ssl3.dhe_rsa_des_ede3_sha", false); + +// Disable Pocket integration +pref("browser.pocket.enabled", false); +pref("extensions.pocket.enabled", false); + +// Do not require xpi extensions to be signed by Mozilla +pref("xpinstall.signatures.required", false); + +// Do not show unicode urls https://www.xudongz.com/blog/2017/idn-phishing/ +pref("network.IDN_show_punycode", true); + +// disable screenshots extension +pref("extensions.screenshots.disabled", true); +// disable onboarding +pref("browser.onboarding.newtour", "performance,private,addons,customize,default"); +pref("browser.onboarding.updatetour", "performance,library,singlesearch,customize"); +pref("browser.onboarding.enabled", false); + +// New tab settings +pref("browser.newtabpage.activity-stream.default.sites", "https://www.trisquel.info/,https://www.gnu.org/,https://www.fsf.org/,https://libreplanet.org/,https://www.wikipedia.org/,https://www.wikinews.org/"); +pref("browser.newtabpage.activity-stream.showTopSites",true); +pref("browser.newtabpage.activity-stream.feeds.section.topstories",false); +pref("browser.newtabpage.activity-stream.feeds.snippets",false); +pref("browser.newtabpage.activity-stream.disableSnippets", true); +user_pref("browser.newtabpage.activity-stream.tippyTop.service.endpoint", ""); + +// Enable xrender +pref("gfx.xrender.enabled",true); + +// Disable push notifications +pref("dom.webnotifications.enabled",false); +pref("dom.webnotifications.serviceworker.enabled",false); +pref("dom.push.enabled",false); + +// Disable recommended addons +pref("extensions.htmlaboutaddons.recommendations.enabled", false); +pref("extensions.htmlaboutaddons.discover.enabled", false); + +// Disable Firefox Sync toolbar button +pref("identity.fxaccounts.toolbar.enabled", false); +pref("identity.fxaccounts.enabled", false); + +// Disable DoH by default +pref("network.trr.mode", 5);