Push to 68.x branch. Not official, some patches comes from Antonio Trande gitlab for Fedora https://gitlab.com/anto.trande/icecat

This commit is contained in:
Figue 2019-10-24 23:43:40 +02:00
parent 598635d714
commit ee40a9e71b
4 changed files with 767 additions and 92 deletions

View file

@ -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

View file

@ -6,66 +6,75 @@
# Contributor: Muhammad 'MJ' Jassim <UnbreakableMJ@gmail.com>
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) <ruben@gnu.org>
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
}

View file

@ -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 <release@mozilla.com>"
+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/<a\ href\=\"http\:\/\/www.mozilla.org\/\">Mozilla\ Project<\/a>/<a\ href\=\"http\:\/\/www.gnu.org\/\"\>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

376
settings.js Normal file
View file

@ -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);