summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO63
-rw-r--r--.gitignore4
-rw-r--r--PKGBUILD111
-rw-r--r--disable-synth-dammit.patch192
-rw-r--r--ignore_bad_validator.patch15
-rw-r--r--mozconfig100
-rw-r--r--vendor.js9
-rw-r--r--waterfox-alpha.desktop353
-rw-r--r--waterfox-alpha.install13
9 files changed, 860 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..91e6ae6a59e0
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,63 @@
+pkgbase = waterfox-alpha-git
+ pkgdesc = More private and optimized Firefox fork. Alpha (gecko68) branch. CREATES SEPARATE PROFILE
+ pkgver = 68.0a2+7f73f7513db3
+ pkgrel = 1
+ url = https://www.waterfoxproject.org/
+ install = waterfox-alpha.install
+ arch = i686
+ arch = x86_64
+ license = MPL
+ makedepends = unzip
+ makedepends = zip
+ makedepends = diffutils
+ makedepends = python2
+ makedepends = yasm
+ makedepends = mesa
+ makedepends = imake
+ makedepends = gconf
+ makedepends = xorg-server-xvfb
+ makedepends = libpulse
+ makedepends = inetutils
+ makedepends = autoconf2.13
+ makedepends = clang
+ makedepends = llvm
+ makedepends = cargo
+ depends = gtk2
+ depends = libffi
+ depends = libvpx
+ depends = gtk3
+ depends = mozilla-common
+ depends = libxt
+ depends = startup-notification
+ depends = dbus-glib
+ depends = alsa-lib
+ depends = ffmpeg
+ depends = desktop-file-utils
+ depends = hicolor-icon-theme
+ depends = libvpx
+ depends = icu
+ depends = libevent
+ depends = nss
+ depends = hunspell
+ depends = sqlite
+ depends = ttf-font
+ depends = cbindgen
+ conflicts = waterfox-alpha-bin
+ options = !emptydirs
+ options = !makeflags
+ options = !strip
+ source = git://github.com/MrAlex94/Waterfox#branch=gecko68
+ source = mozconfig
+ source = waterfox-alpha.desktop
+ source = ignore_bad_validator.patch
+ source = disable-synth-dammit.patch
+ source = vendor.js
+ sha512sums = SKIP
+ sha512sums = 2462c2ca8451d542b1ca7d344c34500372e95fea7d882b47cd64d2315aefce773af4803a475b9678a71bc0a647d12785e1892505798a1c5709d215690af85518
+ sha512sums = a133c3667bc11b3d19b6a1c9379f0112eca6a59df4096f476e480782de7fd395784de935c6c19b16051a4d5507b0c7f020cb35728f5a4dceb60474a931525673
+ sha512sums = ab2aced2e371afad317ab3ffb3e8161c457f022327e182d426aa2ba4142112060225ced4610eb2525e1c739a4e56ad4e7cf78cc102232cf01cf06d0224a9c09d
+ sha512sums = d58c856c1614dfd674a3c4c79f6dd237c0417dbf37c89a269a8744bad46bff4c707a5e319872762f8bd05c2dd532ffa225490dfafaab784c70131c72614b0d4e
+ sha512sums = d927e5e882115c780aa0d45034cb1652eaa191d95c15013639f9172ae734245caae070018465d73fdf86a01601d08c9e65f28468621422d799fe8451e6175cb7
+
+pkgname = waterfox-alpha-git
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..e4c2c94bc32f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+*.pkg.*
+Waterfox
+src
+pkg
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..62e4059fcd21
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,111 @@
+# Maintainer: Matt/ilikenwf <parwok@gmail.com>
+pkgname=waterfox-alpha-git
+pkgver=68.0a2+7f73f7513db3
+pkgrel=1
+pkgdesc="More private and optimized Firefox fork. Alpha (gecko68) branch. CREATES SEPARATE PROFILE"
+arch=('i686' 'x86_64')
+license=('MPL')
+url="https://www.waterfoxproject.org/"
+depends=('gtk2' 'libffi' 'libvpx' 'gtk3' 'mozilla-common' 'libxt' 'startup-notification'
+ 'dbus-glib' 'alsa-lib' 'ffmpeg' 'desktop-file-utils' 'hicolor-icon-theme'
+ 'libvpx' 'icu' 'libevent' 'nss' 'hunspell' 'sqlite' 'ttf-font' 'cbindgen')
+makedepends=('unzip' 'zip' 'diffutils' 'python2' 'yasm' 'mesa' 'imake' 'gconf'
+ 'xorg-server-xvfb' 'libpulse' 'inetutils' 'autoconf2.13' 'clang' 'llvm' 'cargo')
+provides=()
+conflicts=('waterfox-alpha-bin')
+install=waterfox-alpha.install
+options=('!emptydirs' '!makeflags' '!strip')
+source=(git://github.com/MrAlex94/Waterfox#branch=gecko68
+ mozconfig
+ waterfox-alpha.desktop
+ ignore_bad_validator.patch
+ disable-synth-dammit.patch
+ vendor.js)
+sha512sums=('SKIP'
+ '2462c2ca8451d542b1ca7d344c34500372e95fea7d882b47cd64d2315aefce773af4803a475b9678a71bc0a647d12785e1892505798a1c5709d215690af85518'
+ 'a133c3667bc11b3d19b6a1c9379f0112eca6a59df4096f476e480782de7fd395784de935c6c19b16051a4d5507b0c7f020cb35728f5a4dceb60474a931525673'
+ 'ab2aced2e371afad317ab3ffb3e8161c457f022327e182d426aa2ba4142112060225ced4610eb2525e1c739a4e56ad4e7cf78cc102232cf01cf06d0224a9c09d'
+ 'd58c856c1614dfd674a3c4c79f6dd237c0417dbf37c89a269a8744bad46bff4c707a5e319872762f8bd05c2dd532ffa225490dfafaab784c70131c72614b0d4e'
+ 'd927e5e882115c780aa0d45034cb1652eaa191d95c15013639f9172ae734245caae070018465d73fdf86a01601d08c9e65f28468621422d799fe8451e6175cb7')
+
+# don't compress the package - we're just going to uncompress during install in a moment
+PKGEXT='.pkg.tar'
+
+pkgver() {
+ cd Waterfox
+ echo $(cat browser/config/version.txt)"+"$(git rev-parse --short HEAD)
+}
+
+prepare() {
+ cd Waterfox
+
+ cp ../mozconfig .mozconfig
+
+ # lcrmf breaks stuff
+ sed -i 's/ \-lcrmf//g' "${srcdir}/Waterfox/old-configure.in"
+
+ # the below is a really horrible thing to do but it allows commas in our optimizations to work
+ patch -Np1 -i "${srcdir}/ignore_bad_validator.patch"
+
+ # and this is a hacky workaround so we can build without html5 and
+ # speex support - also in .mozconfig if you want to build with it, comment both out
+ warning "Applying patch to facilitate build without speex and html5 voice synth."
+ warning "To build with it, please edit the .mozconfig and adjust the options to enable what you need: "
+ warning " ac_add_options --disable-accessibility"
+ warning " ac_add_options --disable-synth-speechd"
+ warning " ac_add_options --disable-webspeech=1"
+ warning "Then, comment out the disable-synth-dammit.patch line in the PKGBUILD."
+ warning "Press ENTER if you want to build now or CTRL+C to abort..."
+ read
+
+ patch -Np1 -i "${srcdir}/disable-synth-dammit.patch"
+
+ mkdir -p "$srcdir/path"
+}
+
+build() {
+ cd Waterfox
+
+ export PATH="$srcdir/path:$PATH"
+ export PYTHON="/usr/bin/python2"
+
+ ./mach build
+}
+
+package() {
+ cd Waterfox
+ mkdir -p "$pkgdir"
+ DESTDIR="$pkgdir" ./mach install
+
+ # laziness
+ rm "$pkgdir/usr/bin/waterfox"
+ mv "$pkgdir/opt/waterfox" "$pkgdir/opt/waterfox-alpha"
+ ln -s "/opt/waterfox-alpha/waterfox" "$pkgdir/usr/bin/waterfox-alpha"
+
+ install -Dm644 ../vendor.js "$pkgdir/opt/waterfox-alpha/browser/defaults/preferences/vendor.js"
+
+ for i in 16 32 64 48 128; do
+ install -Dm644 "$srcdir/Waterfox/obj-x86_64-pc-linux-gnu/dist/waterfox/browser/chrome/icons/default/default$i.png" \
+ "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/waterfox-alpha.png"
+ done
+
+ install -Dm644 "$srcdir/Waterfox/obj-x86_64-pc-linux-gnu/dist/waterfox/browser/chrome/icons/default/default128.png" \
+ "$pkgdir/usr/share/icons/hicolor/64x64/apps/waterfox-alpha.png"
+ install -Dm644 "$srcdir/Waterfox/obj-x86_64-pc-linux-gnu/dist/waterfox/browser/chrome/icons/default/default128.png" \
+ "$pkgdir/usr/share/icons/hicolor/128x128/apps/waterfox-alpha.png"
+ install -Dm644 browser/branding/official/content/about-logo.png \
+ "$pkgdir/usr/share/icons/hicolor/192x192/apps/waterfox-alpha.png"
+ install -Dm644 browser/branding/official/content/about-logo@2x.png \
+ "$pkgdir/usr/share/icons/hicolor/384x384/apps/waterfox-alpha.png"
+
+ install -Dm644 ../waterfox-alpha.desktop \
+ "$pkgdir/usr/share/applications/waterfox-alpha.desktop"
+
+ # Use system-provided dictionaries
+ rm -rf "$pkgdir/opt/waterfox-alpha/"{dictionaries,hyphenation}
+ rm -rf "$pkgdir/opt/waterfox-alpha/hunspell"
+ rm "$pkgdir/opt/waterfox-alpha/hunspell"||return 0
+ ln -s /usr/bin/hunspell "$pkgdir/opt/waterfox-alpha"
+ ln -s /usr/share/hyphen "$pkgdir/opt/waterfox-alpha"
+}
+
diff --git a/disable-synth-dammit.patch b/disable-synth-dammit.patch
new file mode 100644
index 000000000000..e35a214241a8
--- /dev/null
+++ b/disable-synth-dammit.patch
@@ -0,0 +1,192 @@
+diff --git a/dom/ipc/ContentChild.cpp b/dom/ipc/ContentChild.cpp
+index 9b5ce2d42697..d6c9f3a3a333 100644
+--- a/dom/ipc/ContentChild.cpp
++++ b/dom/ipc/ContentChild.cpp
+@@ -2131,22 +2131,16 @@ bool ContentChild::DeallocPMediaChild(media::PMediaChild* aActor) {
+ return media::DeallocPMediaChild(aActor);
+ }
+
+-PSpeechSynthesisChild* ContentChild::AllocPSpeechSynthesisChild() {
+ #ifdef MOZ_WEBSPEECH
++PSpeechSynthesisChild* ContentChild::AllocPSpeechSynthesisChild() {
+ MOZ_CRASH("No one should be allocating PSpeechSynthesisChild actors");
+-#else
+- return nullptr;
+-#endif
+ }
+
+ bool ContentChild::DeallocPSpeechSynthesisChild(PSpeechSynthesisChild* aActor) {
+-#ifdef MOZ_WEBSPEECH
+ delete aActor;
+ return true;
+-#else
+- return false;
+-#endif
+ }
++#endif
+
+ PWebrtcGlobalChild* ContentChild::AllocPWebrtcGlobalChild() {
+ #ifdef MOZ_WEBRTC
+diff --git a/dom/ipc/ContentChild.h b/dom/ipc/ContentChild.h
+index f1f90e4aed06..eea1a906155b 100644
+--- a/dom/ipc/ContentChild.h
++++ b/dom/ipc/ContentChild.h
+@@ -301,9 +301,11 @@ class ContentChild final : public PContentChild,
+
+ mozilla::ipc::IPCResult RecvNotifyEmptyHTTPCache();
+
++#ifdef MOZ_WEBSPEECH
+ PSpeechSynthesisChild* AllocPSpeechSynthesisChild();
+
+ bool DeallocPSpeechSynthesisChild(PSpeechSynthesisChild* aActor);
++#endif
+
+ mozilla::ipc::IPCResult RecvRegisterChrome(
+ InfallibleTArray<ChromePackage>&& packages,
+diff --git a/dom/ipc/ContentParent.cpp b/dom/ipc/ContentParent.cpp
+index eb67685972b2..866245ebe432 100644
+--- a/dom/ipc/ContentParent.cpp
++++ b/dom/ipc/ContentParent.cpp
+@@ -3699,35 +3699,25 @@ mozilla::ipc::IPCResult ContentParent::RecvPPresentationConstructor(
+ return IPC_OK();
+ }
+
+-PSpeechSynthesisParent* ContentParent::AllocPSpeechSynthesisParent() {
+ #ifdef MOZ_WEBSPEECH
++PSpeechSynthesisParent* ContentParent::AllocPSpeechSynthesisParent() {
+ return new mozilla::dom::SpeechSynthesisParent();
+-#else
+- return nullptr;
+-#endif
+ }
+
+ bool ContentParent::DeallocPSpeechSynthesisParent(
+ PSpeechSynthesisParent* aActor) {
+-#ifdef MOZ_WEBSPEECH
+ delete aActor;
+ return true;
+-#else
+- return false;
+-#endif
+ }
+
+ mozilla::ipc::IPCResult ContentParent::RecvPSpeechSynthesisConstructor(
+ PSpeechSynthesisParent* aActor) {
+-#ifdef MOZ_WEBSPEECH
+ if (!static_cast<SpeechSynthesisParent*>(aActor)->SendInit()) {
+ return IPC_FAIL_NO_REASON(this);
+ }
+ return IPC_OK();
+-#else
+- return IPC_FAIL_NO_REASON(this);
+-#endif
+ }
++#endif
+
+ mozilla::ipc::IPCResult ContentParent::RecvStartVisitedQuery(
+ const URIParams& aURI) {
+diff --git a/dom/ipc/ContentParent.h b/dom/ipc/ContentParent.h
+index 416ae2f7bf4d..34ce13d1a4f5 100644
+--- a/dom/ipc/ContentParent.h
++++ b/dom/ipc/ContentParent.h
+@@ -918,12 +918,14 @@ class ContentParent final : public PContentParent,
+ virtual mozilla::ipc::IPCResult RecvPPresentationConstructor(
+ PPresentationParent* aActor) override;
+
++#ifdef MOZ_WEBSPEECH
+ PSpeechSynthesisParent* AllocPSpeechSynthesisParent();
+
+ bool DeallocPSpeechSynthesisParent(PSpeechSynthesisParent* aActor);
+
+ virtual mozilla::ipc::IPCResult RecvPSpeechSynthesisConstructor(
+ PSpeechSynthesisParent* aActor) override;
++#endif
+
+ PWebBrowserPersistDocumentParent* AllocPWebBrowserPersistDocumentParent(
+ PBrowserParent* aBrowser, const uint64_t& aOuterWindowID);
+diff --git a/dom/ipc/PContent.ipdl b/dom/ipc/PContent.ipdl
+index 141c75af96e7..708360237696 100644
+--- a/dom/ipc/PContent.ipdl
++++ b/dom/ipc/PContent.ipdl
+@@ -31,7 +31,7 @@ include protocol PPrinting;
+ include protocol PChildToParentStream;
+ include protocol PParentToChildStream;
+ include protocol POfflineCacheUpdate;
+-include protocol PSpeechSynthesis;
++/*include protocol PSpeechSynthesis;*/
+ include protocol PTestShell;
+ include protocol PJavaScript;
+ include protocol PRemoteSpellcheckEngine;
+@@ -343,7 +343,7 @@ nested(upto inside_cpow) sync protocol PContent
+ manages PPrinting;
+ manages PChildToParentStream;
+ manages PParentToChildStream;
+- manages PSpeechSynthesis;
++/* manages PSpeechSynthesis;*/
+ manages PTestShell;
+ manages PJavaScript;
+ manages PRemoteSpellcheckEngine;
+@@ -860,7 +860,7 @@ parent:
+
+ async PChildToParentStream();
+
+- async PSpeechSynthesis();
++ /*async PSpeechSynthesis();*/
+
+ async PMedia();
+
+diff --git a/dom/ipc/moz.build b/dom/ipc/moz.build
+index fe4cfe7a7426..62daca2a85ae 100644
+--- a/dom/ipc/moz.build
++++ b/dom/ipc/moz.build
+@@ -151,6 +151,11 @@ if CONFIG['MOZ_SANDBOX'] and (CONFIG['OS_TARGET'] in ['Darwin', 'Linux']):
+ 'mozsandbox',
+ ]
+
++if CONFIG['MOZ_WEBSPEECH']:
++ LOCAL_INCLUDES += [
++ '/dom/media/webspeech/synth/ipc'
++ ]
++
+ LOCAL_INCLUDES += [
+ '/caps',
+ '/chrome',
+@@ -160,7 +165,6 @@ LOCAL_INCLUDES += [
+ '/dom/events',
+ '/dom/filesystem',
+ '/dom/geolocation',
+- '/dom/media/webspeech/synth/ipc',
+ '/dom/security',
+ '/dom/storage',
+ '/extensions/permissions',
+diff --git a/dom/media/webspeech/moz.build b/dom/media/webspeech/moz.build
+index 85e2277b388b..1eb7dd199287 100644
+--- a/dom/media/webspeech/moz.build
++++ b/dom/media/webspeech/moz.build
+@@ -3,7 +3,8 @@
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-DIRS = ['synth']
++if CONFIG['MOZ_SYNTH_SPEECHD']:
++ DIRS = ['synth']
+
+-if CONFIG['MOZ_WEBSPEECH']:
+- DIRS += ['recognition']
++ if CONFIG['MOZ_WEBSPEECH']:
++ DIRS += ['recognition']
+diff --git a/ipc/ipdl/ipdl/direct_call.py b/ipc/ipdl/ipdl/direct_call.py
+index 77f75f8b2813..97fcea5320e3 100644
+--- a/ipc/ipdl/ipdl/direct_call.py
++++ b/ipc/ipdl/ipdl/direct_call.py
+@@ -553,8 +553,8 @@ VIRTUAL_CALL_CLASSES = set([
+ ("PPluginWidget", "parent"),
+ ("PProfiler", "child"),
+ ("PProfiler", "parent"),
+- ("PSpeechSynthesisRequest", "child"),
+- ("PSpeechSynthesisRequest", "parent"),
++ #("PSpeechSynthesisRequest", "child"),
++ #("PSpeechSynthesisRequest", "parent"),
+ ("PStunAddrsRequest", "child"),
+ ("PStunAddrsRequest", "parent"),
+ ("PWebrtcProxyChannel", "child"),
diff --git a/ignore_bad_validator.patch b/ignore_bad_validator.patch
new file mode 100644
index 000000000000..c2ed987acef9
--- /dev/null
+++ b/ignore_bad_validator.patch
@@ -0,0 +1,15 @@
+diff --git a/python/mozbuild/mozbuild/configure/options.py b/python/mozbuild/mozbuild/configure/options.py
+index 8022c304a2b6..c8639fe04bc6 100644
+--- a/python/mozbuild/mozbuild/configure/options.py
++++ b/python/mozbuild/mozbuild/configure/options.py
+@@ -329,8 +329,8 @@ class Option(object):
+ return 1 if self.nargs == '?' else sys.maxint
+
+ def _validate_nargs(self, num):
+- minargs, maxargs = self.minargs, self.maxargs
+- return num >= minargs and num <= maxargs
++ return 1
++
+
+ def get_value(self, option=None, origin='unknown'):
+ '''Given a full command line option (e.g. --enable-foo=bar) or a
diff --git a/mozconfig b/mozconfig
new file mode 100644
index 000000000000..4cad520f27d2
--- /dev/null
+++ b/mozconfig
@@ -0,0 +1,100 @@
+. $topsrcdir/browser/config/mozconfig
+export CC=clang
+export CXX=clang++
+export AR=llvm-ar
+export NM=llvm-nm
+export RANLIB=llvm-ranlib
+mk_add_options AUTOCLOBBER=1
+
+export CPPFLAGS=""
+export CXXFLAGS=""
+export CFLAGS=""
+
+export MOZ_GECKO_PROFILER=
+export MOZ_ENABLE_PROFILER_SPS=
+export MOZ_PROFILING=
+export MOZ_MAINTENANCE_SERVICE=
+
+# a bit of extra hardening and optimization, edit to your tastes
+export LDFLAGS="-Wl,-O3,--no-omagic,--sort-common,--as-needed,--relax,-z,norelro,-z,combreloc,-z,global,-z,noexecstack,-z,now"
+ac_add_options --enable-optimize='-O3 -march=native -mtune=native -fcolor-diagnostics -w -fstack-protector-strong -fcf-protection=full -Wp,-D_GLIBCXX_ASSERTIONS -fno-plt'
+
+ac_add_options --target=x86_64-pc-linux-gnu
+mk_add_options AUTOCLOBBER=1
+
+if test `uname -s` = MINGW32_NT-6.2; then
+mk_add_options MOZ_MAKE_FLAGS=-j8
+else
+X=$(($(getconf _NPROCESSORS_ONLN 2>/dev/null || getconf NPROCESSORS_ONLN)*3/2))
+mk_add_options MOZ_MAKE_FLAGS=-j${X%.*}
+fi
+
+ac_add_options --enable-strip
+ac_add_options --enable-hardening
+
+ac_add_options --prefix=/usr
+ac_add_options --libdir=/opt
+
+ac_add_options --enable-rust-simd # on x86 requires SSE2
+
+ac_add_options --enable-gold
+ac_add_options --disable-jemalloc
+ac_add_options --enable-lto=thin # full lto is slower, while thin still probably nets all the usual benefits
+ac_add_options --enable-release
+ac_add_options --enable-application=browser
+ac_add_options --enable-eme=widevine
+ac_add_options --enable-update-channel=aurora
+
+ac_add_options --with-app-name=waterfox
+ac_add_options --with-app-basename=Waterfox
+ac_add_options --with-branding=browser/branding/alpha
+ac_add_options --with-distribution-id=net.waterfox
+
+ac_add_options --enable-startup-notification
+ac_add_options --enable-pulseaudio
+ac_add_options --enable-alsa
+
+# library and chrome format
+ac_add_options --enable-chrome-format=omni
+ac_add_options --x-libraries=/usr/lib
+
+# System libraries
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-system-bz2
+ac_add_options --with-system-png
+ac_add_options --with-system-libevent
+ac_add_options --with-system-libvpx
+ac_add_options --with-system-icu
+ac_add_options --enable-system-sqlite
+ac_add_options --enable-system-ffi
+ac_add_options --enable-system-pixman
+ac_add_options --enable-default-toolkit=cairo-gtk3
+
+# Features
+ac_add_options --disable-accessibility
+ac_add_options --disable-synth-speechd
+ac_add_options --disable-webspeech=1
+ac_add_options --disable-gpsd
+ac_add_options --disable-debug
+ac_add_options --disable-dmd
+ac_add_options --disable-libproxy
+ac_add_options --disable-crashreporter
+ac_add_options --disable-eme
+ac_add_options --disable-js-shell
+ac_add_options --disable-updater
+ac_add_options --disable-verify-mar
+ac_add_options --disable-webspeech
+ac_add_options --disable-necko-wifi
+ac_add_options --disable-webrtc
+ac_add_options --disable-tests
+ac_add_options --disable-elf-hack
+ac_add_options --disable-mobile-optimize
+ac_add_options --disable-debug
+ac_add_options --disable-debug-symbols
+ac_add_options --disable-profiling
+ac_add_options --disable-signmar
+
+# vim:set ft=sh:
diff --git a/vendor.js b/vendor.js
new file mode 100644
index 000000000000..d8d606bc15d7
--- /dev/null
+++ b/vendor.js
@@ -0,0 +1,9 @@
+// Use LANG environment variable to choose locale
+pref("intl.locale.matchOS", true);
+
+// Disable default browser checking.
+pref("browser.shell.checkDefaultBrowser", false);
+
+// Don't disable our bundled extensions in the application directory
+pref("extensions.autoDisableScopes", 11);
+pref("extensions.shownSelectionUI", true);
diff --git a/waterfox-alpha.desktop b/waterfox-alpha.desktop
new file mode 100644
index 000000000000..e3e5447a2b86
--- /dev/null
+++ b/waterfox-alpha.desktop
@@ -0,0 +1,353 @@
+[Desktop Entry]
+Name=Waterfox Alpha
+GenericName=Web Browser
+GenericName[ar]=متصفح ويب
+GenericName[ast]=Restolador Web
+GenericName[bn]=ওয়েব ব্রাউজার
+GenericName[ca]=Navegador web
+GenericName[cs]=Webový prohlížeč
+GenericName[da]=Webbrowser
+GenericName[el]=Περιηγητής διαδικτύου
+GenericName[es]=Navegador web
+GenericName[et]=Veebibrauser
+GenericName[fa]=مرورگر اینترنتی
+GenericName[fi]=WWW-selain
+GenericName[fr]=Navigateur Web
+GenericName[gl]=Navegador Web
+GenericName[he]=דפדפן אינטרנט
+GenericName[hr]=Web preglednik
+GenericName[hu]=Webböngésző
+GenericName[it]=Browser web
+GenericName[ja]=ウェブ・ブラウザ
+GenericName[ko]=웹 브라우저
+GenericName[ku]=Geroka torê
+GenericName[lt]=Interneto naršyklė
+GenericName[nb]=Nettleser
+GenericName[nl]=Webbrowser
+GenericName[nn]=Nettlesar
+GenericName[no]=Nettleser
+GenericName[pl]=Przeglądarka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador Web
+GenericName[ro]=Navigator Internet
+GenericName[ru]=Веб-браузер
+GenericName[sk]=Internetový prehliadač
+GenericName[sl]=Spletni brskalnik
+GenericName[sv]=Webbläsare
+GenericName[tr]=Web Tarayıcı
+GenericName[ug]=توركۆرگۈ
+GenericName[uk]=Веб-браузер
+GenericName[vi]=Trình duyệt Web
+GenericName[zh_CN]=网络浏览器
+GenericName[zh_TW]=網路瀏覽器
+Comment=Browse the World Wide Web
+Comment[ar]=تصفح الشبكة العنكبوتية العالمية
+Comment[ast]=Restola pela Rede
+Comment[bn]=ইন্টারনেট ব্রাউজ করুন
+Comment[ca]=Navegueu per la web
+Comment[cs]=Prohlížení stránek World Wide Webu
+Comment[da]=Surf på internettet
+Comment[de]=Im Internet surfen
+Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web)
+Comment[es]=Navegue por la web
+Comment[et]=Lehitse veebi
+Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
+Comment[fi]=Selaa Internetin WWW-sivuja
+Comment[fr]=Naviguer sur le Web
+Comment[gl]=Navegar pola rede
+Comment[he]=גלישה ברחבי האינטרנט
+Comment[hr]=Pretražite web
+Comment[hu]=A világháló böngészése
+Comment[it]=Esplora il web
+Comment[ja]=ウェブを閲覧します
+Comment[ko]=웹을 돌아 다닙니다
+Comment[ku]=Li torê bigere
+Comment[lt]=Naršykite internete
+Comment[nb]=Surf på nettet
+Comment[nl]=Verken het internet
+Comment[nn]=Surf på nettet
+Comment[no]=Surf på nettet
+Comment[pl]=Przeglądanie stron WWW
+Comment[pt]=Navegue na Internet
+Comment[pt_BR]=Navegue na Internet
+Comment[ro]=Navigați pe Internet
+Comment[ru]=Доступ в Интернет
+Comment[sk]=Prehliadanie internetu
+Comment[sl]=Brskajte po spletu
+Comment[sv]=Surfa på webben
+Comment[tr]=İnternet'te Gezinin
+Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ
+Comment[uk]=Перегляд сторінок Інтернету
+Comment[vi]=Để duyệt các trang web
+Comment[zh_CN]=浏览互联网
+Comment[zh_TW]=瀏覽網際網路
+Exec=waterfox-alpha %u
+Terminal=false
+Type=Application
+Icon=waterfox-alpha
+Categories=Network;WebBrowser;
+MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
+StartupNotify=true
+StartupWMClass=waterfox-alpha
+Actions=NewTab;NewWindow;NewPrivateWindow;
+
+[Desktop Action NewTab]
+Name=Open new tab
+Name[ach]=Yab dirica matidi manyen
+Name[af]=Open nuwe oortjie
+Name[an]=Ubrir una pestanya nueva
+Name[ar]=افتح لسانًا جديدًا
+Name[as]=নতুন টেব খোলক
+Name[ast]=Abrir llingüeta nueva
+Name[az]=Yeni vərəq aç
+Name[be]=Адкрыць новую ўстаўку
+Name[bg]=Отваряне на нов подпрозорец
+Name[bn_BD]=নতুন ট্যাব খুলুন
+Name[bn_IN]=নতুন ট্যাব খুলুন
+Name[br]=Digeriñ un ivinell nevez
+Name[bs]=Otvori novi tab
+Name[ca]=Obre una pestanya nova
+Name[cs]=Otevřít nový panel
+Name[cy]=Agor tab newydd
+Name[da]=Åbn nyt faneblad
+Name[de]=Neuen Tab öffnen
+Name[dsb]=Nowy rejtark wócyniś
+Name[el]=Άνοιγμα νέας καρτέλας
+Name[eo]=Malfermi novan langeton
+Name[es_AR]=Abrir nueva pestaña
+Name[es_CL]=Abrir nueva pestaña
+Name[es_ES]=Abrir pestaña nueva
+Name[es_MX]=Abrir una pestaña nueva
+Name[et]=Ava uus kaart
+Name[eu]=Ireki fitxa berria
+Name[ff]=Uddit tabbere hesere
+Name[fi]=Avaa uusi välilehti
+Name[fr]=Ouvrir un nouvel onglet
+Name[fy_NL]=Iepenje nij ljepblêd
+Name[ga_IE]=Oscail i gcluaisín nua
+Name[gd]=Fosgail taba ùr
+Name[gl]=Abrir unha nova lapela
+Name[gu_IN]=નવી ટૅબને ખોલો
+Name[he]=פתיחת לשונית חדשה
+Name[hi_IN]=नया टैब खोलें
+Name[hr]=Otvori novu karticu
+Name[hsb]=Nowy rajtark wočinić
+Name[hu]=Új lap megnyitása
+Name[hy_AM]=Բացել նոր ներդիր
+Name[id]=Buka tab baru
+Name[is]=Opna nýjan flipa
+Name[it]=Apri nuova scheda
+Name[ja]=新しいタブ
+Name[kk]=Жаңа бетті ашу
+Name[kn]=ಹೊಸ ಹಾಳೆಯನ್ನು ತೆರೆ
+Name[ko]=새 탭 열기
+Name[lij]=Àrvi nêuvo féuggio
+Name[lt]=Atverti naują kortelę
+Name[mai]=नव टैब खोलू
+Name[mk]=Отвори ново јазиче
+Name[ml]=പുതിയ റ്റാബ് തുറക്കുക
+Name[mr]=नवीन टॅब उघडा
+Name[ms]=Buka tab baru
+Name[nb_NO]=Åpne ny fane
+Name[nl]=Nieuw tabblad openen
+Name[nn_NO]=Opna ny fane
+Name[or]=ନୂତନ ଟ୍ୟାବ ଖୋଲନ୍ତୁ
+Name[pa_IN]=ਨਵੀਂ ਟੈਬ ਖੋਲ੍ਹੋ
+Name[pl]=Otwórz nową kartę
+Name[pt_BR]=Nova aba
+Name[pt_PT]=Abrir novo separador
+Name[rm]=Avrir in nov tab
+Name[ro]=Deschide o filă nouă
+Name[ru]=Открыть новую вкладку
+Name[si]=නව ටැබය විවෘත කරන්න
+Name[sk]=Otvoriť novú kartu
+Name[sl]=Odpri nov zavihek
+Name[son]=Nor loku taaga feeri
+Name[sq]=Hap skedë të re
+Name[sr]=Отвори нови језичак
+Name[sv_SE]=Öppna ny flik
+Name[ta]=புதிய கீற்றைத் திற
+Name[te]=కొత్త టాబ్ తెరువుము
+Name[th]=เปิดแท็บใหม่
+Name[tr]=Yeni sekme aç
+Name[uk]=Відкрити нову вкладку
+Name[uz]=Yangi ichki oyna ochish
+Name[vi]=Mở thẻ mới
+Name[xh]=Vula ithebhu entsha
+Name[zh_CN]=打开新标签页
+Name[zh_TW]=開啟新分頁
+Exec=waterfox-alpha -new-tab about:newtab
+
+[Desktop Action NewWindow]
+Name=Open new window
+Name[ach]=Yab dirica manyen
+Name[af]=Open nuwe venster
+Name[an]=Ubrir una nueva finestra
+Name[ar]=افتح نافذة جديدة
+Name[as]=নতুন উইন্ডো খোলক
+Name[ast]=Abrir ventana nueva
+Name[az]=Yeni pəncərə aç
+Name[be]=Адкрыць новае акно
+Name[bg]=Отваряне на нов прозорец
+Name[bn_BD]=নতুন উইন্ডো খুলুন
+Name[bn_IN]=নতুন উইন্ডো খুলুন
+Name[br]=Digeriñ ur prenestr nevez
+Name[bs]=Otvori novi prozor
+Name[ca]=Obre una finestra nova
+Name[cs]=Otevřít nové okno
+Name[cy]=Agor ffenestr newydd
+Name[da]=Åbn nyt vindue
+Name[de]=Neues Fenster öffnen
+Name[dsb]=Nowe wokno wócyniś
+Name[el]=Άνοιγμα νέου παραθύρου
+Name[eo]=Malfermi novan fenestron
+Name[es_AR]=Abrir nueva ventana
+Name[es_CL]=Abrir nueva ventana
+Name[es_ES]=Abrir nueva ventana
+Name[es_MX]=Abrir nueva ventana
+Name[et]=Ava uus aken
+Name[eu]=Ireki leiho berria
+Name[ff]=Uddit henorde hesere
+Name[fi]=Avaa uusi ikkuna
+Name[fr]=Ouvrir une nouvelle fenêtre
+Name[fy_NL]=Iepenje nij finster
+Name[ga_IE]=Oscail fuinneog nua
+Name[gd]=Fosgail uinneag ùr
+Name[gl]=Abrir unha nova xanela
+Name[gu_IN]=નવી વિન્ડોને ખોલો
+Name[he]=פתח חלון חדש
+Name[hi_IN]=नई विंडो खोलें
+Name[hr]=Otvori novi prozor
+Name[hsb]=Nowe wokno wočinić
+Name[hu]=Új ablak megnyitása
+Name[hy_AM]=Բացել նոր պատուհան
+Name[id]=Buka jendela baru
+Name[is]=Opna nýjan glugga
+Name[it]=Apri nuova finestra
+Name[ja]=新しいウィンドウ
+Name[kk]=Жаңа терезені ашу
+Name[kn]=ಹೊಸ ವಿಂಡೊವನ್ನು ತೆರೆ
+Name[ko]=새 창 열기
+Name[lij]=Àrvi nêuvo barcón
+Name[lt]=Atverti naują langą
+Name[mai]=नई विंडो खोलू
+Name[mk]=Отвори нов прозорец
+Name[ml]=പുതിയ ജാലകം തുറക്കുക
+Name[mr]=नवीन पटल उघडा
+Name[ms]=Buka tetingkap baru
+Name[nb_NO]=Åpne nytt vindu
+Name[nl]=Een nieuw venster openen
+Name[nn_NO]=Opna nytt vindauge
+Name[or]=ନୂତନ ୱିଣ୍ଡୋ ଖୋଲନ୍ତୁ
+Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ ਖੋਲ੍ਹੋ
+Name[pl]=Otwórz nowe okno
+Name[pt_BR]=Nova janela
+Name[pt_PT]=Abrir nova janela
+Name[rm]=Avrir ina nova fanestra
+Name[ro]=Deschide o nouă fereastră
+Name[ru]=Открыть новое окно
+Name[si]=නව කවුළුවක් විවෘත කරන්න
+Name[sk]=Otvoriť nové okno
+Name[sl]=Odpri novo okno
+Name[son]=Zanfun taaga feeri
+Name[sq]=Hap dritare të re
+Name[sr]=Отвори нови прозор
+Name[sv_SE]=Öppna nytt fönster
+Name[ta]=புதிய சாளரத்தை திற
+Name[te]=కొత్త విండో తెరువుము
+Name[th]=เปิดหน้าต่างใหม่
+Name[tr]=Yeni pencere aç
+Name[uk]=Відкрити нове вікно
+Name[uz]=Yangi oyna ochish
+Name[vi]=Mở cửa sổ mới
+Name[xh]=Vula iwindow entsha
+Name[zh_CN]=打开新窗口
+Name[zh_TW]=開啟新視窗
+Exec=waterfox-alpha -new-window
+
+[Desktop Action NewPrivateWindow]
+Name=New private window
+Name[ach]=Dirica manyen me mung
+Name[af]=Nuwe privaatvenster
+Name[an]=Nueva finestra de navegación privada
+Name[ar]=نافذة خاصة جديدة
+Name[as]=নতুন ব্যক্তিগত উইন্ডো
+Name[ast]=Ventana privada nueva
+Name[az]=Yeni məxfi pəncərə
+Name[be]=Новае акно адасаблення
+Name[bg]=Нов прозорец за поверително сърфиране
+Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
+Name[bn_IN]=নতুন ব্যাক্তিগত উইন্ডো
+Name[br]=Prenestr merdeiñ prevez nevez
+Name[bs]=Novi privatni prozor
+Name[ca]=Finestra privada nova
+Name[cs]=Nové anonymní okno
+Name[cy]=Ffenestr breifat newydd
+Name[da]=Nyt privat vindue
+Name[de]=Neues privates Fenster öffnen
+Name[dsb]=Nowe priwatne wokno
+Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
+Name[eo]=Nova privata fenestro
+Name[es_AR]=Nueva ventana privada
+Name[es_CL]=Nueva ventana privada
+Name[es_ES]=Nueva ventana privada
+Name[es_MX]=Nueva ventana privada
+Name[et]=Uus privaatne aken
+Name[eu]=Leiho pribatu berria
+Name[ff]=Henorde suturo hesere
+Name[fi]=Uusi yksityinen ikkuna
+Name[fr]=Nouvelle fenêtre de navigation privée
+Name[fy_NL]=Nij priveefinster
+Name[ga_IE]=Fuinneog nua phríobháideach
+Name[gd]=Uinneag phrìobhaideach ùr
+Name[gl]=Nova xanela privada
+Name[gu_IN]=નવી ખાનગી વિન્ડો
+Name[he]=חלון פרטי חדש
+Name[hi_IN]=नया निजी विंडो
+Name[hr]=Novi privatni prozor
+Name[hsb]=Nowe priwatne wokno
+Name[hu]=Új privát ablak
+Name[hy_AM]=Գաղտնի դիտարկում
+Name[id]=Jendela mode pribadi baru
+Name[is]=Nýr einkagluggi
+Name[it]=Nuova finestra anonima
+Name[ja]=新しいプライベートウィンドウ
+Name[kk]=Жаңа жекелік терезе
+Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
+Name[ko]=새 사생활 보호 창
+Name[lij]=Nêuvo barcón privòu
+Name[lt]=Atverti privačiojo naršymo langą
+Name[mai]=नव निज विंडो
+Name[mk]=Нов прозорец за приватно сурфање
+Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
+Name[mr]=नवीन वैयक्तिक पटल
+Name[ms]=Tetingkap peribadi baharu
+Name[nb_NO]=Nytt privat vindu
+Name[nl]=Nieuw privévenster
+Name[nn_NO]=Nytt privat vindauge
+Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
+Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
+Name[pl]=Nowe okno w trybie prywatnym
+Name[pt_BR]=Nova janela privativa
+Name[pt_PT]=Nova janela privada
+Name[rm]=Nova fanestra privata
+Name[ro]=Fereastră fără urme nouă
+Name[ru]=Новое приватное окно
+Name[si]=නව පුද්ගලික කවුළුව
+Name[sk]=Nové okno v režime Súkromné prehliadanie
+Name[sl]=Novo zasebno okno
+Name[son]=Sutura zanfun taaga
+Name[sq]=Dritare e re private
+Name[sr]=Нови приватни прозор
+Name[sv_SE]=Nytt privat fönster
+Name[ta]=புதிய தனிப்பட்ட சாளரம்
+Name[te]=కొత్త ఆంతరంగిక విండో
+Name[th]=หน้าต่างท่องเว็บแบบส่วนตัวใหม่
+Name[tr]=Yeni gizli pencere
+Name[uk]=Нове приватне вікно
+Name[uz]=Yangi shaxsiy oyna
+Name[vi]=Cửa sổ riêng tư mới
+Name[xh]=Ifestile yangasese entsha
+Name[zh_CN]=新建隐私浏览窗口
+Name[zh_TW]=新增隱私視窗
+Exec=waterfox-alpha -private-window
diff --git a/waterfox-alpha.install b/waterfox-alpha.install
new file mode 100644
index 000000000000..1a1f4b16b5d2
--- /dev/null
+++ b/waterfox-alpha.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+