├── .gitignore ├── 0001-Use-remoting-name-for-GDK-application-names.patch ├── 0004-bmo-847568-Support-system-harfbuzz.patch ├── 0005-bmo-847568-Support-system-graphite2.patch ├── 0006-bmo-1559213-Support-system-av1.patch ├── 0021-bmo-1516081-Disable-watchdog-during-PGO-builds.patch ├── 0029-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch ├── LICENSE ├── PKGBUILD ├── README.md ├── about-logo.png ├── about-logo@2x.png ├── about-wordmark.svg ├── about.png ├── add_missing_pgo_rule.patch ├── default128.png ├── default16.png ├── default22.png ├── default24.png ├── default256.png ├── default32.png ├── default48.png ├── default64.png ├── fix-hidden-buttons-with-csd-menubar.patch ├── kde.js ├── mozconfig ├── patchset ├── 0001-branding-and-dialogs.patch ├── 0002-change-user-agent-handling.patch ├── 0003-disable-healthreport-and-normandy.patch ├── 0004-remove-UI-tour.patch ├── 0005-disable-pocket.patch ├── 0006-new-logo-for-new-about-screen.patch ├── 0007-allow-webrender-on-release.patch └── mesa-add-plasmafox-to-adaptive_sync-blacklist.patch ├── pgo-fix-missing-kdejs.patch ├── plasmafox-20210531.patch ├── plasmafox-common.profile ├── plasmafox-wordmark.svg ├── plasmafox.desktop ├── plasmafox.install ├── plasmafox.profile ├── plasmafox.psd ├── reduce-rust-debuginfo.patch ├── torvic9-pubkey-2021.key ├── unity-menubar-r2389.patch ├── use-mcpu-native-with-lto-pgo.patch ├── user.js └── vendor.js /.gitignore: -------------------------------------------------------------------------------- 1 | *.xz 2 | *.pkg 3 | working/* 4 | icon/* 5 | 6 | -------------------------------------------------------------------------------- /0001-Use-remoting-name-for-GDK-application-names.patch: -------------------------------------------------------------------------------- 1 | From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 2 | From: "Jan Alexander Steffens (heftig)" 3 | Date: Mon, 25 Mar 2019 20:30:11 +0100 4 | Subject: [PATCH] Use remoting name for GDK application names 5 | 6 | --- 7 | toolkit/xre/nsAppRunner.cpp | 6 +----- 8 | widget/gtk/nsAppShell.cpp | 12 +++++------- 9 | 2 files changed, 6 insertions(+), 12 deletions(-) 10 | 11 | diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp 12 | index d944ce905cbe3..9a50545bfafcb 100644 13 | --- a/toolkit/xre/nsAppRunner.cpp 14 | +++ b/toolkit/xre/nsAppRunner.cpp 15 | @@ -4161,11 +4161,7 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) { 16 | // consistently. 17 | 18 | // Set program name to the one defined in application.ini. 19 | - { 20 | - nsAutoCString program(gAppData->name); 21 | - ToLowerCase(program); 22 | - g_set_prgname(program.get()); 23 | - } 24 | + g_set_prgname(gAppData->remotingName); 25 | 26 | // Initialize GTK here for splash. 27 | 28 | diff --git a/widget/gtk/nsAppShell.cpp b/widget/gtk/nsAppShell.cpp 29 | index cfe022e65d820..c228237830e43 100644 30 | --- a/widget/gtk/nsAppShell.cpp 31 | +++ b/widget/gtk/nsAppShell.cpp 32 | @@ -24,6 +24,8 @@ 33 | # include "WakeLockListener.h" 34 | #endif 35 | #include "gfxPlatform.h" 36 | +#include "nsAppRunner.h" 37 | +#include "mozilla/XREAppData.h" 38 | #include "ScreenHelperGTK.h" 39 | #include "HeadlessScreenHelper.h" 40 | #include "mozilla/widget/ScreenManager.h" 41 | @@ -159,13 +161,9 @@ nsresult nsAppShell::Init() { 42 | // See https://bugzilla.gnome.org/show_bug.cgi?id=747634 43 | // 44 | // Only bother doing this for the parent process, since it's the one 45 | - // creating top-level windows. (At this point, a child process hasn't 46 | - // received the list of registered chrome packages, so the 47 | - // GetBrandShortName call would fail anyway.) 48 | - nsAutoString brandName; 49 | - mozilla::widget::WidgetUtils::GetBrandShortName(brandName); 50 | - if (!brandName.IsEmpty()) { 51 | - gdk_set_program_class(NS_ConvertUTF16toUTF8(brandName).get()); 52 | + // creating top-level windows. 53 | + if (gAppData) { 54 | + gdk_set_program_class(gAppData->remotingName); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /0004-bmo-847568-Support-system-harfbuzz.patch: -------------------------------------------------------------------------------- 1 | From 0cd112325bbe3a31bb32ca36074203d6aeba20e5 Mon Sep 17 00:00:00 2001 2 | From: Thomas Deutschmann 3 | Date: Mon, 6 Apr 2020 19:32:39 +0200 4 | Subject: [PATCH 04/36] bmo#847568: Support system harfbuzz 5 | 6 | Allow building against system-wide harfbuzz. 7 | 8 | Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=847568 9 | Signed-off-by: Thomas Deutschmann 10 | --- 11 | config/system-headers.mozbuild | 7 +++++++ 12 | dom/base/moz.build | 3 +++ 13 | gfx/moz.build | 4 +++- 14 | gfx/skia/generate_mozbuild.py | 3 +++ 15 | gfx/skia/moz.build | 3 +++ 16 | gfx/thebes/moz.build | 3 +++ 17 | intl/unicharutil/util/moz.build | 3 +++ 18 | netwerk/dns/moz.build | 3 +++ 19 | toolkit/library/moz.build | 3 +++ 20 | toolkit/moz.configure | 9 +++++++++ 21 | 10 files changed, 40 insertions(+), 1 deletion(-) 22 | 23 | diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild 24 | index 5f7b5bb23e..449328ffaa 100644 25 | --- a/config/system-headers.mozbuild 26 | +++ b/config/system-headers.mozbuild 27 | @@ -1236,6 +1236,13 @@ if CONFIG['OS_TARGET'] == 'Android': 28 | 'vr/gvr/capi/include/gvr.h', 29 | ] 30 | 31 | +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: 32 | + system_headers += [ 33 | + 'harfbuzz/hb-glib.h', 34 | + 'harfbuzz/hb-ot.h', 35 | + 'harfbuzz/hb.h', 36 | + ] 37 | + 38 | if CONFIG['MOZ_JACK']: 39 | system_headers += [ 40 | 'jack/jack.h', 41 | diff --git a/dom/base/moz.build b/dom/base/moz.build 42 | index cadd80e624..4083d9c3fe 100644 43 | --- a/dom/base/moz.build 44 | +++ b/dom/base/moz.build 45 | @@ -556,6 +556,9 @@ if CONFIG["MOZ_BUILD_APP"] in ["browser", "mobile/android", "xulrunner"]: 46 | if CONFIG["MOZ_X11"]: 47 | CXXFLAGS += CONFIG["TK_CFLAGS"] 48 | 49 | +if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: 50 | + CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"] 51 | + 52 | GeneratedFile( 53 | "UseCounterList.h", 54 | script="gen-usecounters.py", 55 | diff --git a/gfx/moz.build b/gfx/moz.build 56 | index 6d6274e636..c9cb3d592a 100644 57 | --- a/gfx/moz.build 58 | +++ b/gfx/moz.build 59 | @@ -13,6 +13,9 @@ with Files("wr/**"): 60 | if CONFIG["MOZ_TREE_CAIRO"]: 61 | DIRS += ["cairo"] 62 | 63 | +if not CONFIG["MOZ_SYSTEM_HARFBUZZ"]: 64 | + DIRS += ["harfbuzz/src"] 65 | + 66 | DIRS += [ 67 | "2d", 68 | "ycbcr", 69 | @@ -22,7 +25,6 @@ DIRS += [ 70 | "gl", 71 | "layers", 72 | "graphite2/src", 73 | - "harfbuzz/src", 74 | "ots/src", 75 | "thebes", 76 | "ipc", 77 | diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py 78 | index d5c409b657..9ad751e321 100755 79 | --- a/gfx/skia/generate_mozbuild.py 80 | +++ b/gfx/skia/generate_mozbuild.py 81 | @@ -98,6 +98,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'): 82 | '-Wno-unused-private-field', 83 | ] 84 | 85 | +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: 86 | + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] 87 | + 88 | if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'android'): 89 | CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] 90 | CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] 91 | diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build 92 | index 66b21aec25..6f0c015d09 100755 93 | --- a/gfx/skia/moz.build 94 | +++ b/gfx/skia/moz.build 95 | @@ -490,6 +490,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'): 96 | '-Wno-unused-private-field', 97 | ] 98 | 99 | +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: 100 | + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] 101 | + 102 | if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'android'): 103 | CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] 104 | CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS'] 105 | diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build 106 | index c284127164..fb2ad5bf34 100644 107 | --- a/gfx/thebes/moz.build 108 | +++ b/gfx/thebes/moz.build 109 | @@ -290,6 +290,9 @@ LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"] 110 | 111 | DEFINES["GRAPHITE2_STATIC"] = True 112 | 113 | +if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: 114 | + CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"] 115 | + 116 | if CONFIG["CC_TYPE"] == "clang": 117 | # Suppress warnings from Skia header files. 118 | SOURCES["gfxPlatform.cpp"].flags += ["-Wno-implicit-fallthrough"] 119 | diff --git a/intl/unicharutil/util/moz.build b/intl/unicharutil/util/moz.build 120 | index 897bfad92a..5a83cdb2c1 100644 121 | --- a/intl/unicharutil/util/moz.build 122 | +++ b/intl/unicharutil/util/moz.build 123 | @@ -25,6 +25,9 @@ UNIFIED_SOURCES += [ 124 | "nsUnicodeProperties.cpp", 125 | ] 126 | 127 | +if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: 128 | + CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"] 129 | + 130 | GeneratedFile( 131 | "BaseChars.h", 132 | script="base_chars.py", 133 | diff --git a/netwerk/dns/moz.build b/netwerk/dns/moz.build 134 | index 31dd7c81b8..08bf561429 100644 135 | --- a/netwerk/dns/moz.build 136 | +++ b/netwerk/dns/moz.build 137 | @@ -104,6 +104,9 @@ LOCAL_INCLUDES += [ 138 | "/netwerk/protocol/http", 139 | ] 140 | 141 | +if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: 142 | + CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"] 143 | + 144 | USE_LIBS += ["icu"] 145 | 146 | if CONFIG["CC_TYPE"] in ("clang", "gcc"): 147 | diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build 148 | index 94e5474248..3f393f3316 100644 149 | --- a/toolkit/library/moz.build 150 | +++ b/toolkit/library/moz.build 151 | @@ -241,6 +241,9 @@ if CONFIG["MOZ_ANDROID_GOOGLE_VR"]: 152 | OS_LIBS += CONFIG["MOZ_CAIRO_OSLIBS"] 153 | OS_LIBS += CONFIG["MOZ_WEBRTC_X11_LIBS"] 154 | 155 | +if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: 156 | + OS_LIBS += CONFIG["MOZ_HARFBUZZ_LIBS"] 157 | + 158 | if CONFIG["MOZ_SYSTEM_JPEG"]: 159 | OS_LIBS += CONFIG["MOZ_JPEG_LIBS"] 160 | 161 | diff --git a/toolkit/moz.configure b/toolkit/moz.configure 162 | index 0717b912ef..c934a661bd 100644 163 | --- a/toolkit/moz.configure 164 | +++ b/toolkit/moz.configure 165 | @@ -475,6 +475,15 @@ add_old_configure_assignment( 166 | "_HAVE_FREETYPE2", depends_if(freetype2_info)(lambda _: True) 167 | ) 168 | 169 | +# HarfBuzz 170 | +# ============================================================== 171 | +option('--with-system-harfbuzz', help="Use system harfbuzz (located with pkgconfig)") 172 | + 173 | +system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 2.7.4', 174 | + when='--with-system-harfbuzz') 175 | + 176 | +set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True)) 177 | + 178 | # Apple platform decoder support 179 | # ============================================================== 180 | @depends(toolkit) 181 | -- 182 | 2.31.1 183 | 184 | -------------------------------------------------------------------------------- /0005-bmo-847568-Support-system-graphite2.patch: -------------------------------------------------------------------------------- 1 | From ffc7b194ef0fb5509d27a34063c52048912b8002 Mon Sep 17 00:00:00 2001 2 | From: Thomas Deutschmann 3 | Date: Mon, 6 Apr 2020 19:34:44 +0200 4 | Subject: [PATCH 05/36] bmo#847568: Support system graphite2 5 | 6 | Allow building against system-wide graphite2. 7 | 8 | Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=847568 9 | Signed-off-by: Thomas Deutschmann 10 | --- 11 | config/system-headers.mozbuild | 6 ++++++ 12 | gfx/graphite2/geckoextra/moz.build | 21 +++++++++++++++++++++ 13 | gfx/graphite2/moz-gr-update.sh | 7 ++++++- 14 | gfx/moz.build | 6 +++++- 15 | gfx/thebes/moz.build | 5 ++++- 16 | old-configure.in | 21 +++++++++++++++++++++ 17 | toolkit/library/moz.build | 3 +++ 18 | toolkit/moz.configure | 13 +++++++++++++ 19 | 8 files changed, 79 insertions(+), 3 deletions(-) 20 | create mode 100644 gfx/graphite2/geckoextra/moz.build 21 | 22 | diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild 23 | index 449328ffaa..27b5171d0a 100644 24 | --- a/config/system-headers.mozbuild 25 | +++ b/config/system-headers.mozbuild 26 | @@ -1243,6 +1243,12 @@ if CONFIG['MOZ_SYSTEM_HARFBUZZ']: 27 | 'harfbuzz/hb.h', 28 | ] 29 | 30 | +if CONFIG['MOZ_SYSTEM_GRAPHITE2']: 31 | + system_headers += [ 32 | + 'graphite2/Font.h', 33 | + 'graphite2/Segment.h', 34 | + ] 35 | + 36 | if CONFIG['MOZ_JACK']: 37 | system_headers += [ 38 | 'jack/jack.h', 39 | diff --git a/gfx/graphite2/geckoextra/moz.build b/gfx/graphite2/geckoextra/moz.build 40 | new file mode 100644 41 | index 0000000000..24e8d7a032 42 | --- /dev/null 43 | +++ b/gfx/graphite2/geckoextra/moz.build 44 | @@ -0,0 +1,21 @@ 45 | +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- 46 | +# vim: set filetype=python: 47 | +# This Source Code Form is subject to the terms of the Mozilla Public 48 | +# License, v. 2.0. If a copy of the MPL was not distributed with this 49 | +# file, You can obtain one at http://mozilla.org/MPL/2.0/. 50 | + 51 | +EXPORTS.graphite2 += [ 52 | + 'include/GraphiteExtra.h', 53 | + 'include/GraphiteStructsForRLBox.h', 54 | +] 55 | + 56 | +UNIFIED_SOURCES += [ 57 | + '../geckoextra/src/GraphiteExtra.cpp', 58 | +] 59 | + 60 | +CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS'] 61 | + 62 | +# Match bundled graphite2 configuration 63 | +AllowCompilerWarnings() 64 | + 65 | +FINAL_LIBRARY = 'gkmedias' 66 | diff --git a/gfx/graphite2/moz-gr-update.sh b/gfx/graphite2/moz-gr-update.sh 67 | index b91d9c161c..a97e6eb203 100755 68 | --- a/gfx/graphite2/moz-gr-update.sh 69 | +++ b/gfx/graphite2/moz-gr-update.sh 70 | @@ -1,6 +1,7 @@ 71 | #!/bin/bash 72 | 73 | # Script used to update the Graphite2 library in the mozilla source tree 74 | +# and bump version for --with-system-graphite2 75 | 76 | # This script lives in gfx/graphite2, along with the library source, 77 | # but must be run from the top level of the mozilla-central tree. 78 | @@ -37,12 +38,16 @@ echo "See" $0 "for update procedure." >> gfx/graphite2/README.mozilla 79 | #find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s///;s/Windows.h/windows.h/;" {} \; 80 | #find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s///;s/Windows.h/windows.h/;" {} \; 81 | 82 | +# chase version for --with-system-graphite2 83 | +perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \ 84 | + if /GR2_VERSION_REQUIRE/" old-configure.in 85 | + 86 | # summarize what's been touched 87 | echo Updated to $RELEASE. 88 | echo Here is what changed in the gfx/graphite2 directory: 89 | echo 90 | 91 | -hg stat gfx/graphite2 92 | +hg stat old-configure.in gfx/graphite2 93 | 94 | echo 95 | echo If gfx/graphite2/src/files.mk has changed, please make corresponding 96 | diff --git a/gfx/moz.build b/gfx/moz.build 97 | index c9cb3d592a..2e822f0134 100644 98 | --- a/gfx/moz.build 99 | +++ b/gfx/moz.build 100 | @@ -13,6 +13,11 @@ with Files("wr/**"): 101 | if CONFIG["MOZ_TREE_CAIRO"]: 102 | DIRS += ["cairo"] 103 | 104 | +if CONFIG["MOZ_SYSTEM_GRAPHITE2"]: 105 | + DIRS += ["graphite2/geckoextra"] 106 | +else: 107 | + DIRS += ["graphite2/src"] 108 | + 109 | if not CONFIG["MOZ_SYSTEM_HARFBUZZ"]: 110 | DIRS += ["harfbuzz/src"] 111 | 112 | @@ -24,7 +29,6 @@ DIRS += [ 113 | "qcms", 114 | "gl", 115 | "layers", 116 | - "graphite2/src", 117 | "ots/src", 118 | "thebes", 119 | "ipc", 120 | diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build 121 | index fb2ad5bf34..c6ce6f8417 100644 122 | --- a/gfx/thebes/moz.build 123 | +++ b/gfx/thebes/moz.build 124 | @@ -288,7 +288,10 @@ if CONFIG["MOZ_WAYLAND"]: 125 | 126 | LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"] 127 | 128 | -DEFINES["GRAPHITE2_STATIC"] = True 129 | +if CONFIG["MOZ_SYSTEM_GRAPHITE2"]: 130 | + CXXFLAGS += CONFIG["MOZ_GRAPHITE2_CFLAGS"] 131 | +else: 132 | + DEFINES["GRAPHITE2_STATIC"] = True 133 | 134 | if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: 135 | CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"] 136 | diff --git a/old-configure.in b/old-configure.in 137 | index 4ddc3f5b45..de727a48bd 100644 138 | --- a/old-configure.in 139 | +++ b/old-configure.in 140 | @@ -2283,6 +2283,27 @@ if test "$USE_FC_FREETYPE"; then 141 | fi 142 | fi 143 | 144 | +dnl ======================================================== 145 | +dnl Check for graphite2 146 | +dnl ======================================================== 147 | +if test -n "$MOZ_SYSTEM_GRAPHITE2"; then 148 | + dnl graphite2.pc has bogus version, check manually 149 | + _SAVE_CFLAGS=$CFLAGS 150 | + CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS" 151 | + AC_TRY_COMPILE([ #include 152 | + #define GR2_VERSION_REQUIRE(major,minor,bugfix) \ 153 | + ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \ 154 | + * 100 + GR2_VERSION_BUGFIX >= \ 155 | + (major) * 10000 + (minor) * 100 + (bugfix) ) 156 | + ], [ 157 | + #if !GR2_VERSION_REQUIRE(1,3,8) 158 | + #error "Insufficient graphite2 version." 159 | + #endif 160 | + ], [], 161 | + [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])]) 162 | + CFLAGS=$_SAVE_CFLAGS 163 | +fi 164 | + 165 | dnl ======================================================== 166 | dnl Check if we need the 32-bit Linux SSE2 error dialog 167 | dnl ======================================================== 168 | diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build 169 | index 3f393f3316..df178bc6cf 100644 170 | --- a/toolkit/library/moz.build 171 | +++ b/toolkit/library/moz.build 172 | @@ -241,6 +241,9 @@ if CONFIG["MOZ_ANDROID_GOOGLE_VR"]: 173 | OS_LIBS += CONFIG["MOZ_CAIRO_OSLIBS"] 174 | OS_LIBS += CONFIG["MOZ_WEBRTC_X11_LIBS"] 175 | 176 | +if CONFIG["MOZ_SYSTEM_GRAPHITE2"]: 177 | + OS_LIBS += CONFIG["MOZ_GRAPHITE2_LIBS"] 178 | + 179 | if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: 180 | OS_LIBS += CONFIG["MOZ_HARFBUZZ_LIBS"] 181 | 182 | diff --git a/toolkit/moz.configure b/toolkit/moz.configure 183 | index c934a661bd..0783019981 100644 184 | --- a/toolkit/moz.configure 185 | +++ b/toolkit/moz.configure 186 | @@ -475,6 +475,19 @@ add_old_configure_assignment( 187 | "_HAVE_FREETYPE2", depends_if(freetype2_info)(lambda _: True) 188 | ) 189 | 190 | +# Graphite2 191 | +# ============================================================== 192 | +option('--with-system-graphite2', help="Use system graphite2 (located with pkgconfig)") 193 | + 194 | +@depends('--with-system-graphite2') 195 | +def check_for_graphite2(value): 196 | + return bool(value) 197 | + 198 | +system_graphite2 = pkg_check_modules('MOZ_GRAPHITE2', 'graphite2', 199 | + when=check_for_graphite2) 200 | + 201 | +set_config('MOZ_SYSTEM_GRAPHITE2', depends_if(system_graphite2)(lambda _: True)) 202 | + 203 | # HarfBuzz 204 | # ============================================================== 205 | option('--with-system-harfbuzz', help="Use system harfbuzz (located with pkgconfig)") 206 | -- 207 | 2.31.1 208 | 209 | -------------------------------------------------------------------------------- /0006-bmo-1559213-Support-system-av1.patch: -------------------------------------------------------------------------------- 1 | From e09538bda8756e737af01edbd4aed9975280ca45 Mon Sep 17 00:00:00 2001 2 | From: Thomas Deutschmann 3 | Date: Mon, 6 Apr 2020 19:36:02 +0200 4 | Subject: [PATCH 06/36] bmo#1559213: Support system av1 5 | 6 | Allow building against system-wide av1. 7 | 8 | Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1559213 9 | Signed-off-by: Thomas Deutschmann 10 | --- 11 | config/external/moz.build | 5 +++-- 12 | config/system-headers.mozbuild | 8 ++++++++ 13 | dom/media/platforms/moz.build | 5 +++++ 14 | toolkit/moz.configure | 20 ++++++++++++++++++-- 15 | 4 files changed, 34 insertions(+), 4 deletions(-) 16 | 17 | diff --git a/config/external/moz.build b/config/external/moz.build 18 | index 4e9888f365..bf1e255107 100644 19 | --- a/config/external/moz.build 20 | +++ b/config/external/moz.build 21 | @@ -40,8 +40,9 @@ if not CONFIG["MOZ_SYSTEM_LIBVPX"]: 22 | external_dirs += ["media/libvpx"] 23 | 24 | if CONFIG["MOZ_AV1"]: 25 | - external_dirs += ["media/libaom"] 26 | - external_dirs += ["media/libdav1d"] 27 | + if not CONFIG["MOZ_SYSTEM_AV1"]: 28 | + external_dirs += ["media/libaom"] 29 | + external_dirs += ["media/libdav1d"] 30 | 31 | if not CONFIG["MOZ_SYSTEM_PNG"]: 32 | external_dirs += ["media/libpng"] 33 | diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild 34 | index 27b5171d0a..c6213f1d96 100644 35 | --- a/config/system-headers.mozbuild 36 | +++ b/config/system-headers.mozbuild 37 | @@ -1300,6 +1300,14 @@ if CONFIG['MOZ_ENABLE_LIBPROXY']: 38 | 'proxy.h', 39 | ] 40 | 41 | +if CONFIG['MOZ_SYSTEM_AV1']: 42 | + system_headers += [ 43 | + 'aom/aom_decoder.h', 44 | + 'aom/aomdx.h', 45 | + 'aom/aom_image.h', 46 | + 'dav1d/dav1d.h', 47 | + ] 48 | + 49 | if CONFIG['MOZ_SYSTEM_LIBVPX']: 50 | system_headers += [ 51 | 'vpx_mem/vpx_mem.h', 52 | diff --git a/dom/media/platforms/moz.build b/dom/media/platforms/moz.build 53 | index 16ca8a9cbc..b349dcbe6d 100644 54 | --- a/dom/media/platforms/moz.build 55 | +++ b/dom/media/platforms/moz.build 56 | @@ -78,6 +78,11 @@ if CONFIG["MOZ_AV1"]: 57 | "agnostic/AOMDecoder.cpp", 58 | "agnostic/DAV1DDecoder.cpp", 59 | ] 60 | + if CONFIG["MOZ_SYSTEM_AV1"]: 61 | + CXXFLAGS += CONFIG["MOZ_SYSTEM_LIBAOM_CFLAGS"] 62 | + OS_LIBS += CONFIG["MOZ_SYSTEM_LIBAOM_LIBS"] 63 | + CXXFLAGS += CONFIG["MOZ_SYSTEM_LIBDAV1D_CFLAGS"] 64 | + OS_LIBS += CONFIG["MOZ_SYSTEM_LIBDAV1D_LIBS"] 65 | 66 | if CONFIG["MOZ_OMX"]: 67 | EXPORTS += [ 68 | diff --git a/toolkit/moz.configure b/toolkit/moz.configure 69 | index 0783019981..de0a44bf27 100644 70 | --- a/toolkit/moz.configure 71 | +++ b/toolkit/moz.configure 72 | @@ -559,14 +559,29 @@ def av1(value): 73 | if value: 74 | return True 75 | 76 | +option("--with-system-av1", help="Use system av1 (located with pkg-config)") 77 | 78 | -@depends(target, when=av1 & compile_environment) 79 | +system_libaom_info = pkg_check_modules('MOZ_SYSTEM_LIBAOM', 'aom >= 1.0.0', 80 | + when='--with-system-av1') 81 | + 82 | +system_libdav1d_info = pkg_check_modules('MOZ_SYSTEM_LIBDAV1D', 'dav1d >= 0.1.1', 83 | + when='--with-system-av1') 84 | + 85 | +@depends(system_libaom_info, system_libdav1d_info) 86 | +def system_av1(system_libaom_info, system_libdav1d_info): 87 | + has_av1_libs = False 88 | + if system_libaom_info and system_libdav1d_info: 89 | + has_av1_libs = True 90 | + return has_av1_libs 91 | + 92 | + 93 | +@depends(target, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment) 94 | def dav1d_asm(target): 95 | if target.cpu in ("aarch64", "x86", "x86_64"): 96 | return True 97 | 98 | 99 | -@depends(target, when=av1 & compile_environment) 100 | +@depends(target, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment) 101 | def dav1d_nasm(target): 102 | if target.cpu in ("x86", "x86_64"): 103 | return namespace(version="2.14", what="AV1") 104 | @@ -576,6 +591,7 @@ set_config("MOZ_DAV1D_ASM", dav1d_asm) 105 | set_define("MOZ_DAV1D_ASM", dav1d_asm) 106 | set_config("MOZ_AV1", av1) 107 | set_define("MOZ_AV1", av1) 108 | +set_config("MOZ_SYSTEM_AV1", depends_if(system_av1)(lambda _: True)) 109 | 110 | # Built-in fragmented MP4 support. 111 | # ============================================================== 112 | -- 113 | 2.31.1 114 | 115 | -------------------------------------------------------------------------------- /0021-bmo-1516081-Disable-watchdog-during-PGO-builds.patch: -------------------------------------------------------------------------------- 1 | From b67daf06346038ed243b68e916126fa373043b15 Mon Sep 17 00:00:00 2001 2 | From: Thomas Deutschmann 3 | Date: Mon, 6 Apr 2020 20:27:06 +0200 4 | Subject: [PATCH 21/35] bmo#1516081: Disable watchdog during PGO builds 5 | 6 | Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1516081 7 | Signed-off-by: Thomas Deutschmann 8 | --- 9 | build/moz.configure/lto-pgo.configure | 4 ++-- 10 | toolkit/components/terminator/nsTerminator.cpp | 7 +++++++ 11 | 2 files changed, 9 insertions(+), 2 deletions(-) 12 | 13 | diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure 14 | index 2f32b11588..d55abb4934 100644 15 | --- a/build/moz.configure/lto-pgo.configure 16 | +++ b/build/moz.configure/lto-pgo.configure 17 | @@ -85,7 +85,7 @@ set_config("PGO_PROFILE_PATH", pgo_profile_path) 18 | def pgo_flags(compiler, profdata, target_is_windows): 19 | if compiler.type == "gcc": 20 | return namespace( 21 | - gen_cflags=["-fprofile-generate"], 22 | + gen_cflags=["-fprofile-generate", "-DMOZ_PROFILE_INSTRUMENTATION"], 23 | gen_ldflags=["-fprofile-generate"], 24 | use_cflags=["-fprofile-use", "-fprofile-correction", "-Wcoverage-mismatch"], 25 | use_ldflags=["-fprofile-use"], 26 | @@ -99,7 +99,7 @@ def pgo_flags(compiler, profdata, target_is_windows): 27 | else: 28 | gen_ldflags = ["-fprofile-generate"] 29 | 30 | - gen_cflags = [prefix + "-fprofile-generate"] 31 | + gen_cflags = [prefix + "-fprofile-generate", "-DMOZ_PROFILE_INSTRUMENTATION"] 32 | if target_is_windows: 33 | # native llvm-profdata.exe on Windows can't read profile data 34 | # if name compression is enabled (which cross-compiling enables 35 | diff --git a/toolkit/components/terminator/nsTerminator.cpp b/toolkit/components/terminator/nsTerminator.cpp 36 | index c35dfed444..98dfe42369 100644 37 | --- a/toolkit/components/terminator/nsTerminator.cpp 38 | +++ b/toolkit/components/terminator/nsTerminator.cpp 39 | @@ -418,6 +418,13 @@ void nsTerminator::StartWatchdog() { 40 | } 41 | #endif 42 | 43 | + // Disable watchdog for PGO train builds - writting profile information at 44 | + // exit may take time and it is better to make build hang rather than 45 | + // silently produce poorly performing binary. 46 | +#ifdef MOZ_PROFILE_INSTRUMENTATION 47 | + crashAfterMS = INT32_MAX; 48 | +#endif 49 | + 50 | UniquePtr options(new Options()); 51 | const PRIntervalTime ticksDuration = PR_MillisecondsToInterval(1000); 52 | options->crashAfterTicks = crashAfterMS / ticksDuration; 53 | -- 54 | 2.29.2 55 | 56 | -------------------------------------------------------------------------------- /0029-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch: -------------------------------------------------------------------------------- 1 | From 101fa23ea5e98a3245bc48e6f8c3caa3c491b09e Mon Sep 17 00:00:00 2001 2 | From: Thomas Deutschmann 3 | Date: Sat, 29 Aug 2020 22:30:59 +0200 4 | Subject: [PATCH 29/40] LTO: Only enable LTO for Rust when complete build uses 5 | LTO 6 | 7 | Signed-off-by: Thomas Deutschmann 8 | --- 9 | config/makefiles/rust.mk | 2 ++ 10 | 1 file changed, 2 insertions(+) 11 | 12 | diff --git a/config/makefiles/rust.mk b/config/makefiles/rust.mk 13 | index 84d2adc6af..20b64c2e07 100644 14 | --- a/config/makefiles/rust.mk 15 | +++ b/config/makefiles/rust.mk 16 | @@ -56,6 +56,7 @@ endif 17 | # These flags are passed via `cargo rustc` and only apply to the final rustc 18 | # invocation (i.e., only the top-level crate, not its dependencies). 19 | cargo_rustc_flags = $(CARGO_RUSTCFLAGS) 20 | +ifdef MOZ_LTO 21 | ifndef DEVELOPER_OPTIONS 22 | ifndef MOZ_DEBUG_RUST 23 | # Enable link-time optimization for release builds, but not when linking 24 | @@ -70,6 +71,7 @@ RUSTFLAGS += -Cembed-bitcode=yes 25 | endif 26 | endif 27 | endif 28 | +endif 29 | 30 | ifdef CARGO_INCREMENTAL 31 | export CARGO_INCREMENTAL 32 | -- 33 | 2.28.0 34 | 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | These files are under the MPL 2, as below. However, please note that you 2 | are not granted any trademark rights or licenses to the trademarks of the 3 | Mozilla Foundation or any party, including without limitation the 4 | Firefox name or logo. 5 | 6 | For more information, see: http://www.mozilla.org/foundation/licensing.html 7 | 8 | This Source Code Form is subject to the terms of the Mozilla Public 9 | License, v. 2.0. If a copy of the MPL was not distributed with this 10 | file, You can obtain one at http://mozilla.org/MPL/2.0/. 11 | -------------------------------------------------------------------------------- /PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: torvic9 AT mailbox DOT org 2 | # based on ideas by Waterfox and firefox-kde-opensuse 3 | 4 | pkgname=plasmafox 5 | _pkgname=firefox 6 | pkgver=89.0 7 | pkgrel=1 8 | pkgdesc="Standalone web browser based on Firefox with better KDE integration" 9 | arch=('i686' 'x86_64') 10 | license=('MPL' 'GPL' 'LGPL') 11 | url="https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox" 12 | 13 | depends=(gtk3 libxt mime-types dbus-glib ffmpeg nss ttf-font libpulse 14 | kplasmafoxhelper libvpx icu nspr dav1d aom harfbuzz graphite 15 | libwebp) 16 | 17 | makedepends=('unzip' 'zip' 'diffutils' 'python-setuptools' 'python-psutil' 18 | 'python' 'yasm' 'mesa' 'imake' 'xorg-server-xvfb' 'libpulse' 19 | 'inetutils' 'autoconf2.13' 'rust' 'cargo' 'llvm' 'clang' 'gtk2' 'libevent' 20 | 'nodejs' 'cbindgen' 'nasm' 'zlib' 'lld' 'python-zstandard' 'dump_syms') 21 | 22 | optdepends=('networkmanager: Location detection via available WiFi networks' 23 | 'speech-dispatcher: Text-to-Speech' 24 | 'libnotify: Notification integration' 25 | 'libdbusmenu-gtk3: global menu support') 26 | 27 | provides=("plasmafox=${pkgver}") 28 | #conflicts=('plasmafox-esr') 29 | #_patchrev=4fd43e0d4a8f 30 | _mbrev=2389 31 | _patchrevsuse=aedbca44a8a2958947bed31f28e3083ac0496f4a 32 | _pfdate=20210531 33 | options=('!emptydirs' '!strip') 34 | #_patchurl=http://www.rosenauer.org/hg/mozilla/raw-file/$_patchrev 35 | _patchurl=https://raw.githubusercontent.com/openSUSE/firefox-maintenance/$_patchrevsuse 36 | source=(https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/$_pkgname-$pkgver.source.tar.xz{,.asc} 37 | mozconfig 38 | plasmafox.desktop 39 | vendor.js 40 | kde.js 41 | pgo-fix-missing-kdejs.patch 42 | add_missing_pgo_rule.patch 43 | #use-mcpu-native-with-lto-pgo.patch 44 | # arch patches 45 | 0001-Use-remoting-name-for-GDK-application-names.patch 46 | # Plasmafox patchset 47 | plasmafox-${_pfdate}.patch 48 | # Firefox patchset 49 | firefox-kde-$_patchrevsuse.patch::$_patchurl/firefox/firefox-kde.patch 50 | # Gecko/toolkit patchset 51 | mozilla-kde-$_patchrevsuse.patch::$_patchurl/mozilla-kde.patch 52 | mozilla-nongnome-proxies-$_patchrevsuse.patch::$_patchurl/mozilla-nongnome-proxies.patch 53 | # Ubuntu 54 | #unity-menubar-r${_mbrev}.patch 55 | fix-hidden-buttons-with-csd-menubar.patch 56 | reduce-rust-debuginfo.patch 57 | # System Libs 58 | 0004-bmo-847568-Support-system-harfbuzz.patch 59 | 0005-bmo-847568-Support-system-graphite2.patch 60 | 0006-bmo-1559213-Support-system-av1.patch 61 | # gentoo patches 62 | 0021-bmo-1516081-Disable-watchdog-during-PGO-builds.patch 63 | 0029-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch 64 | # artwork 65 | about-logo.png 66 | about-logo@2x.png 67 | about-wordmark.svg 68 | plasmafox-wordmark.svg 69 | about.png 70 | default{16,22,24,32,48,64,128,256}.png 71 | # additions 72 | plasmafox{,-common}.profile 73 | plasmafox.psd 74 | ) 75 | install=plasmafox.install 76 | sha256sums=('db43d7d5796455051a5b847f6daa3423393803c9288c8b6d7f1186f5e2e0a90a' 77 | 'SKIP' 78 | '306610d3cfb8cef3c618e8d37074df3f930ca8df362132893f764802ac4493e8' 79 | '6897dc8a9ef2a4d1b776e1ffb848c7db2653b4eee87585f62ef002443d58a096' 80 | '97a9f81f791abce42880232140d1834d6c7cc166ca3cf16d49476657e20e23fa' 81 | 'b8cc5f35ec35fc96ac5c5a2477b36722e373dbb57eba87eb5ad1276e4df7236d' 82 | '2214d0df276fc3387aaf2b0facb47960783ea23c4673d9dcbd3a5daacb0f4c91' 83 | 'f9067f62a25a7a77276e15f91cc9e7ba6576315345cfc6347b1b2e884becdb0c' 84 | 'c585ba84b476605fffe4b1aa188f9744afe37c528b39ecd5cbea37681e86eeba' 85 | '6ca7ff71cb4a7c72eca39769afe8e18ec81cba36d9b570df15fc243867049243' 86 | '32f1ca9b4f462a512b350ca868bb562efc5e424206c00eea909514992fcd5e23' 87 | '0ae5bce3da13b7f58e37be6d7115bef323256d776195279592f4371179497f8a' 88 | '9843662fd9b766801a70bdef22bb996a1abd9d7c3781f1fb58b7034e575350a1' 89 | 'fbd95cbcbc32673ef549b43b0d2de3ef0ef4fa303b6336e64993f2c8a73264e4' 90 | '482935782429b30f5e1581347a9a798705068c40f20bf4eee9304a254fd81bc8' 91 | '923a9373afc019202c0c07a7cba47042e9ebc78cc2605baecd99602beeaf82ed' 92 | '9feeea614ffe0bc9493ab2c3adc68aa547b2ee99f59ad15376356476b93571b8' 93 | '7c647432987edfa27926f3a7518961f098c121a91cf377f37194f5e547fcf248' 94 | '92d307d1592b939ee50f1fd2d951cdf2dcebd7e7a1c6511ffe25903e7428f2d9' 95 | '82129e30512477232556e939ee8ed64b999b0e095001d043b121c5e5d334692c' 96 | '1034a3edda8ffa889fcb4dcf57cb93f8f296f7c37e5cfcf1e5c6071a6f8f4261' 97 | 'f908e1ddf9399344dc0d6163d9e23b5966c656cd35d614732e8a1dee7f02f7b4' 98 | '6f791b85debe8c12d542b2a9f1b6851aea7df28a2f52e762e09b5db8ec11a349' 99 | 'a450b5aee59b15cba4a32e641d189d6d3641965b3916f769362701bbbdb6ba1a' 100 | 'bdb5ff6cf072421a7bfd5d6d525b01ecb449dca0bf2bbe1830c3060571ce7718' 101 | '5bb9b27c16e09afbd7434840a022da7b83aa10590be9ec3ed150a92c2f420c22' 102 | '59b6762531cb68ff6e53a162b1c78dfe0db0996f1f3b84487c4e380b940ef939' 103 | 'd0d4cee53baf8cee3e6dcf2d5b508060ffe9ba45f4f7e7b73e8a00258e2e4c1b' 104 | 'c85e92938aae8edabdae08dd38799048385fd21458bbc130baab30cef1558ace' 105 | '2d3d7f408c6d5a589f737f594028b85bcb372f7738600b629c5c9b3620115256' 106 | '33226603f128928c0f5a191016793ab2792d8603c5aacd03d83f001c3891872f' 107 | 'ad4aadfe095ad46d43b66fc6e686511c7c4a81d452fb71f2eb4775936fb0179e' 108 | '7e2062a8df9e9e28c51ff6435872a688cff040fdfa38ef93bf92e52d676e6dbc' 109 | '0a646abac6405b2e5d3bd0f13dc003e0ed45e1ad5856079274eb2936fa6d321b' 110 | '83e3f72eb8220a9962791487faa399e7f1fe19e3863cab5f28e83416e6ac2374' 111 | '022e47dece0dcc8a593a17958fc89bd135af9aa0e4e7f2c1e27dc2573b3949aa' 112 | '22d33cd66a1e1a8ff2ae086de145490b22c8cc1cb748f0273462a70c563e0b91') 113 | 114 | validpgpkeys=(14F26682D0916CDD81E37B6D61B7B526D98F0353) 115 | 116 | prepare() { 117 | #cd mozilla-unified 118 | cd firefox-${pkgver} 119 | cp "$srcdir/mozconfig" .mozconfig 120 | sed -i 's/\"BrowserApplication\"\, \"firefox\"/\"BrowserApplication\"\, \"plasmafox\"/g' $srcdir/firefox-kde-$_patchrevsuse.patch 121 | sed -i 's/kmozillahelper/kplasmafoxhelper/g' $srcdir/mozilla-kde-$_patchrevsuse.patch 122 | 123 | # set number of cores directly 124 | sed -i -e "s/multiprocessing.cpu_count()/$(nproc)/" build/moz.configure/lto-pgo.configure 125 | 126 | # multilocale 127 | # mkdir $srcdir/mozbuild 128 | # ln -sf /mnt/sparelin/l10n-base $srcdir/mozbuild/l10n-central || exit 4 129 | # echo "ac_add_options --with-l10n-base=${srcdir}/mozbuild/l10n-central" >> .mozconfig 130 | 131 | # Arch patches 132 | echo "---- Arch patches" 133 | patch -Np1 -i ../0001-Use-remoting-name-for-GDK-application-names.patch 134 | 135 | # KDE patches (W. Rosenauer) 136 | echo "---- Patching for KDE" 137 | patch -Np1 -i ../mozilla-nongnome-proxies-$_patchrevsuse.patch 138 | patch -Np1 -i ../mozilla-kde-$_patchrevsuse.patch 139 | patch -Np1 -i ../firefox-kde-$_patchrevsuse.patch 140 | 141 | # add globalmenu support 142 | echo "---- Ubuntu patches" 143 | #patch -Np1 -i ../unity-menubar-r${_mbrev}.patch 144 | patch -Np1 -i ../fix-hidden-buttons-with-csd-menubar.patch 145 | patch -Np1 -i ../reduce-rust-debuginfo.patch 146 | 147 | # add missing file Makefile for pgo builds 148 | patch -Np1 -i ../pgo-fix-missing-kdejs.patch 149 | patch -Np1 -i ../add_missing_pgo_rule.patch 150 | #patch -Np1 -i ../use-mcpu-native-with-lto-pgo.patch 151 | 152 | # gentoo patches 153 | echo "---- Gentoo patches" 154 | patch -Np1 -i ../0021-bmo-1516081-Disable-watchdog-during-PGO-builds.patch 155 | patch -Np1 -i ../0029-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch 156 | 157 | # use more system libs 158 | echo "---- Patching for system libs" 159 | patch -Np1 -i ../0004-bmo-847568-Support-system-harfbuzz.patch 160 | patch -Np1 -i ../0005-bmo-847568-Support-system-graphite2.patch 161 | patch -Np1 -i ../0006-bmo-1559213-Support-system-av1.patch 162 | 163 | # Plasmafox patches 164 | echo "---- Plasmafox patches" 165 | patch -Np1 -i ../plasmafox-${_pfdate}.patch 166 | 167 | # Artwork 168 | cp "$srcdir/about-wordmark.svg" ./browser/branding/unofficial/content/ 169 | cp "$srcdir/plasmafox-wordmark.svg" ./browser/branding/unofficial/content/ 170 | cp "$srcdir/about-logo.png" ./browser/branding/unofficial/content/ 171 | cp "$srcdir/about-logo@2x.png" ./browser/branding/unofficial/content/ 172 | cp "$srcdir/about.png" ./browser/branding/unofficial/ 173 | for i in 16 22 24 32 48 64 128 256; do 174 | cp "$srcdir/default$i.png" browser/branding/unofficial/ 175 | done 176 | } 177 | 178 | build() { 179 | cd firefox-${pkgver} 180 | export MOZ_NOSPAM=1 181 | export MOZBUILD_STATE_PATH="$srcdir/mozbuild" 182 | export MOZ_ENABLE_FULL_SYMBOLS=1 183 | export STRIP=/bin/true 184 | export MACH_USE_SYSTEM_PYTHON=1 185 | 186 | ulimit -n 4096 187 | 188 | # Do PGO 189 | export DISPLAY=:92 190 | xvfb-run -a -n 92 -s "-screen 0 1920x1080x24 -nolisten tcp" \ 191 | ./mach build 192 | 193 | ./mach buildsymbols 194 | 195 | # multilocale 196 | #export MOZ_CHROME_MULTILOCALE="de fr pl" 197 | #for AB_CD in $MOZ_CHROME_MULTILOCALE; do 198 | # ./mach build chrome-$AB_CD 199 | #done 200 | } 201 | 202 | package() { 203 | #cd mozilla-unified 204 | cd firefox-${pkgver} 205 | 206 | cp "$srcdir/kde.js" obj-x86_64-pc-linux-gnu/dist/bin/defaults/pref 207 | 208 | #AB_CD=multi ./mach package 209 | #DESTDIR="$pkgdir" AB_CD=multi ./mach install 210 | DESTDIR="$pkgdir" ./mach install 211 | 212 | install -Dvm644 "$srcdir/vendor.js" "$pkgdir/usr/lib/plasmafox/browser/defaults/preferences/vendor.js" 213 | install -Dvm644 "$srcdir/kde.js" "$pkgdir/usr/lib/plasmafox/browser/defaults/preferences/kde.js" 214 | 215 | install -Dvm644 "$srcdir/plasmafox.profile" "$pkgdir/usr/lib/plasmafox/distribution/plasmafox.profile" 216 | install -Dvm644 "$srcdir/plasmafox-common.profile" "$pkgdir/usr/lib/plasmafox/distribution/plasmafox-common.profile" 217 | install -Dvm644 "$srcdir/plasmafox.psd" "$pkgdir/usr/lib/plasmafox/distribution/plasmafox.psd" 218 | 219 | _distini="$pkgdir/usr/lib/plasmafox/distribution/distribution.ini" 220 | install -Dvm644 /dev/stdin "$_distini" < 2 | 5 | 6 | 21 | 23 | 24 | 26 | image/svg+xml 27 | 29 | 30 | 31 | 32 | 34 | 54 | 77 | 87 | 92 | 97 | 102 | 107 | 112 | 117 | 122 | 127 | 132 | 137 | 138 | 143 | 148 | 153 | 158 | 163 | 168 | 173 | 178 | 183 | 184 | -------------------------------------------------------------------------------- /about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/torvic9/plasmafox/50959f4da918a35f7b84c98e1eb3eb334bbc8c7d/about.png -------------------------------------------------------------------------------- /add_missing_pgo_rule.patch: -------------------------------------------------------------------------------- 1 | --- a/Makefile.in 2015-01-23 06:59:53.000000000 +0100 2 | +++ b/Makefile.in 2015-02-11 10:34:04.789389729 +0100 3 | @@ -323,3 +323,6 @@ 4 | endif 5 | 6 | # There used to be build interdependencies here. They are now in config/recurse.mk 7 | + 8 | +pgo-profile-run: 9 | + $(PYTHON) $(topsrcdir)/build/pgo/profileserver.py $(EXTRA_TEST_ARGS) 10 | -------------------------------------------------------------------------------- /default128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/torvic9/plasmafox/50959f4da918a35f7b84c98e1eb3eb334bbc8c7d/default128.png -------------------------------------------------------------------------------- /default16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/torvic9/plasmafox/50959f4da918a35f7b84c98e1eb3eb334bbc8c7d/default16.png -------------------------------------------------------------------------------- /default22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/torvic9/plasmafox/50959f4da918a35f7b84c98e1eb3eb334bbc8c7d/default22.png -------------------------------------------------------------------------------- /default24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/torvic9/plasmafox/50959f4da918a35f7b84c98e1eb3eb334bbc8c7d/default24.png -------------------------------------------------------------------------------- /default256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/torvic9/plasmafox/50959f4da918a35f7b84c98e1eb3eb334bbc8c7d/default256.png -------------------------------------------------------------------------------- /default32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/torvic9/plasmafox/50959f4da918a35f7b84c98e1eb3eb334bbc8c7d/default32.png -------------------------------------------------------------------------------- /default48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/torvic9/plasmafox/50959f4da918a35f7b84c98e1eb3eb334bbc8c7d/default48.png -------------------------------------------------------------------------------- /default64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/torvic9/plasmafox/50959f4da918a35f7b84c98e1eb3eb334bbc8c7d/default64.png -------------------------------------------------------------------------------- /fix-hidden-buttons-with-csd-menubar.patch: -------------------------------------------------------------------------------- 1 | Fix window buttons in case CSD when globalmenu is active 2 | (taken from firefox-kde-opensuse) 3 | 4 | --- a/browser/base/content/browser.css 5 | +++ b/browser/base/content/browser.css 6 | @@ -334,5 +334,5 @@ toolbar[customizing] #whats-new-menu-button { 7 | %ifdef MENUBAR_CAN_AUTOHIDE 8 | #toolbar-menubar[autohide=true]:not([inactive]) + #TabsToolbar > .titlebar-buttonbox-container { 9 | - visibility: hidden; 10 | + visibility: visible; 11 | } 12 | %endif 13 | 14 | -------------------------------------------------------------------------------- /kde.js: -------------------------------------------------------------------------------- 1 | pref("browser.preferences.instantApply", false); 2 | pref("browser.backspace_action", 0); 3 | -------------------------------------------------------------------------------- /mozconfig: -------------------------------------------------------------------------------- 1 | ac_add_options --enable-application=browser 2 | 3 | ac_add_options --prefix=/usr 4 | ac_add_options --enable-hardening 5 | ac_add_options --enable-optimize 6 | ac_add_options --enable-rust-simd 7 | ac_add_options --enable-release 8 | ac_add_options --enable-linker=lld 9 | ac_add_options --enable-lto 10 | ac_add_options --disable-elf-hack 11 | # ac_add_options --disable-official-branding/--enable-official-branding 12 | ac_add_options --with-branding=browser/branding/unofficial 13 | ac_add_options --enable-update-channel=release 14 | ac_add_options --with-app-name=plasmafox 15 | ac_add_options --with-app-basename=Plasmafox 16 | ac_add_options --with-distribution-id=org.plasmafox 17 | ac_add_options --with-unsigned-addon-scopes=app,system 18 | ac_add_options --allow-addon-sideload 19 | # ac_add_options --enable-ui-locale=en-US 20 | 21 | export MOZ_APP_DISPLAYNAME=Plasmafox 22 | export MOZ_APP_VENDOR=Plasmafox 23 | export MOZ_APP_REMOTINGNAME=Plasmafox 24 | 25 | export MOZ_UPDATE_CHANNEL=release 26 | export MOZ_ADDON_SIGNING=1 27 | export MOZ_REQUIRE_SIGNING=1 28 | 29 | export STRIP_FLAGS="--strip-debug --strip-unneeded" 30 | 31 | # PGO 32 | ac_add_options MOZ_PGO=1 33 | mk_add_options PROFILE_GEN_SCRIPT='EXTRA_TEST_ARGS=10 $(MAKE) -C $(MOZ_OBJDIR) pgo-profile-run' 34 | 35 | # System libraries 36 | ac_add_options --with-system-nspr 37 | ac_add_options --with-system-nss 38 | ac_add_options --with-system-icu 39 | ac_add_options --with-system-zlib 40 | ac_add_options --with-system-libvpx 41 | ac_add_options --with-system-harfbuzz 42 | ac_add_options --with-system-graphite2 43 | ac_add_options --with-system-av1 44 | ac_add_options --with-system-webp 45 | ac_add_options --with-system-ffi 46 | #ac_add_options --enable-system-sqlite 47 | ac_add_options --enable-system-pixman 48 | ac_add_options --disable-libproxy 49 | ac_add_options --with-system-libevent 50 | 51 | # Features 52 | ac_add_options --enable-default-toolkit=cairo-gtk3-wayland 53 | ac_add_options --enable-alsa 54 | ac_add_options --enable-strip 55 | ac_add_options --disable-crashreporter 56 | ac_add_options --disable-updater 57 | ac_add_options --disable-wmf 58 | ac_add_options --disable-tests 59 | ac_add_options --disable-gpsd 60 | ac_add_options --disable-synth-speechd 61 | #ac_add_options --disable-debug 62 | ac_add_options --disable-debug-symbols 63 | ac_add_options --disable-debug-js-modules 64 | ac_add_options --disable-webrtc 65 | ac_add_options --disable-cdp 66 | ac_add_options --disable-trace-logging 67 | ac_add_options --disable-rust-tests 68 | ac_add_options --disable-ipdl-tests 69 | ac_add_options --disable-necko-wifi 70 | ac_add_options --disable-webspeech 71 | ac_add_options --disable-webspeechtestbackend 72 | 73 | -------------------------------------------------------------------------------- /patchset/0001-branding-and-dialogs.patch: -------------------------------------------------------------------------------- 1 | From 165d6e66a11cc3359681862faa79e55d6a694746 Mon Sep 17 00:00:00 2001 2 | From: torvic9 3 | Date: Sat, 22 Feb 2020 11:32:10 +0100 4 | Subject: [PATCH] branding and dialogs 5 | 6 | Signed-off-by: torvic9 7 | --- 8 | browser/base/content/aboutDialog.css | 6 +++--- 9 | browser/base/content/aboutDialog.xhtml | 8 ++++---- 10 | browser/base/content/overrides/app-license.html | 2 +- 11 | browser/branding/branding-common.mozbuild | 3 +++ 12 | browser/branding/unofficial/configure.sh | 4 +++- 13 | browser/branding/unofficial/content/aboutDialog.css | 2 +- 14 | browser/branding/unofficial/locales/en-US/brand.dtd | 8 ++++---- 15 | browser/branding/unofficial/locales/en-US/brand.ftl | 12 ++++++------ 16 | .../unofficial/locales/en-US/brand.properties | 10 +++++----- 17 | browser/branding/unofficial/pref/firefox-branding.js | 6 +++--- 18 | browser/installer/package-manifest.in | 3 +++ 19 | browser/locales/en-US/browser/aboutDialog.ftl | 2 +- 20 | .../shared/privatebrowsing/aboutPrivateBrowsing.css | 2 +- 21 | 13 files changed, 38 insertions(+), 30 deletions(-) 22 | 23 | diff --git a/browser/base/content/aboutDialog.css b/browser/base/content/aboutDialog.css 24 | index 7dbb248c1f..7ce119d865 100644 25 | --- a/browser/base/content/aboutDialog.css 26 | +++ b/browser/base/content/aboutDialog.css 27 | @@ -13,12 +13,12 @@ 28 | 29 | #rightBox { 30 | background-image: url("chrome://branding/content/about-wordmark.svg"); 31 | background-repeat: no-repeat; 32 | - background-size: 288px auto; 33 | + background-size: 108px auto; 34 | /* padding-top creates room for the wordmark */ 35 | - padding-top: 38px; 36 | - margin-top: 20px; 37 | + padding-top: 30px; 38 | + margin-top: 18px; 39 | } 40 | 41 | #rightBox:-moz-locale-dir(rtl) { 42 | background-position: 100% 0; 43 | diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml 44 | index f7e10f2632..94418f97bc 100644 45 | --- a/browser/base/content/aboutDialog.xhtml 46 | +++ b/browser/base/content/aboutDialog.xhtml 47 | @@ -127,19 +127,19 @@ 48 | #endif 49 | 57 | 58 | - 62 | 63 | - 68 | 69 | 70 | 71 | diff --git a/browser/base/content/overrides/app-license.html b/browser/base/content/overrides/app-license.html 72 | index e7a158c792..2730e9af0c 100644 73 | --- a/browser/base/content/overrides/app-license.html 74 | +++ b/browser/base/content/overrides/app-license.html 75 | @@ -1,6 +1,6 @@ 76 | 79 |

Binaries of this product have been made available to you by the 80 | - Mozilla Project under the Mozilla 81 | + Plasmafox Project under the Mozilla 82 | Public License 2.0 (MPL). Know your rights.

83 | diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild 84 | index 908553b8b9..9fb2702eb2 100644 85 | --- a/browser/branding/branding-common.mozbuild 86 | +++ b/browser/branding/branding-common.mozbuild 87 | @@ -26,8 +26,11 @@ def FirefoxBranding(): 88 | elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk': 89 | FINAL_TARGET_FILES.chrome.icons.default += [ 90 | 'default128.png', 91 | 'default16.png', 92 | + 'default22.png', 93 | + 'default24.png', 94 | + 'default256.png', 95 | 'default32.png', 96 | 'default48.png', 97 | 'default64.png', 98 | ] 99 | diff --git a/browser/branding/unofficial/configure.sh b/browser/branding/unofficial/configure.sh 100 | index edd3bd3e86..c61c85c56d 100644 101 | --- a/browser/branding/unofficial/configure.sh 102 | +++ b/browser/branding/unofficial/configure.sh 103 | @@ -1,5 +1,7 @@ 104 | # This Source Code Form is subject to the terms of the Mozilla Public 105 | # License, v. 2.0. If a copy of the MPL was not distributed with this 106 | # file, You can obtain one at http://mozilla.org/MPL/2.0/. 107 | 108 | -MOZ_APP_DISPLAYNAME=Nightly 109 | +MOZ_APP_DISPLAYNAME=Plasmafox 110 | +MOZ_APP_PROFILE=Plasmafox 111 | + 112 | diff --git a/browser/branding/unofficial/content/aboutDialog.css b/browser/branding/unofficial/content/aboutDialog.css 113 | index 229d7bcea1..284c60f4ad 100644 114 | --- a/browser/branding/unofficial/content/aboutDialog.css 115 | +++ b/browser/branding/unofficial/content/aboutDialog.css 116 | @@ -47,7 +47,7 @@ 117 | padding-top: 64px; 118 | } 119 | 120 | #bottomBox { 121 | - background-color: hsla(235, 43%, 10%, .5); 122 | + background-color: rgba(10,17,37,.4); 123 | padding: 15px 10px 15px; 124 | } 125 | diff --git a/browser/branding/unofficial/locales/en-US/brand.dtd b/browser/branding/unofficial/locales/en-US/brand.dtd 126 | index 0b781d49a3..fdca5731a9 100644 127 | --- a/browser/branding/unofficial/locales/en-US/brand.dtd 128 | +++ b/browser/branding/unofficial/locales/en-US/brand.dtd 129 | @@ -1,11 +1,11 @@ 130 | 133 | 134 | - 135 | - 136 | - 137 | + 138 | + 139 | + 140 | 143 | - 144 | + 145 | diff --git a/browser/branding/unofficial/locales/en-US/brand.ftl b/browser/branding/unofficial/locales/en-US/brand.ftl 146 | index 51e5bfa..bdc5acb 100644 147 | --- a/browser/branding/unofficial/locales/en-US/brand.ftl 148 | +++ b/browser/branding/unofficial/locales/en-US/brand.ftl 149 | @@ -15,12 +15,12 @@ 150 | ## 151 | ## For further details, consult: 152 | ## https://mozilla-l10n.github.io/styleguides/mozilla_general/#brands-copyright-and-trademark 153 | 154 | --brand-shorter-name = Nightly 155 | --brand-short-name = Nightly 156 | --brand-full-name = Nightly 157 | +-brand-shorter-name = Plasmafox 158 | +-brand-short-name = Plasmafox 159 | +-brand-full-name = Plasmafox 160 | # This brand name can be used in messages where the product name needs to 161 | # remain unchanged across different versions (Nightly, Beta, etc.). 162 | --brand-product-name = Firefox 163 | --vendor-short-name = Mozilla 164 | -trademarkInfo = { " " } 165 | +-brand-product-name = Plasmafox 166 | +-vendor-short-name = Plasmafox 167 | +trademarkInfo = { "Plasmafox is not associated with Mozilla" } 168 | --- a/browser/branding/unofficial/locales/en-US/brand.properties 2021-05-27 22:29:43.000000000 +0200 169 | +++ b/browser/branding/unofficial/locales/en-US/brand.properties 2021-05-31 11:32:47.214271601 +0200 170 | @@ -1,12 +1,12 @@ 171 | # This Source Code Form is subject to the terms of the Mozilla Public 172 | # License, v. 2.0. If a copy of the MPL was not distributed with this 173 | # file, You can obtain one at http://mozilla.org/MPL/2.0/. 174 | 175 | -brandShorterName=Nightly 176 | -brandShortName=Nightly 177 | -brandFullName=Nightly 178 | +brandShorterName=Plasmafox 179 | +brandShortName=Plasmafox 180 | +brandFullName=Plasmafox 181 | # LOCALIZATION NOTE(brandProductName): 182 | # This brand name can be used in messages where the product name needs to 183 | # remain unchanged across different versions (Nightly, Beta, etc.). 184 | -brandProductName=Firefox 185 | -vendorShortName=Mozilla 186 | +brandProductName=Plasmafox 187 | +vendorShortName=Plasmafox 188 | diff --git a/browser/branding/unofficial/pref/firefox-branding.js b/browser/branding/unofficial/pref/firefox-branding.js 189 | index f22dd0a51c..a98f7e3ecb 100644 190 | --- a/browser/branding/unofficial/pref/firefox-branding.js 191 | +++ b/browser/branding/unofficial/pref/firefox-branding.js 192 | @@ -4,20 +4,20 @@ 193 | 194 | // This file contains branding-specific prefs. 195 | 196 | pref("startup.homepage_override_url", ""); 197 | -pref("startup.homepage_welcome_url", ""); 198 | +pref("startup.homepage_welcome_url", "https://github.com/torvic9/plasmafox"); 199 | pref("startup.homepage_welcome_url.additional", ""); 200 | // The time interval between checks for a new version (in seconds) 201 | pref("app.update.interval", 86400); // 24 hours 202 | // Give the user x seconds to react before showing the big UI. default=24 hours 203 | pref("app.update.promptWaitTime", 86400); 204 | // URL user can browse to manually if for some reason all update installation 205 | // attempts fail. 206 | -pref("app.update.url.manual", "https://nightly.mozilla.org"); 207 | +pref("app.update.url.manual", "https://github.com/torvic9/plasmafox"); 208 | // A default value for the "More information about this update" link 209 | // supplied in the "An update is available" page of the update wizard. 210 | -pref("app.update.url.details", "https://nightly.mozilla.org"); 211 | +pref("app.update.url.details", "https://github.com/torvic9/plasmafox"); 212 | 213 | // The number of days a binary is permitted to be old 214 | // without checking for an update. This assumes that 215 | // app.update.checkInstallTime is true. 216 | diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in 217 | index 7054749357..ce49fd65cc 100644 218 | --- a/browser/installer/package-manifest.in 219 | +++ b/browser/installer/package-manifest.in 220 | @@ -253,12 +253,15 @@ 221 | @RESPATH@/chrome/recording.manifest 222 | @RESPATH@/chrome/recording/* 223 | #ifdef MOZ_GTK 224 | @RESPATH@/browser/chrome/icons/default/default16.png 225 | +@RESPATH@/browser/chrome/icons/default/default22.png 226 | +@RESPATH@/browser/chrome/icons/default/default24.png 227 | @RESPATH@/browser/chrome/icons/default/default32.png 228 | @RESPATH@/browser/chrome/icons/default/default48.png 229 | @RESPATH@/browser/chrome/icons/default/default64.png 230 | @RESPATH@/browser/chrome/icons/default/default128.png 231 | +@RESPATH@/browser/chrome/icons/default/default256.png 232 | #endif 233 | @RESPATH@/browser/features/* 234 | 235 | ; [DevTools Startup Files] 236 | diff --git a/browser/locales/en-US/browser/aboutDialog.ftl b/browser/locales/en-US/browser/aboutDialog.ftl 237 | index 5737302831..5b8aeb7a8f 100644 238 | --- a/browser/locales/en-US/browser/aboutDialog.ftl 239 | +++ b/browser/locales/en-US/browser/aboutDialog.ftl 240 | @@ -38,9 +38,9 @@ channel-description = You are currently on the is a working together to keep the Web open, public and accessible to all. 244 | 245 | -community-2 = { -brand-short-name } is designed by , a working together to keep the Web open, public and accessible to all. 246 | +community-2 = { -brand-short-name } is designed by , to be used with KDE/Plasma on Linux distros that are compatible with Arch. 247 | 248 | helpus = Want to help? or 249 | 250 | bottomLinks-license = Licensing Information 251 | diff --git a/browser/branding/unofficial/content/jar.mn b/browser/branding/unofficial/content/jar.mn 252 | index 68b2bfd8e5..b2e8b2369c 100644 253 | --- a/browser/branding/unofficial/content/jar.mn 254 | +++ b/browser/branding/unofficial/content/jar.mn 255 | @@ -7,9 +7,9 @@ browser.jar: 256 | content/branding/about.png 257 | content/branding/about-logo.png 258 | content/branding/about-logo@2x.png 259 | content/branding/about-wordmark.svg 260 | - content/branding/firefox-wordmark.svg 261 | + content/branding/plasmafox-wordmark.svg 262 | content/branding/aboutlogins.svg 263 | content/branding/icon16.png (../default16.png) 264 | content/branding/icon32.png (../default32.png) 265 | content/branding/icon48.png (../default48.png) 266 | diff --git a/browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css b/browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css 267 | index a24a3e8225..3d2da0faeb 100644 268 | --- a/browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css 269 | +++ b/browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css 270 | @@ -55,27 +55,21 @@ p { 271 | } 272 | 273 | .logo { 274 | background: url("chrome://branding/content/about-logo.png") no-repeat center center; 275 | - background-size: 96px; 276 | + background-size: 128px; 277 | display: inline-block; 278 | - height: 96px; 279 | - width: 96px; 280 | -} 281 | - 282 | -@media (min-resolution: 2x) { 283 | - .logo { 284 | - background-image: url('chrome://branding/content/about-logo@2x.png'); 285 | - } 286 | + height: 128px; 287 | + width: 128px; 288 | } 289 | 290 | .wordmark { 291 | - background: url("chrome://branding/content/firefox-wordmark.svg") no-repeat center center; 292 | + background: url("chrome://branding/content/plasmafox-wordmark.svg") no-repeat center center; 293 | background-size: 172px; 294 | -moz-context-properties: fill; 295 | display: inline-block; 296 | - fill: #fff; 297 | - height: 96px; 298 | + fill: #bfd; 299 | + height: 128px; 300 | margin-inline-start: 15px; 301 | width: 172px; 302 | } 303 | 304 | diff --git a/browser/components/newtab/content-src/components/Search/_Search.scss b/browser/components/newtab/content-src/components/Search/_Search.scss 305 | index fdbf52f299..f33600c76e 100644 306 | --- a/browser/components/newtab/content-src/components/Search/_Search.scss 307 | +++ b/browser/components/newtab/content-src/components/Search/_Search.scss 308 | @@ -32,9 +32,9 @@ $glyph-forward: url('chrome://browser/skin/forward.svg'); 309 | width: $logo-size; 310 | } 311 | 312 | .wordmark { 313 | - background: url('chrome://branding/content/firefox-wordmark.svg') no-repeat center center; 314 | + background: url('chrome://branding/content/plasmafox-wordmark.svg') no-repeat center center; 315 | background-size: $wordmark-size; 316 | -moz-context-properties: fill; 317 | display: inline-block; 318 | fill: var(--newtab-search-wordmark-color); 319 | diff --git a/browser/components/newtab/css/activity-stream-linux.css b/browser/components/newtab/css/activity-stream-linux.css 320 | index 71b7b788cd..439994e895 100644 321 | --- a/browser/components/newtab/css/activity-stream-linux.css 322 | +++ b/browser/components/newtab/css/activity-stream-linux.css 323 | @@ -1042,9 +1042,9 @@ main { 324 | @media (min-resolution: 2x) { 325 | .search-wrapper .logo-and-wordmark .logo { 326 | background-image: url("chrome://branding/content/about-logo@2x.png"); } } 327 | .search-wrapper .logo-and-wordmark .wordmark { 328 | - background: url("chrome://branding/content/firefox-wordmark.svg") no-repeat center center; 329 | + background: url("chrome://branding/content/plasmafox-wordmark.svg") no-repeat center center; 330 | background-size: 134px; 331 | -moz-context-properties: fill; 332 | display: inline-block; 333 | fill: var(--newtab-search-wordmark-color); 334 | -- 335 | 2.25.1 336 | -------------------------------------------------------------------------------- /patchset/0002-change-user-agent-handling.patch: -------------------------------------------------------------------------------- 1 | From caf2adf6e4b0becd0769d9fb052aabe7233d98e1 Mon Sep 17 00:00:00 2001 2 | From: torvic9 3 | Date: Fri, 2 Oct 2020 09:35:15 +0200 4 | Subject: [PATCH] change user agent handling 5 | 6 | Signed-off-by: torvic9 7 | --- 8 | netwerk/protocol/http/nsHttpHandler.cpp | 24 ++++++++++-------------- 9 | 1 file changed, 10 insertions(+), 14 deletions(-) 10 | 11 | diff --git a/netwerk/protocol/http/nsHttpHandler.cpp b/netwerk/protocol/http/nsHttpHandler.cpp 12 | index 1d9eb83..199c9de 100644 13 | --- a/netwerk/protocol/http/nsHttpHandler.cpp 14 | +++ b/netwerk/protocol/http/nsHttpHandler.cpp 15 | @@ -485,11 +485,11 @@ nsresult nsHttpHandler::Init() { 16 | PrefsChanged(nullptr); 17 | Telemetry::ScalarSet(Telemetry::ScalarID::NETWORKING_HTTP3_ENABLED, 18 | mHttp3Enabled); 19 | 20 | - mMisc.AssignLiteral("rv:" MOZILLA_UAVERSION); 21 | + mMisc.AssignLiteral("rv:" MOZ_APP_UA_VERSION); 22 | 23 | - mCompatFirefox.AssignLiteral("Firefox/" MOZILLA_UAVERSION); 24 | + mCompatFirefox.AssignLiteral("Plasmafox/" MOZ_APP_UA_VERSION); 25 | 26 | nsCOMPtr appInfo = 27 | do_GetService("@mozilla.org/xre/app-info;1"); 28 | 29 | @@ -942,20 +942,16 @@ void nsHttpHandler::BuildUserAgent() { 30 | mUserAgent += mProduct; 31 | mUserAgent += '/'; 32 | mUserAgent += mProductSub; 33 | 34 | - bool isFirefox = mAppName.EqualsLiteral("Firefox"); 35 | - if (isFirefox || mCompatFirefoxEnabled) { 36 | - // "Firefox/x.y" (compatibility) app token 37 | - mUserAgent += ' '; 38 | - mUserAgent += mCompatFirefox; 39 | - } 40 | - if (!isFirefox) { 41 | - // App portion 42 | - mUserAgent += ' '; 43 | - mUserAgent += mAppName; 44 | - mUserAgent += '/'; 45 | - mUserAgent += mAppVersion; 46 | + // App portion 47 | + mUserAgent += ' '; 48 | + mUserAgent += "Firefox"; 49 | + mUserAgent += '/'; 50 | + mUserAgent += mAppVersion; 51 | + if (mCompatFirefoxEnabled) { 52 | + mUserAgent += ' '; 53 | + mUserAgent += mCompatFirefox; 54 | } 55 | } 56 | 57 | #ifdef XP_WIN 58 | -- 59 | 2.28.0 60 | 61 | -------------------------------------------------------------------------------- /patchset/0003-disable-healthreport-and-normandy.patch: -------------------------------------------------------------------------------- 1 | From dc18d3c5ad26e6f284d6ce0f9e278d5bed99f4ad Mon Sep 17 00:00:00 2001 2 | From: torvic9 3 | Date: Sat, 26 Oct 2019 16:20:16 +0200 4 | Subject: [PATCH] disable healthreport and normandy 5 | 6 | Signed-off-by: torvic9 7 | --- 8 | browser/moz.configure | 4 ++-- 9 | 1 file changed, 2 insertions(+), 2 deletions(-) 10 | 11 | diff --git a/browser/moz.configure b/browser/moz.configure 12 | index 8653bcbb16..935af4065a 100644 13 | --- a/browser/moz.configure 14 | +++ b/browser/moz.configure 15 | @@ -4,13 +4,13 @@ 16 | # License, v. 2.0. If a copy of the MPL was not distributed with this 17 | # file, You can obtain one at http://mozilla.org/MPL/2.0/. 18 | 19 | imply_option("MOZ_PLACES", True) 20 | -imply_option("MOZ_SERVICES_HEALTHREPORT", True) 21 | +imply_option("MOZ_SERVICES_HEALTHREPORT", False) 22 | imply_option("MOZ_SERVICES_SYNC", True) 23 | imply_option("MOZ_DEDICATED_PROFILES", True) 24 | imply_option("MOZ_BLOCK_PROFILE_DOWNGRADE", True) 25 | -imply_option("MOZ_NORMANDY", True) 26 | +imply_option("MOZ_NORMANDY", False) 27 | 28 | with only_when(target_is_linux & compile_environment): 29 | option(env="MOZ_NO_PIE_COMPAT", help="Enable non-PIE wrapper") 30 | 31 | -------------------------------------------------------------------------------- /patchset/0004-remove-UI-tour.patch: -------------------------------------------------------------------------------- 1 | From de9f3e3de645f52928537e28678dd1f58b9c685c Mon Sep 17 00:00:00 2001 2 | From: torvic9 3 | Date: Thu, 25 Mar 2021 14:13:11 +0100 4 | Subject: [PATCH] remove UI tour 5 | 6 | Signed-off-by: torvic9 7 | --- 8 | browser/base/content/browser.css | 65 -------------------------------- 9 | browser/base/content/browser.js | 1 - 10 | browser/components/moz.build | 1 - 11 | 3 files changed, 67 deletions(-) 12 | 13 | diff --git a/browser/base/content/browser.css b/browser/base/content/browser.css 14 | index 7b68594ef1..5998f0725f 100644 15 | --- a/browser/base/content/browser.css 16 | +++ b/browser/base/content/browser.css 17 | @@ -1263,71 +1263,6 @@ toolbarpaletteitem > toolbaritem { 18 | display: none; 19 | } 20 | 21 | -/* UI Tour */ 22 | - 23 | -@keyframes uitour-wobble { 24 | - from { 25 | - transform: rotate(0deg) translateX(3px) rotate(0deg); 26 | - } 27 | - 50% { 28 | - transform: rotate(360deg) translateX(3px) rotate(-360deg); 29 | - } 30 | - to { 31 | - transform: rotate(720deg) translateX(0px) rotate(-720deg); 32 | - } 33 | -} 34 | - 35 | -@keyframes uitour-zoom { 36 | - from { 37 | - transform: scale(0.8); 38 | - } 39 | - 50% { 40 | - transform: scale(1.0); 41 | - } 42 | - to { 43 | - transform: scale(0.8); 44 | - } 45 | -} 46 | - 47 | -@keyframes uitour-color { 48 | - from { 49 | - border-color: #5B9CD9; 50 | - } 51 | - 50% { 52 | - border-color: #FF0000; 53 | - } 54 | - to { 55 | - border-color: #5B9CD9; 56 | - } 57 | -} 58 | - 59 | -#UITourHighlightContainer, 60 | -#UITourHighlight { 61 | - pointer-events: none; 62 | -} 63 | - 64 | -#UITourHighlight[active] { 65 | - animation-delay: 2s; 66 | - animation-fill-mode: forwards; 67 | - animation-iteration-count: infinite; 68 | - animation-timing-function: linear; 69 | -} 70 | - 71 | -#UITourHighlight[active="wobble"] { 72 | - animation-name: uitour-wobble; 73 | - animation-delay: 0s; 74 | - animation-duration: 1.5s; 75 | - animation-iteration-count: 1; 76 | -} 77 | -#UITourHighlight[active="zoom"] { 78 | - animation-name: uitour-zoom; 79 | - animation-duration: 1s; 80 | -} 81 | -#UITourHighlight[active="color"] { 82 | - animation-name: uitour-color; 83 | - animation-duration: 2s; 84 | -} 85 | - 86 | /* Combined context-menu items */ 87 | #context-navigation > .menuitem-iconic > .menu-iconic-text, 88 | #context-navigation > .menuitem-iconic > .menu-accel-container { 89 | diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js 90 | index 27d8911d61..9598a13849 100644 91 | --- a/browser/base/content/browser.js 92 | +++ b/browser/base/content/browser.js 93 | @@ -80,7 +80,6 @@ XPCOMUtils.defineLazyModuleGetters(this, { 94 | TabCrashHandler: "resource:///modules/ContentCrashHandlers.jsm", 95 | TelemetryEnvironment: "resource://gre/modules/TelemetryEnvironment.jsm", 96 | Translation: "resource:///modules/translation/TranslationParent.jsm", 97 | - UITour: "resource:///modules/UITour.jsm", 98 | UpdateUtils: "resource://gre/modules/UpdateUtils.jsm", 99 | UrlbarInput: "resource:///modules/UrlbarInput.jsm", 100 | UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm", 101 | diff --git a/browser/components/moz.build b/browser/components/moz.build 102 | index d16b27b1ea..80aed84a5a 100644 103 | --- a/browser/components/moz.build 104 | +++ b/browser/components/moz.build 105 | @@ -53,7 +53,6 @@ DIRS += [ 106 | "sessionstore", 107 | "shell", 108 | "syncedtabs", 109 | - "uitour", 110 | "urlbar", 111 | "translation", 112 | ] 113 | -- 114 | 2.31.0 115 | 116 | -------------------------------------------------------------------------------- /patchset/0005-disable-pocket.patch: -------------------------------------------------------------------------------- 1 | From e255dd794df9fcb3ee4c008cbce3787306cd4ded Mon Sep 17 00:00:00 2001 2 | From: torvic9 3 | Date: Thu, 25 Mar 2021 14:15:57 +0100 4 | Subject: [PATCH] disable pocket 5 | 6 | Signed-off-by: torvic9 7 | --- 8 | browser/components/moz.build | 1 - 9 | 1 file changed, 1 deletion(-) 10 | 11 | diff --git a/browser/components/moz.build b/browser/components/moz.build 12 | index 80aed84a5a..e37faf163e 100644 13 | --- a/browser/components/moz.build 14 | +++ b/browser/components/moz.build 15 | @@ -42,7 +42,6 @@ DIRS += [ 16 | "originattributes", 17 | "ion", 18 | "places", 19 | - "pocket", 20 | "preferences", 21 | "privatebrowsing", 22 | "prompts", 23 | -- 24 | 2.31.0 25 | 26 | -------------------------------------------------------------------------------- /patchset/0006-new-logo-for-new-about-screen.patch: -------------------------------------------------------------------------------- 1 | From 2d228c5075fa0292bb99866cf85ba78a06619bf3 Mon Sep 17 00:00:00 2001 2 | From: torvic9 3 | Date: Thu, 5 Dec 2019 20:57:46 +0100 4 | Subject: [PATCH] new logo for new about screen 5 | 6 | Signed-off-by: torvic9 7 | --- 8 | .../browser/branding/unofficial/content/aboutDialog.css | 2 +- 9 | 1 file changed, 1 insertion(+), 1 deletion(-) 10 | 11 | diff --git a/browser/branding/unofficial/content/aboutDialog.css b/browser/branding/unofficial/content/aboutDialog.css 12 | index 284c60f4ad..bde9a1fdda 100644 13 | --- a/browser/branding/unofficial/content/aboutDialog.css 14 | +++ b/browser/branding/unofficial/content/aboutDialog.css 15 | @@ -10,11 +10,11 @@ 16 | #clientBox { 17 | padding: 10px 0 15px; 18 | } 19 | 20 | #leftBox { 21 | - background-image: url("chrome://branding/content/about-logo.png"); 22 | + background-image: url("chrome://branding/content/about-logo@2x.png"); 23 | background-repeat: no-repeat; 24 | background-size: 192px auto; 25 | background-position: center 20%; 26 | /* min-width and min-height create room for the logo */ 27 | min-width: 210px; 28 | -- 29 | 2.24.0 30 | 31 | -------------------------------------------------------------------------------- /patchset/0007-allow-webrender-on-release.patch: -------------------------------------------------------------------------------- 1 | From e633b690ac65754303b3a481da796c0b561bcc59 Mon Sep 17 00:00:00 2001 2 | From: torvic9 3 | Date: Tue, 20 Apr 2021 13:38:16 +0200 4 | Subject: [PATCH] allow webrender on release 5 | 6 | Signed-off-by: torvic9 7 | --- 8 | gfx/thebes/gfxPlatform.cpp | 5 ----- 9 | widget/GfxDriverInfo.cpp | 4 ++-- 10 | 2 files changed, 2 insertions(+), 7 deletions(-) 11 | 12 | diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp 13 | index 2492b73c25..b701f56e30 100644 14 | --- a/gfx/thebes/gfxPlatform.cpp 15 | +++ b/gfx/thebes/gfxPlatform.cpp 16 | @@ -2823,11 +2823,6 @@ void gfxPlatform::InitWebGLConfig() { 17 | void gfxPlatform::InitWebGPUConfig() { 18 | FeatureState& feature = gfxConfig::GetFeature(Feature::WEBGPU); 19 | feature.SetDefaultFromPref("dom.webgpu.enabled", true, false); 20 | -#ifndef NIGHTLY_BUILD 21 | - feature.ForceDisable(FeatureStatus::Blocked, 22 | - "WebGPU can only be enabled in nightly", 23 | - "WEBGPU_DISABLE_NON_NIGHTLY"_ns); 24 | -#endif 25 | if (!UseWebRender()) { 26 | feature.ForceDisable(FeatureStatus::UnavailableNoWebRender, 27 | "WebGPU can't present without WebRender", 28 | diff --git a/widget/GfxDriverInfo.cpp b/widget/GfxDriverInfo.cpp 29 | index 3fdfa736c0..c3565075fb 100644 30 | --- a/widget/GfxDriverInfo.cpp 31 | +++ b/widget/GfxDriverInfo.cpp 32 | @@ -506,14 +506,12 @@ const GfxDeviceFamily* GfxDriverInfo::GetDeviceFamily(DeviceFamily id) { 33 | APPEND_RANGE(0x06c0, INT32_MAX); 34 | break; 35 | case DeviceFamily::IntelRolloutWebRender: 36 | -#ifdef EARLY_BETA_OR_EARLIER 37 | // gen4.5 - G45 38 | APPEND_DEVICE(0x2e22); 39 | 40 | // gen5 (ironlake) 41 | APPEND_DEVICE(0x0042); 42 | APPEND_DEVICE(0x0046); 43 | -#endif 44 | 45 | // cherryview 46 | APPEND_DEVICE(0x22b0); 47 | @@ -762,6 +760,8 @@ const GfxDeviceFamily* GfxDriverInfo::GetDeviceFamily(DeviceFamily id) { 48 | APPEND_DEVICE(0x15d8); 49 | // Renoir 50 | APPEND_DEVICE(0x1636); 51 | + // Navi10 52 | + APPEND_DEVICE(0x731f); 53 | 54 | // Evergreen 55 | APPEND_RANGE(0x6840, 0x684b); 56 | -------------------------------------------------------------------------------- /patchset/mesa-add-plasmafox-to-adaptive_sync-blacklist.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/util/00-mesa-defaults.conf b/src/util/00-mesa-defaults.conf 2 | index dc7fb30a3f9..67507b24c73 100644 3 | --- a/src/util/00-mesa-defaults.conf 4 | +++ b/src/util/00-mesa-defaults.conf 5 | @@ -546,6 +546,9 @@ TODO: document the other workarounds. 6 | 7 | 9 | + 10 | + 12 | 13 | 15 | -------------------------------------------------------------------------------- /pgo-fix-missing-kdejs.patch: -------------------------------------------------------------------------------- 1 | --- a/browser/app/Makefile.in 2020-05-04 19:59:36.356868458 +0200 2 | +++ b/browser/app/Makefile.in 2020-05-04 20:03:02.565089742 +0200 3 | @@ -57,6 +57,7 @@ 4 | libs:: $(srcdir)/profile/channel-prefs.js 5 | $(NSINSTALL) -D $(DIST)/bin/defaults/pref 6 | $(call py_action,preprocessor,-Fsubstitution $(PREF_PPFLAGS) $(ACDEFINES) $^ -o $(DIST)/bin/defaults/pref/channel-prefs.js) 7 | + cp -v $(topsrcdir)/../kde.js $(DIST)/bin/defaults/pref/kde.js 8 | 9 | ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) 10 | 11 | -------------------------------------------------------------------------------- /plasmafox-20210531.patch: -------------------------------------------------------------------------------- 1 | From 165d6e66a11cc3359681862faa79e55d6a694746 Mon Sep 17 00:00:00 2001 2 | From: torvic9 3 | Date: Sat, 22 Feb 2020 11:32:10 +0100 4 | Subject: [PATCH] branding and dialogs 5 | 6 | Signed-off-by: torvic9 7 | --- 8 | browser/base/content/aboutDialog.css | 6 +++--- 9 | browser/base/content/aboutDialog.xhtml | 8 ++++---- 10 | browser/base/content/overrides/app-license.html | 2 +- 11 | browser/branding/branding-common.mozbuild | 3 +++ 12 | browser/branding/unofficial/configure.sh | 4 +++- 13 | browser/branding/unofficial/content/aboutDialog.css | 2 +- 14 | browser/branding/unofficial/locales/en-US/brand.dtd | 8 ++++---- 15 | browser/branding/unofficial/locales/en-US/brand.ftl | 12 ++++++------ 16 | .../unofficial/locales/en-US/brand.properties | 10 +++++----- 17 | browser/branding/unofficial/pref/firefox-branding.js | 6 +++--- 18 | browser/installer/package-manifest.in | 3 +++ 19 | browser/locales/en-US/browser/aboutDialog.ftl | 2 +- 20 | .../shared/privatebrowsing/aboutPrivateBrowsing.css | 2 +- 21 | 13 files changed, 38 insertions(+), 30 deletions(-) 22 | 23 | diff --git a/browser/base/content/aboutDialog.css b/browser/base/content/aboutDialog.css 24 | index 7dbb248c1f..7ce119d865 100644 25 | --- a/browser/base/content/aboutDialog.css 26 | +++ b/browser/base/content/aboutDialog.css 27 | @@ -13,12 +13,12 @@ 28 | 29 | #rightBox { 30 | background-image: url("chrome://branding/content/about-wordmark.svg"); 31 | background-repeat: no-repeat; 32 | - background-size: 288px auto; 33 | + background-size: 108px auto; 34 | /* padding-top creates room for the wordmark */ 35 | - padding-top: 38px; 36 | - margin-top: 20px; 37 | + padding-top: 30px; 38 | + margin-top: 18px; 39 | } 40 | 41 | #rightBox:-moz-locale-dir(rtl) { 42 | background-position: 100% 0; 43 | diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml 44 | index f7e10f2632..94418f97bc 100644 45 | --- a/browser/base/content/aboutDialog.xhtml 46 | +++ b/browser/base/content/aboutDialog.xhtml 47 | @@ -127,19 +127,19 @@ 48 | #endif 49 | 57 | 58 | - 62 | 63 | - 68 | 69 | 70 | 71 | diff --git a/browser/base/content/overrides/app-license.html b/browser/base/content/overrides/app-license.html 72 | index e7a158c792..2730e9af0c 100644 73 | --- a/browser/base/content/overrides/app-license.html 74 | +++ b/browser/base/content/overrides/app-license.html 75 | @@ -1,6 +1,6 @@ 76 | 79 |

Binaries of this product have been made available to you by the 80 | - Mozilla Project under the Mozilla 81 | + Plasmafox Project under the Mozilla 82 | Public License 2.0 (MPL). Know your rights.

83 | diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild 84 | index 908553b8b9..9fb2702eb2 100644 85 | --- a/browser/branding/branding-common.mozbuild 86 | +++ b/browser/branding/branding-common.mozbuild 87 | @@ -26,8 +26,11 @@ def FirefoxBranding(): 88 | elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk': 89 | FINAL_TARGET_FILES.chrome.icons.default += [ 90 | 'default128.png', 91 | 'default16.png', 92 | + 'default22.png', 93 | + 'default24.png', 94 | + 'default256.png', 95 | 'default32.png', 96 | 'default48.png', 97 | 'default64.png', 98 | ] 99 | diff --git a/browser/branding/unofficial/configure.sh b/browser/branding/unofficial/configure.sh 100 | index edd3bd3e86..c61c85c56d 100644 101 | --- a/browser/branding/unofficial/configure.sh 102 | +++ b/browser/branding/unofficial/configure.sh 103 | @@ -1,5 +1,7 @@ 104 | # This Source Code Form is subject to the terms of the Mozilla Public 105 | # License, v. 2.0. If a copy of the MPL was not distributed with this 106 | # file, You can obtain one at http://mozilla.org/MPL/2.0/. 107 | 108 | -MOZ_APP_DISPLAYNAME=Nightly 109 | +MOZ_APP_DISPLAYNAME=Plasmafox 110 | +MOZ_APP_PROFILE=Plasmafox 111 | + 112 | diff --git a/browser/branding/unofficial/content/aboutDialog.css b/browser/branding/unofficial/content/aboutDialog.css 113 | index 229d7bcea1..284c60f4ad 100644 114 | --- a/browser/branding/unofficial/content/aboutDialog.css 115 | +++ b/browser/branding/unofficial/content/aboutDialog.css 116 | @@ -47,7 +47,7 @@ 117 | padding-top: 64px; 118 | } 119 | 120 | #bottomBox { 121 | - background-color: hsla(235, 43%, 10%, .5); 122 | + background-color: rgba(10,17,37,.4); 123 | padding: 15px 10px 15px; 124 | } 125 | diff --git a/browser/branding/unofficial/locales/en-US/brand.dtd b/browser/branding/unofficial/locales/en-US/brand.dtd 126 | index 0b781d49a3..fdca5731a9 100644 127 | --- a/browser/branding/unofficial/locales/en-US/brand.dtd 128 | +++ b/browser/branding/unofficial/locales/en-US/brand.dtd 129 | @@ -1,11 +1,11 @@ 130 | 133 | 134 | - 135 | - 136 | - 137 | + 138 | + 139 | + 140 | 143 | - 144 | + 145 | diff --git a/browser/branding/unofficial/locales/en-US/brand.ftl b/browser/branding/unofficial/locales/en-US/brand.ftl 146 | index 51e5bfa..bdc5acb 100644 147 | --- a/browser/branding/unofficial/locales/en-US/brand.ftl 148 | +++ b/browser/branding/unofficial/locales/en-US/brand.ftl 149 | @@ -15,12 +15,12 @@ 150 | ## 151 | ## For further details, consult: 152 | ## https://mozilla-l10n.github.io/styleguides/mozilla_general/#brands-copyright-and-trademark 153 | 154 | --brand-shorter-name = Nightly 155 | --brand-short-name = Nightly 156 | --brand-full-name = Nightly 157 | +-brand-shorter-name = Plasmafox 158 | +-brand-short-name = Plasmafox 159 | +-brand-full-name = Plasmafox 160 | # This brand name can be used in messages where the product name needs to 161 | # remain unchanged across different versions (Nightly, Beta, etc.). 162 | --brand-product-name = Firefox 163 | --vendor-short-name = Mozilla 164 | -trademarkInfo = { " " } 165 | +-brand-product-name = Plasmafox 166 | +-vendor-short-name = Plasmafox 167 | +trademarkInfo = { "Plasmafox is not associated with Mozilla" } 168 | --- a/browser/branding/unofficial/locales/en-US/brand.properties 2021-05-27 22:29:43.000000000 +0200 169 | +++ b/browser/branding/unofficial/locales/en-US/brand.properties 2021-05-31 11:32:47.214271601 +0200 170 | @@ -1,12 +1,12 @@ 171 | # This Source Code Form is subject to the terms of the Mozilla Public 172 | # License, v. 2.0. If a copy of the MPL was not distributed with this 173 | # file, You can obtain one at http://mozilla.org/MPL/2.0/. 174 | 175 | -brandShorterName=Nightly 176 | -brandShortName=Nightly 177 | -brandFullName=Nightly 178 | +brandShorterName=Plasmafox 179 | +brandShortName=Plasmafox 180 | +brandFullName=Plasmafox 181 | # LOCALIZATION NOTE(brandProductName): 182 | # This brand name can be used in messages where the product name needs to 183 | # remain unchanged across different versions (Nightly, Beta, etc.). 184 | -brandProductName=Firefox 185 | -vendorShortName=Mozilla 186 | +brandProductName=Plasmafox 187 | +vendorShortName=Plasmafox 188 | diff --git a/browser/branding/unofficial/pref/firefox-branding.js b/browser/branding/unofficial/pref/firefox-branding.js 189 | index f22dd0a51c..a98f7e3ecb 100644 190 | --- a/browser/branding/unofficial/pref/firefox-branding.js 191 | +++ b/browser/branding/unofficial/pref/firefox-branding.js 192 | @@ -4,20 +4,20 @@ 193 | 194 | // This file contains branding-specific prefs. 195 | 196 | pref("startup.homepage_override_url", ""); 197 | -pref("startup.homepage_welcome_url", ""); 198 | +pref("startup.homepage_welcome_url", "https://github.com/torvic9/plasmafox"); 199 | pref("startup.homepage_welcome_url.additional", ""); 200 | // The time interval between checks for a new version (in seconds) 201 | pref("app.update.interval", 86400); // 24 hours 202 | // Give the user x seconds to react before showing the big UI. default=24 hours 203 | pref("app.update.promptWaitTime", 86400); 204 | // URL user can browse to manually if for some reason all update installation 205 | // attempts fail. 206 | -pref("app.update.url.manual", "https://nightly.mozilla.org"); 207 | +pref("app.update.url.manual", "https://github.com/torvic9/plasmafox"); 208 | // A default value for the "More information about this update" link 209 | // supplied in the "An update is available" page of the update wizard. 210 | -pref("app.update.url.details", "https://nightly.mozilla.org"); 211 | +pref("app.update.url.details", "https://github.com/torvic9/plasmafox"); 212 | 213 | // The number of days a binary is permitted to be old 214 | // without checking for an update. This assumes that 215 | // app.update.checkInstallTime is true. 216 | diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in 217 | index 7054749357..ce49fd65cc 100644 218 | --- a/browser/installer/package-manifest.in 219 | +++ b/browser/installer/package-manifest.in 220 | @@ -253,12 +253,15 @@ 221 | @RESPATH@/chrome/recording.manifest 222 | @RESPATH@/chrome/recording/* 223 | #ifdef MOZ_GTK 224 | @RESPATH@/browser/chrome/icons/default/default16.png 225 | +@RESPATH@/browser/chrome/icons/default/default22.png 226 | +@RESPATH@/browser/chrome/icons/default/default24.png 227 | @RESPATH@/browser/chrome/icons/default/default32.png 228 | @RESPATH@/browser/chrome/icons/default/default48.png 229 | @RESPATH@/browser/chrome/icons/default/default64.png 230 | @RESPATH@/browser/chrome/icons/default/default128.png 231 | +@RESPATH@/browser/chrome/icons/default/default256.png 232 | #endif 233 | @RESPATH@/browser/features/* 234 | 235 | ; [DevTools Startup Files] 236 | diff --git a/browser/locales/en-US/browser/aboutDialog.ftl b/browser/locales/en-US/browser/aboutDialog.ftl 237 | index 5737302831..5b8aeb7a8f 100644 238 | --- a/browser/locales/en-US/browser/aboutDialog.ftl 239 | +++ b/browser/locales/en-US/browser/aboutDialog.ftl 240 | @@ -38,9 +38,9 @@ channel-description = You are currently on the is a working together to keep the Web open, public and accessible to all. 244 | 245 | -community-2 = { -brand-short-name } is designed by , a working together to keep the Web open, public and accessible to all. 246 | +community-2 = { -brand-short-name } is designed by , to be used with KDE/Plasma on Linux distros that are compatible with Arch. 247 | 248 | helpus = Want to help? or 249 | 250 | bottomLinks-license = Licensing Information 251 | diff --git a/browser/branding/unofficial/content/jar.mn b/browser/branding/unofficial/content/jar.mn 252 | index 68b2bfd8e5..b2e8b2369c 100644 253 | --- a/browser/branding/unofficial/content/jar.mn 254 | +++ b/browser/branding/unofficial/content/jar.mn 255 | @@ -7,9 +7,9 @@ browser.jar: 256 | content/branding/about.png 257 | content/branding/about-logo.png 258 | content/branding/about-logo@2x.png 259 | content/branding/about-wordmark.svg 260 | - content/branding/firefox-wordmark.svg 261 | + content/branding/plasmafox-wordmark.svg 262 | content/branding/aboutlogins.svg 263 | content/branding/icon16.png (../default16.png) 264 | content/branding/icon32.png (../default32.png) 265 | content/branding/icon48.png (../default48.png) 266 | diff --git a/browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css b/browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css 267 | index a24a3e8225..3d2da0faeb 100644 268 | --- a/browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css 269 | +++ b/browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css 270 | @@ -55,27 +55,21 @@ p { 271 | } 272 | 273 | .logo { 274 | background: url("chrome://branding/content/about-logo.png") no-repeat center center; 275 | - background-size: 96px; 276 | + background-size: 128px; 277 | display: inline-block; 278 | - height: 96px; 279 | - width: 96px; 280 | -} 281 | - 282 | -@media (min-resolution: 2x) { 283 | - .logo { 284 | - background-image: url('chrome://branding/content/about-logo@2x.png'); 285 | - } 286 | + height: 128px; 287 | + width: 128px; 288 | } 289 | 290 | .wordmark { 291 | - background: url("chrome://branding/content/firefox-wordmark.svg") no-repeat center center; 292 | + background: url("chrome://branding/content/plasmafox-wordmark.svg") no-repeat center center; 293 | background-size: 172px; 294 | -moz-context-properties: fill; 295 | display: inline-block; 296 | - fill: #fff; 297 | - height: 96px; 298 | + fill: #bfd; 299 | + height: 128px; 300 | margin-inline-start: 15px; 301 | width: 172px; 302 | } 303 | 304 | diff --git a/browser/components/newtab/content-src/components/Search/_Search.scss b/browser/components/newtab/content-src/components/Search/_Search.scss 305 | index fdbf52f299..f33600c76e 100644 306 | --- a/browser/components/newtab/content-src/components/Search/_Search.scss 307 | +++ b/browser/components/newtab/content-src/components/Search/_Search.scss 308 | @@ -32,9 +32,9 @@ $glyph-forward: url('chrome://browser/skin/forward.svg'); 309 | width: $logo-size; 310 | } 311 | 312 | .wordmark { 313 | - background: url('chrome://branding/content/firefox-wordmark.svg') no-repeat center center; 314 | + background: url('chrome://branding/content/plasmafox-wordmark.svg') no-repeat center center; 315 | background-size: $wordmark-size; 316 | -moz-context-properties: fill; 317 | display: inline-block; 318 | fill: var(--newtab-search-wordmark-color); 319 | diff --git a/browser/components/newtab/css/activity-stream-linux.css b/browser/components/newtab/css/activity-stream-linux.css 320 | index 71b7b788cd..439994e895 100644 321 | --- a/browser/components/newtab/css/activity-stream-linux.css 322 | +++ b/browser/components/newtab/css/activity-stream-linux.css 323 | @@ -1042,9 +1042,9 @@ main { 324 | @media (min-resolution: 2x) { 325 | .search-wrapper .logo-and-wordmark .logo { 326 | background-image: url("chrome://branding/content/about-logo@2x.png"); } } 327 | .search-wrapper .logo-and-wordmark .wordmark { 328 | - background: url("chrome://branding/content/firefox-wordmark.svg") no-repeat center center; 329 | + background: url("chrome://branding/content/plasmafox-wordmark.svg") no-repeat center center; 330 | background-size: 134px; 331 | -moz-context-properties: fill; 332 | display: inline-block; 333 | fill: var(--newtab-search-wordmark-color); 334 | -- 335 | 2.25.1 336 | From caf2adf6e4b0becd0769d9fb052aabe7233d98e1 Mon Sep 17 00:00:00 2001 337 | From: torvic9 338 | Date: Fri, 2 Oct 2020 09:35:15 +0200 339 | Subject: [PATCH] change user agent handling 340 | 341 | Signed-off-by: torvic9 342 | --- 343 | netwerk/protocol/http/nsHttpHandler.cpp | 24 ++++++++++-------------- 344 | 1 file changed, 10 insertions(+), 14 deletions(-) 345 | 346 | diff --git a/netwerk/protocol/http/nsHttpHandler.cpp b/netwerk/protocol/http/nsHttpHandler.cpp 347 | index 1d9eb83..199c9de 100644 348 | --- a/netwerk/protocol/http/nsHttpHandler.cpp 349 | +++ b/netwerk/protocol/http/nsHttpHandler.cpp 350 | @@ -485,11 +485,11 @@ nsresult nsHttpHandler::Init() { 351 | PrefsChanged(nullptr); 352 | Telemetry::ScalarSet(Telemetry::ScalarID::NETWORKING_HTTP3_ENABLED, 353 | mHttp3Enabled); 354 | 355 | - mMisc.AssignLiteral("rv:" MOZILLA_UAVERSION); 356 | + mMisc.AssignLiteral("rv:" MOZ_APP_UA_VERSION); 357 | 358 | - mCompatFirefox.AssignLiteral("Firefox/" MOZILLA_UAVERSION); 359 | + mCompatFirefox.AssignLiteral("Plasmafox/" MOZ_APP_UA_VERSION); 360 | 361 | nsCOMPtr appInfo = 362 | do_GetService("@mozilla.org/xre/app-info;1"); 363 | 364 | @@ -942,20 +942,16 @@ void nsHttpHandler::BuildUserAgent() { 365 | mUserAgent += mProduct; 366 | mUserAgent += '/'; 367 | mUserAgent += mProductSub; 368 | 369 | - bool isFirefox = mAppName.EqualsLiteral("Firefox"); 370 | - if (isFirefox || mCompatFirefoxEnabled) { 371 | - // "Firefox/x.y" (compatibility) app token 372 | - mUserAgent += ' '; 373 | - mUserAgent += mCompatFirefox; 374 | - } 375 | - if (!isFirefox) { 376 | - // App portion 377 | - mUserAgent += ' '; 378 | - mUserAgent += mAppName; 379 | - mUserAgent += '/'; 380 | - mUserAgent += mAppVersion; 381 | + // App portion 382 | + mUserAgent += ' '; 383 | + mUserAgent += "Firefox"; 384 | + mUserAgent += '/'; 385 | + mUserAgent += mAppVersion; 386 | + if (mCompatFirefoxEnabled) { 387 | + mUserAgent += ' '; 388 | + mUserAgent += mCompatFirefox; 389 | } 390 | } 391 | 392 | #ifdef XP_WIN 393 | -- 394 | 2.28.0 395 | 396 | From dc18d3c5ad26e6f284d6ce0f9e278d5bed99f4ad Mon Sep 17 00:00:00 2001 397 | From: torvic9 398 | Date: Sat, 26 Oct 2019 16:20:16 +0200 399 | Subject: [PATCH] disable healthreport and normandy 400 | 401 | Signed-off-by: torvic9 402 | --- 403 | browser/moz.configure | 4 ++-- 404 | 1 file changed, 2 insertions(+), 2 deletions(-) 405 | 406 | diff --git a/browser/moz.configure b/browser/moz.configure 407 | index 8653bcbb16..935af4065a 100644 408 | --- a/browser/moz.configure 409 | +++ b/browser/moz.configure 410 | @@ -4,13 +4,13 @@ 411 | # License, v. 2.0. If a copy of the MPL was not distributed with this 412 | # file, You can obtain one at http://mozilla.org/MPL/2.0/. 413 | 414 | imply_option("MOZ_PLACES", True) 415 | -imply_option("MOZ_SERVICES_HEALTHREPORT", True) 416 | +imply_option("MOZ_SERVICES_HEALTHREPORT", False) 417 | imply_option("MOZ_SERVICES_SYNC", True) 418 | imply_option("MOZ_DEDICATED_PROFILES", True) 419 | imply_option("MOZ_BLOCK_PROFILE_DOWNGRADE", True) 420 | -imply_option("MOZ_NORMANDY", True) 421 | +imply_option("MOZ_NORMANDY", False) 422 | 423 | with only_when(target_is_linux & compile_environment): 424 | option(env="MOZ_NO_PIE_COMPAT", help="Enable non-PIE wrapper") 425 | 426 | From de9f3e3de645f52928537e28678dd1f58b9c685c Mon Sep 17 00:00:00 2001 427 | From: torvic9 428 | Date: Thu, 25 Mar 2021 14:13:11 +0100 429 | Subject: [PATCH] remove UI tour 430 | 431 | Signed-off-by: torvic9 432 | --- 433 | browser/base/content/browser.css | 65 -------------------------------- 434 | browser/base/content/browser.js | 1 - 435 | browser/components/moz.build | 1 - 436 | 3 files changed, 67 deletions(-) 437 | 438 | diff --git a/browser/base/content/browser.css b/browser/base/content/browser.css 439 | index 7b68594ef1..5998f0725f 100644 440 | --- a/browser/base/content/browser.css 441 | +++ b/browser/base/content/browser.css 442 | @@ -1263,71 +1263,6 @@ toolbarpaletteitem > toolbaritem { 443 | display: none; 444 | } 445 | 446 | -/* UI Tour */ 447 | - 448 | -@keyframes uitour-wobble { 449 | - from { 450 | - transform: rotate(0deg) translateX(3px) rotate(0deg); 451 | - } 452 | - 50% { 453 | - transform: rotate(360deg) translateX(3px) rotate(-360deg); 454 | - } 455 | - to { 456 | - transform: rotate(720deg) translateX(0px) rotate(-720deg); 457 | - } 458 | -} 459 | - 460 | -@keyframes uitour-zoom { 461 | - from { 462 | - transform: scale(0.8); 463 | - } 464 | - 50% { 465 | - transform: scale(1.0); 466 | - } 467 | - to { 468 | - transform: scale(0.8); 469 | - } 470 | -} 471 | - 472 | -@keyframes uitour-color { 473 | - from { 474 | - border-color: #5B9CD9; 475 | - } 476 | - 50% { 477 | - border-color: #FF0000; 478 | - } 479 | - to { 480 | - border-color: #5B9CD9; 481 | - } 482 | -} 483 | - 484 | -#UITourHighlightContainer, 485 | -#UITourHighlight { 486 | - pointer-events: none; 487 | -} 488 | - 489 | -#UITourHighlight[active] { 490 | - animation-delay: 2s; 491 | - animation-fill-mode: forwards; 492 | - animation-iteration-count: infinite; 493 | - animation-timing-function: linear; 494 | -} 495 | - 496 | -#UITourHighlight[active="wobble"] { 497 | - animation-name: uitour-wobble; 498 | - animation-delay: 0s; 499 | - animation-duration: 1.5s; 500 | - animation-iteration-count: 1; 501 | -} 502 | -#UITourHighlight[active="zoom"] { 503 | - animation-name: uitour-zoom; 504 | - animation-duration: 1s; 505 | -} 506 | -#UITourHighlight[active="color"] { 507 | - animation-name: uitour-color; 508 | - animation-duration: 2s; 509 | -} 510 | - 511 | /* Combined context-menu items */ 512 | #context-navigation > .menuitem-iconic > .menu-iconic-text, 513 | #context-navigation > .menuitem-iconic > .menu-accel-container { 514 | diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js 515 | index 27d8911d61..9598a13849 100644 516 | --- a/browser/base/content/browser.js 517 | +++ b/browser/base/content/browser.js 518 | @@ -80,7 +80,6 @@ XPCOMUtils.defineLazyModuleGetters(this, { 519 | TabCrashHandler: "resource:///modules/ContentCrashHandlers.jsm", 520 | TelemetryEnvironment: "resource://gre/modules/TelemetryEnvironment.jsm", 521 | Translation: "resource:///modules/translation/TranslationParent.jsm", 522 | - UITour: "resource:///modules/UITour.jsm", 523 | UpdateUtils: "resource://gre/modules/UpdateUtils.jsm", 524 | UrlbarInput: "resource:///modules/UrlbarInput.jsm", 525 | UrlbarPrefs: "resource:///modules/UrlbarPrefs.jsm", 526 | diff --git a/browser/components/moz.build b/browser/components/moz.build 527 | index d16b27b1ea..80aed84a5a 100644 528 | --- a/browser/components/moz.build 529 | +++ b/browser/components/moz.build 530 | @@ -53,7 +53,6 @@ DIRS += [ 531 | "sessionstore", 532 | "shell", 533 | "syncedtabs", 534 | - "uitour", 535 | "urlbar", 536 | "translation", 537 | ] 538 | -- 539 | 2.31.0 540 | 541 | From e255dd794df9fcb3ee4c008cbce3787306cd4ded Mon Sep 17 00:00:00 2001 542 | From: torvic9 543 | Date: Thu, 25 Mar 2021 14:15:57 +0100 544 | Subject: [PATCH] disable pocket 545 | 546 | Signed-off-by: torvic9 547 | --- 548 | browser/components/moz.build | 1 - 549 | 1 file changed, 1 deletion(-) 550 | 551 | diff --git a/browser/components/moz.build b/browser/components/moz.build 552 | index 80aed84a5a..e37faf163e 100644 553 | --- a/browser/components/moz.build 554 | +++ b/browser/components/moz.build 555 | @@ -42,7 +42,6 @@ DIRS += [ 556 | "originattributes", 557 | "ion", 558 | "places", 559 | - "pocket", 560 | "preferences", 561 | "privatebrowsing", 562 | "prompts", 563 | -- 564 | 2.31.0 565 | 566 | From 2d228c5075fa0292bb99866cf85ba78a06619bf3 Mon Sep 17 00:00:00 2001 567 | From: torvic9 568 | Date: Thu, 5 Dec 2019 20:57:46 +0100 569 | Subject: [PATCH] new logo for new about screen 570 | 571 | Signed-off-by: torvic9 572 | --- 573 | .../browser/branding/unofficial/content/aboutDialog.css | 2 +- 574 | 1 file changed, 1 insertion(+), 1 deletion(-) 575 | 576 | diff --git a/browser/branding/unofficial/content/aboutDialog.css b/browser/branding/unofficial/content/aboutDialog.css 577 | index 284c60f4ad..bde9a1fdda 100644 578 | --- a/browser/branding/unofficial/content/aboutDialog.css 579 | +++ b/browser/branding/unofficial/content/aboutDialog.css 580 | @@ -10,11 +10,11 @@ 581 | #clientBox { 582 | padding: 10px 0 15px; 583 | } 584 | 585 | #leftBox { 586 | - background-image: url("chrome://branding/content/about-logo.png"); 587 | + background-image: url("chrome://branding/content/about-logo@2x.png"); 588 | background-repeat: no-repeat; 589 | background-size: 192px auto; 590 | background-position: center 20%; 591 | /* min-width and min-height create room for the logo */ 592 | min-width: 210px; 593 | -- 594 | 2.24.0 595 | 596 | From e633b690ac65754303b3a481da796c0b561bcc59 Mon Sep 17 00:00:00 2001 597 | From: torvic9 598 | Date: Tue, 20 Apr 2021 13:38:16 +0200 599 | Subject: [PATCH] allow webrender on release 600 | 601 | Signed-off-by: torvic9 602 | --- 603 | gfx/thebes/gfxPlatform.cpp | 5 ----- 604 | widget/GfxDriverInfo.cpp | 4 ++-- 605 | 2 files changed, 2 insertions(+), 7 deletions(-) 606 | 607 | diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp 608 | index 2492b73c25..b701f56e30 100644 609 | --- a/gfx/thebes/gfxPlatform.cpp 610 | +++ b/gfx/thebes/gfxPlatform.cpp 611 | @@ -2823,11 +2823,6 @@ void gfxPlatform::InitWebGLConfig() { 612 | void gfxPlatform::InitWebGPUConfig() { 613 | FeatureState& feature = gfxConfig::GetFeature(Feature::WEBGPU); 614 | feature.SetDefaultFromPref("dom.webgpu.enabled", true, false); 615 | -#ifndef NIGHTLY_BUILD 616 | - feature.ForceDisable(FeatureStatus::Blocked, 617 | - "WebGPU can only be enabled in nightly", 618 | - "WEBGPU_DISABLE_NON_NIGHTLY"_ns); 619 | -#endif 620 | if (!UseWebRender()) { 621 | feature.ForceDisable(FeatureStatus::UnavailableNoWebRender, 622 | "WebGPU can't present without WebRender", 623 | diff --git a/widget/GfxDriverInfo.cpp b/widget/GfxDriverInfo.cpp 624 | index 3fdfa736c0..c3565075fb 100644 625 | --- a/widget/GfxDriverInfo.cpp 626 | +++ b/widget/GfxDriverInfo.cpp 627 | @@ -506,14 +506,12 @@ const GfxDeviceFamily* GfxDriverInfo::GetDeviceFamily(DeviceFamily id) { 628 | APPEND_RANGE(0x06c0, INT32_MAX); 629 | break; 630 | case DeviceFamily::IntelRolloutWebRender: 631 | -#ifdef EARLY_BETA_OR_EARLIER 632 | // gen4.5 - G45 633 | APPEND_DEVICE(0x2e22); 634 | 635 | // gen5 (ironlake) 636 | APPEND_DEVICE(0x0042); 637 | APPEND_DEVICE(0x0046); 638 | -#endif 639 | 640 | // cherryview 641 | APPEND_DEVICE(0x22b0); 642 | @@ -762,6 +760,8 @@ const GfxDeviceFamily* GfxDriverInfo::GetDeviceFamily(DeviceFamily id) { 643 | APPEND_DEVICE(0x15d8); 644 | // Renoir 645 | APPEND_DEVICE(0x1636); 646 | + // Navi10 647 | + APPEND_DEVICE(0x731f); 648 | 649 | // Evergreen 650 | APPEND_RANGE(0x6840, 0x684b); 651 | -------------------------------------------------------------------------------- /plasmafox-common.profile: -------------------------------------------------------------------------------- 1 | # Firejail profile for firefox-common 2 | # This file is overwritten after every install/update 3 | # Persistent local customizations 4 | include firefox-common.local 5 | # Persistent global definitions 6 | # added by caller profile 7 | #include globals.local 8 | 9 | # noexec ${HOME} breaks DRM binaries. 10 | ?BROWSER_ALLOW_DRM: ignore noexec ${HOME} 11 | 12 | # Uncomment the following line (or put it in your firefox-common.local) to allow access to common programs/addons/plugins. 13 | include firefox-common-addons.inc 14 | 15 | noblacklist ${HOME}/.pki 16 | noblacklist ${HOME}/.local/share/pki 17 | 18 | include disable-common.inc 19 | include disable-devel.inc 20 | include disable-exec.inc 21 | include disable-interpreters.inc 22 | include disable-programs.inc 23 | 24 | mkdir ${HOME}/.pki 25 | mkdir ${HOME}/.local/share/pki 26 | whitelist ${DOWNLOADS} 27 | whitelist ${HOME}/.pki 28 | whitelist ${HOME}/.local/share/pki 29 | include whitelist-common.inc 30 | include whitelist-var-common.inc 31 | 32 | apparmor 33 | caps.drop all 34 | # machine-id breaks pulse audio; it should work fine in setups where sound is not required. 35 | #machine-id 36 | netfilter 37 | # nodbus breaks various desktop integration features 38 | # among other things global menus, native notifications, Gnome connector, KDE connect and power management on KDE Plasma 39 | #nodbus 40 | nodvd 41 | nogroups 42 | nonewprivs 43 | # noroot breaks GTK_USE_PORTAL=1 usage, see https://github.com/netblue30/firejail/issues/2506. 44 | #noroot 45 | notv 46 | ?BROWSER_DISABLE_U2F: nou2f 47 | protocol unix,inet,inet6,netlink 48 | # The below seccomp configuration still permits chroot syscall. See https://github.com/netblue30/firejail/issues/2506 for possible workarounds. 49 | seccomp !chroot 50 | shell none 51 | # Disable tracelog, it breaks or causes major issues with many firefox based browsers, see https://github.com/netblue30/firejail/issues/1930. 52 | #tracelog 53 | 54 | disable-mnt 55 | private-dev 56 | # private-etc below works fine on most distributions. There are some problems on CentOS. 57 | #private-etc alternatives,asound.conf,ca-certificates,crypto-policies,dconf,fonts,group,gtk-2.0,gtk-3.0,hostname,hosts,ld.so.cache,localtime,machine-id,mailcap,mime.types,nsswitch.conf,pango,passwd,pki,pulse,resolv.conf,selinux,ssl,X11,xdg 58 | private-tmp 59 | -------------------------------------------------------------------------------- /plasmafox-wordmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 20 | 22 | 23 | 25 | image/svg+xml 26 | 28 | 29 | 30 | 31 | 32 | 34 | 54 | 77 | 87 | 92 | 97 | 102 | 107 | 112 | 117 | 122 | 127 | 132 | 137 | 138 | 143 | 148 | 153 | 158 | 163 | 168 | 173 | 178 | 183 | 184 | -------------------------------------------------------------------------------- /plasmafox.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Name=plasmafox 4 | GenericName=Web Browser 5 | GenericName[ar]=متصفح ويب 6 | GenericName[ast]=Restolador Web 7 | GenericName[bn]=ওয়েব ব্রাউজার 8 | GenericName[ca]=Navegador web 9 | GenericName[cs]=Webový prohlížeč 10 | GenericName[da]=Webbrowser 11 | GenericName[de]=Webbrowser 12 | GenericName[el]=Περιηγητής διαδικτύου 13 | GenericName[es]=Navegador web 14 | GenericName[et]=Veebibrauser 15 | GenericName[fa]=مرورگر اینترنتی 16 | GenericName[fi]=WWW-selain 17 | GenericName[fr]=Navigateur Web 18 | GenericName[gl]=Navegador Web 19 | GenericName[he]=דפדפן אינטרנט 20 | GenericName[hr]=Web preglednik 21 | GenericName[hu]=Webböngésző 22 | GenericName[it]=Browser Web 23 | GenericName[ja]=ウェブ・ブラウザ 24 | GenericName[ko]=웹 브라우저 25 | GenericName[ku]=Geroka torê 26 | GenericName[lt]=Interneto naršyklė 27 | GenericName[nb]=Nettleser 28 | GenericName[nl]=Webbrowser 29 | GenericName[nn]=Nettlesar 30 | GenericName[no]=Nettleser 31 | GenericName[pl]=Przeglądarka WWW 32 | GenericName[pt]=Navegador Web 33 | GenericName[pt_BR]=Navegador Web 34 | GenericName[ro]=Navigator Internet 35 | GenericName[ru]=Веб-браузер 36 | GenericName[sk]=Internetový prehliadač 37 | GenericName[sl]=Spletni brskalnik 38 | GenericName[sv]=Webbläsare 39 | GenericName[tr]=Web Tarayıcı 40 | GenericName[ug]=توركۆرگۈ 41 | GenericName[uk]=Веб-браузер 42 | GenericName[vi]=Trình duyệt Web 43 | GenericName[zh_CN]=网络浏览器 44 | GenericName[zh_TW]=網路瀏覽器 45 | Comment=Browse the Web 46 | Comment[ar]=تصفح الشبكة العنكبوتية العالمية 47 | Comment[ast]=Restola pela Rede 48 | Comment[bn]=ইন্টারনেট ব্রাউজ করুন 49 | Comment[ca]=Navegueu per el web 50 | Comment[cs]=Prohlížení stránek World Wide Webu 51 | Comment[da]=Surf på internettet 52 | Comment[de]=Im Internet surfen 53 | Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web) 54 | Comment[es]=Navegue por la web 55 | Comment[et]=Lehitse veebi 56 | Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید 57 | Comment[fi]=Selaa Internetin WWW-sivuja 58 | Comment[fr]=Naviguer sur le Web 59 | Comment[gl]=Navegar pola rede 60 | Comment[he]=גלישה ברחבי האינטרנט 61 | Comment[hr]=Pretražite web 62 | Comment[hu]=A világháló böngészése 63 | Comment[it]=Esplora il web 64 | Comment[ja]=ウェブを閲覧します 65 | Comment[ko]=웹을 돌아 다닙니다 66 | Comment[ku]=Li torê bigere 67 | Comment[lt]=Naršykite internete 68 | Comment[nb]=Surf på nettet 69 | Comment[nl]=Verken het internet 70 | Comment[nn]=Surf på nettet 71 | Comment[no]=Surf på nettet 72 | Comment[pl]=Przeglądanie stron WWW 73 | Comment[pt]=Navegue na Internet 74 | Comment[pt_BR]=Navegue na Internet 75 | Comment[ro]=Navigați pe Internet 76 | Comment[ru]=Доступ в Интернет 77 | Comment[sk]=Prehliadanie internetu 78 | Comment[sl]=Brskajte po spletu 79 | Comment[sv]=Surfa på webben 80 | Comment[tr]=İnternet'te Gezinin 81 | Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ 82 | Comment[uk]=Перегляд сторінок Інтернету 83 | Comment[vi]=Để duyệt các trang web 84 | Comment[zh_CN]=浏览互联网 85 | Comment[zh_TW]=瀏覽網際網路 86 | Exec=plasmafox %u 87 | Icon=plasmafox 88 | Terminal=false 89 | Type=Application 90 | MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json; 91 | StartupNotify=true 92 | StartupWMClass=plasmafox 93 | Categories=Network;WebBrowser; 94 | Keywords=web;browser;internet; 95 | Actions=new-window;new-private-window; 96 | 97 | [Desktop Action new-window] 98 | Name=New Window 99 | Name[ach]=Dirica manyen 100 | Name[af]=Nuwe venster 101 | Name[an]=Nueva finestra 102 | Name[ar]=نافذة جديدة 103 | Name[as]=নতুন উইন্ডো 104 | Name[ast]=Ventana nueva 105 | Name[az]=Yeni Pəncərə 106 | Name[be]=Новае акно 107 | Name[bg]=Нов прозорец 108 | Name[bn_BD]=নতুন উইন্ডো (N) 109 | Name[bn_IN]=নতুন উইন্ডো 110 | Name[br]=Prenestr nevez 111 | Name[brx]=गोदान उइन्ड'(N) 112 | Name[bs]=Novi prozor 113 | Name[ca]=Finestra nova 114 | Name[cak]=K'ak'a' tzuwäch 115 | Name[cs]=Nové okno 116 | Name[cy]=Ffenestr Newydd 117 | Name[da]=Nyt vindue 118 | Name[de]=Neues Fenster 119 | Name[dsb]=Nowe wokno 120 | Name[el]=Νέο παράθυρο 121 | Name[en_GB]=New Window 122 | Name[en_US]=New Window 123 | Name[en_ZA]=New Window 124 | Name[eo]=Nova fenestro 125 | Name[es_AR]=Nueva ventana 126 | Name[es_CL]=Nueva ventana 127 | Name[es_ES]=Nueva ventana 128 | Name[es_MX]=Nueva ventana 129 | Name[et]=Uus aken 130 | Name[eu]=Leiho berria 131 | Name[fa]=پنجره جدید 132 | Name[ff]=Henorde Hesere 133 | Name[fi]=Uusi ikkuna 134 | Name[fr]=Nouvelle fenêtre 135 | Name[fy_NL]=Nij finster 136 | Name[ga_IE]=Fuinneog Nua 137 | Name[gd]=Uinneag ùr 138 | Name[gl]=Nova xanela 139 | Name[gn]=Ovetã pyahu 140 | Name[gu_IN]=નવી વિન્ડો 141 | Name[he]=חלון חדש 142 | Name[hi_IN]=नया विंडो 143 | Name[hr]=Novi prozor 144 | Name[hsb]=Nowe wokno 145 | Name[hu]=Új ablak 146 | Name[hy_AM]=Նոր Պատուհան 147 | Name[id]=Jendela Baru 148 | Name[is]=Nýr gluggi 149 | Name[it]=Nuova finestra 150 | Name[ja]=新しいウィンドウ 151 | Name[ja_JP-mac]=新規ウインドウ 152 | Name[ka]=ახალი ფანჯარა 153 | Name[kk]=Жаңа терезе 154 | Name[km]=បង្អួចថ្មី 155 | Name[kn]=ಹೊಸ ಕಿಟಕಿ 156 | Name[ko]=새 창 157 | Name[kok]=नवें जनेल 158 | Name[ks]=نئئ وِنڈو 159 | Name[lij]=Neuvo barcon 160 | Name[lo]=ຫນ້າຕ່າງໃຫມ່ 161 | Name[lt]=Naujas langas 162 | Name[ltg]=Jauns lūgs 163 | Name[lv]=Jauns logs 164 | Name[mai]=नव विंडो 165 | Name[mk]=Нов прозорец 166 | Name[ml]=പുതിയ ജാലകം 167 | Name[mr]=नवीन पटल 168 | Name[ms]=Tetingkap Baru 169 | Name[my]=ဝင်းဒိုးအသစ် 170 | Name[nb_NO]=Nytt vindu 171 | Name[ne_NP]=नयाँ सञ्झ्याल 172 | Name[nl]=Nieuw venster 173 | Name[nn_NO]=Nytt vindauge 174 | Name[or]=ନୂତନ ୱିଣ୍ଡୋ 175 | Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ 176 | Name[pl]=Nowe okno 177 | Name[pt_BR]=Nova janela 178 | Name[pt_PT]=Nova janela 179 | Name[rm]=Nova fanestra 180 | Name[ro]=Fereastră nouă 181 | Name[ru]=Новое окно 182 | Name[sat]=नावा विंडो (N) 183 | Name[si]=නව කවුළුවක් 184 | Name[sk]=Nové okno 185 | Name[sl]=Novo okno 186 | Name[son]=Zanfun taaga 187 | Name[sq]=Dritare e Re 188 | Name[sr]=Нови прозор 189 | Name[sv_SE]=Nytt fönster 190 | Name[ta]=புதிய சாளரம் 191 | Name[te]=కొత్త విండో 192 | Name[th]=หน้าต่างใหม่ 193 | Name[tr]=Yeni pencere 194 | Name[tsz]=Eraatarakua jimpani 195 | Name[uk]=Нове вікно 196 | Name[ur]=نیا دریچہ 197 | Name[uz]=Yangi oyna 198 | Name[vi]=Cửa sổ mới 199 | Name[wo]=Palanteer bu bees 200 | Name[xh]=Ifestile entsha 201 | Name[zh_CN]=新建窗口 202 | Name[zh_TW]=開新視窗 203 | Exec=plasmafox --new-window %u 204 | 205 | [Desktop Action new-private-window] 206 | Name=New Private Window 207 | Name[ach]=Dirica manyen me mung 208 | Name[af]=Nuwe privaatvenster 209 | Name[an]=Nueva finestra privada 210 | Name[ar]=نافذة خاصة جديدة 211 | Name[as]=নতুন ব্যক্তিগত উইন্ডো 212 | Name[ast]=Ventana privada nueva 213 | Name[az]=Yeni Məxfi Pəncərə 214 | Name[be]=Новае акно адасаблення 215 | Name[bg]=Нов прозорец за поверително сърфиране 216 | Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো 217 | Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো 218 | Name[br]=Prenestr merdeiñ prevez nevez 219 | Name[brx]=गोदान प्राइभेट उइन्ड' 220 | Name[bs]=Novi privatni prozor 221 | Name[ca]=Finestra privada nova 222 | Name[cak]=K'ak'a' ichinan tzuwäch 223 | Name[cs]=Nové anonymní okno 224 | Name[cy]=Ffenestr Breifat Newydd 225 | Name[da]=Nyt privat vindue 226 | Name[de]=Neues privates Fenster 227 | Name[dsb]=Nowe priwatne wokno 228 | Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης 229 | Name[en_GB]=New Private Window 230 | Name[en_US]=New Private Window 231 | Name[en_ZA]=New Private Window 232 | Name[eo]=Nova privata fenestro 233 | Name[es_AR]=Nueva ventana privada 234 | Name[es_CL]=Nueva ventana privada 235 | Name[es_ES]=Nueva ventana privada 236 | Name[es_MX]=Nueva ventana privada 237 | Name[et]=Uus privaatne aken 238 | Name[eu]=Leiho pribatu berria 239 | Name[fa]=پنجره ناشناس جدید 240 | Name[ff]=Henorde Suturo Hesere 241 | Name[fi]=Uusi yksityinen ikkuna 242 | Name[fr]=Nouvelle fenêtre de navigation privée 243 | Name[fy_NL]=Nij priveefinster 244 | Name[ga_IE]=Fuinneog Nua Phríobháideach 245 | Name[gd]=Uinneag phrìobhaideach ùr 246 | Name[gl]=Nova xanela privada 247 | Name[gn]=Ovetã ñemi pyahu 248 | Name[gu_IN]=નવી ખાનગી વિન્ડો 249 | Name[he]=חלון פרטי חדש 250 | Name[hi_IN]=नयी निजी विंडो 251 | Name[hr]=Novi privatni prozor 252 | Name[hsb]=Nowe priwatne wokno 253 | Name[hu]=Új privát ablak 254 | Name[hy_AM]=Սկսել Գաղտնի դիտարկում 255 | Name[id]=Jendela Mode Pribadi Baru 256 | Name[is]=Nýr huliðsgluggi 257 | Name[it]=Nuova finestra anonima 258 | Name[ja]=新しいプライベートウィンドウ 259 | Name[ja_JP-mac]=新規プライベートウインドウ 260 | Name[ka]=ახალი პირადი ფანჯარა 261 | Name[kk]=Жаңа жекелік терезе 262 | Name[km]=បង្អួចឯកជនថ្មី 263 | Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ 264 | Name[ko]=새 사생활 보호 모드 265 | Name[kok]=नवो खाजगी विंडो 266 | Name[ks]=نْو پرایوٹ وینڈو 267 | Name[lij]=Nêuvo barcón privòu 268 | Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່ 269 | Name[lt]=Naujas privataus naršymo langas 270 | Name[ltg]=Jauns privatais lūgs 271 | Name[lv]=Jauns privātais logs 272 | Name[mai]=नया निज विंडो (W) 273 | Name[mk]=Нов приватен прозорец 274 | Name[ml]=പുതിയ സ്വകാര്യ ജാലകം 275 | Name[mr]=नवीन वैयक्तिक पटल 276 | Name[ms]=Tetingkap Persendirian Baharu 277 | Name[my]=New Private Window 278 | Name[nb_NO]=Nytt privat vindu 279 | Name[ne_NP]=नयाँ निजी सञ्झ्याल 280 | Name[nl]=Nieuw privévenster 281 | Name[nn_NO]=Nytt privat vindauge 282 | Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ 283 | Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ 284 | Name[pl]=Nowe okno prywatne 285 | Name[pt_BR]=Nova janela privativa 286 | Name[pt_PT]=Nova janela privada 287 | Name[rm]=Nova fanestra privata 288 | Name[ro]=Fereastră privată nouă 289 | Name[ru]=Новое приватное окно 290 | Name[sat]=नावा निजेराक् विंडो (W ) 291 | Name[si]=නව පුද්ගලික කවුළුව (W) 292 | Name[sk]=Nové okno v režime Súkromné prehliadanie 293 | Name[sl]=Novo zasebno okno 294 | Name[son]=Sutura zanfun taaga 295 | Name[sq]=Dritare e Re Private 296 | Name[sr]=Нови приватан прозор 297 | Name[sv_SE]=Nytt privat fönster 298 | Name[ta]=புதிய தனிப்பட்ட சாளரம் 299 | Name[te]=కొత్త ఆంతరంగిక విండో 300 | Name[th]=หน้าต่างส่วนตัวใหม่ 301 | Name[tr]=Yeni gizli pencere 302 | Name[tsz]=Juchiiti eraatarakua jimpani 303 | Name[uk]=Приватне вікно 304 | Name[ur]=نیا نجی دریچہ 305 | Name[uz]=Yangi maxfiy oyna 306 | Name[vi]=Cửa sổ riêng tư mới 307 | Name[wo]=Panlanteeru biir bu bees 308 | Name[xh]=Ifestile yangasese entsha 309 | Name[zh_CN]=新建隐私浏览窗口 310 | Name[zh_TW]=新增隱私視窗 311 | Exec=plasmafox --private-window %u 312 | -------------------------------------------------------------------------------- /plasmafox.install: -------------------------------------------------------------------------------- 1 | post_install() { 2 | echo -e "---> Included are profiles for Firejail and profile-sync-daemon," 3 | echo -e "---> which you can symlink from /usr/lib/plasmafox/distribution" 4 | echo -e "---> to /etc/firejail and /usr/share/psd/browsers respectively. \n" 5 | } 6 | 7 | post_upgrade() { 8 | echo -e "---> Included are profiles for Firejail and profile-sync-daemon," 9 | echo -e "---> which you can symlink from /usr/lib/plasmafox/distribution" 10 | echo -e "---> to /etc/firejail and /usr/share/psd/browsers respectively. \n" 11 | } 12 | -------------------------------------------------------------------------------- /plasmafox.profile: -------------------------------------------------------------------------------- 1 | # Firejail profile for firefox 2 | # Description: Safe and easy web browser from Mozilla 3 | # This file is overwritten after every install/update 4 | # Persistent local customizations 5 | include firefox.local 6 | # Persistent global definitions 7 | include globals.local 8 | 9 | noblacklist ${HOME}/.cache/mozilla 10 | noblacklist ${HOME}/.plasmafox 11 | 12 | mkdir ${HOME}/.cache/mozilla/plasmafox 13 | mkdir ${HOME}/.plasmafox 14 | whitelist ${HOME}/.cache/mozilla/plasmafox 15 | whitelist ${HOME}/.plasmafox 16 | 17 | whitelist /usr/share/mozilla 18 | include whitelist-usr-share-common.inc 19 | 20 | # firefox requires a shell to launch on Arch. 21 | #private-bin firefox,which,sh,dbus-launch,dbus-send,env,bash 22 | # private-etc must first be enabled in firefox-common.profile 23 | #private-etc firefox 24 | 25 | # Redirect 26 | include plasmafox-common.profile 27 | -------------------------------------------------------------------------------- /plasmafox.psd: -------------------------------------------------------------------------------- 1 | if [[ -d $HOME/.plasmafox ]]; then 2 | profileArr=( $(grep '[P,p]'ath= $HOME/.plasmafox/profiles.ini | 3 | sed 's/[P,p]ath=//') ) 4 | index=0 5 | PSNAME="$browser" 6 | for profileItem in ${profileArr[@]}; do 7 | if [[ $(echo $profileItem | cut -c1) = "/" ]]; then 8 | # path is not relative 9 | DIRArr[index]="$profileItem" 10 | else 11 | # we need to append the default path to give a 12 | # fully qualified path 13 | DIRArr[index]="$HOME/.plasmafox/$profileItem" 14 | fi 15 | index=$index+1 16 | done 17 | fi 18 | 19 | check_suffix=1 20 | -------------------------------------------------------------------------------- /reduce-rust-debuginfo.patch: -------------------------------------------------------------------------------- 1 | Description: reduce the rust debuginfo level 2 | because compiling with debuginfo=2 causes the OOM killer to interrupt the build 3 | on launchpad builders. Initially this was only on 32 bit architectures, but 4 | with firefox 63 it started happening frequently on arm64 and ppc64el too, 5 | with newer versions it started happening very frequently on s390x too, and with 6 | firefox 84 (built with rustc 1.47) it started happening on amd64 too. 7 | This patch would initially decrease debug_info for selected architectures, but 8 | with recent versions of rustc pretty much all supported architectures are 9 | affected, so it is now unconditional. 10 | 11 | --- a/build/moz.configure/toolchain.configure 12 | +++ b/build/moz.configure/toolchain.configure 13 | @@ -2167,7 +2167,7 @@ def rust_compile_flags(opt_level, debug_ 14 | debug_assertions = False 15 | 16 | if debug_symbols: 17 | - debug_info = "2" 18 | + debug_info = "1" 19 | 20 | opts = [] 21 | 22 | -------------------------------------------------------------------------------- /torvic9-pubkey-2021.key: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mDMEX8+1wBYJKwYBBAHaRw8BAQdANoxcu8dwx3x1neHU8EO20PTvCl5fxn4K1+fm 4 | aEMivcW0M3RvcnZpYzkgKFBhY2thZ2UgU2lnbmluZyBLZXkpIDx0b3J2aWM5QG1h 5 | aWxib3gub3JnPoiWBBMWCgA+FiEER3HcOucyTI2tIcKvt+CJY/LLZnoFAl/PtcAC 6 | GwMFCQHhM4AFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQt+CJY/LLZnrOsQEA 7 | iv/ykyukPZWZkIuC3LiLBeCbFhLOv7HSQWgBuZIrZEgBAPpPFxl4boLvxfFwHjxS 8 | hqHITgsnIlg94kHO03eJKiQJuDgEX8+1wBIKKwYBBAGXVQEFAQEHQPG9zsbRcywS 9 | sRbwWv8vll8vIdSSLhcqhO8ZTpYtpckvAwEIB4h+BBgWCgAmFiEER3HcOucyTI2t 10 | IcKvt+CJY/LLZnoFAl/PtcACGwwFCQHhM4AACgkQt+CJY/LLZnoTugD+PWRx4nGl 11 | +rjsdd+tDeUZfWQYd5XR0fVY/dkGcijazmIBAJW5zV5GKvW7Kaxgsg32BmOe1kFN 12 | WKAWtUqa39d6Q4gH 13 | =p8ia 14 | -----END PGP PUBLIC KEY BLOCK----- 15 | -------------------------------------------------------------------------------- /use-mcpu-native-with-lto-pgo.patch: -------------------------------------------------------------------------------- 1 | diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure 2 | index 2f32b11588..db3202d9b8 100644 3 | --- a/build/moz.configure/lto-pgo.configure 4 | +++ b/build/moz.configure/lto-pgo.configure 5 | @@ -259,9 +259,9 @@ def lto(value, c_compiler, ld64_known_good, target, instrumented_build): 6 | # recommends this as the "generic 64-bit specific x86 processor model": 7 | # 8 | # https://github.com/llvm/llvm-project/blob/e7694f34ab6a12b8bb480cbfcb396d0a64fe965f/llvm/lib/Target/X86/X86.td#L1165-L1187 9 | if target.cpu == "x86_64": 10 | - ldflags.append("-mllvm:-mcpu=x86-64") 11 | + ldflags.append("-mllvm:-mcpu=skylake") 12 | # We do not need special flags for arm64. Hooray for fixed-length 13 | # instruction sets. 14 | else: 15 | num_cores = multiprocessing.cpu_count() 16 | -------------------------------------------------------------------------------- /user.js: -------------------------------------------------------------------------------- 1 | /* 2 | * this is a subset of ghacks' user.js file 3 | */ 4 | 5 | /* 0103: set HOME+NEWWINDOW page 6 | * about:home=Activity Stream (default, see 0105), custom URL, about:blank 7 | * [SETTING] Home>New Windows and Tabs>Homepage and new windows ***/ 8 | user_pref("browser.startup.homepage", "about:blank"); 9 | /* 0104: set NEWTAB page 10 | * true=Activity Stream (default, see 0105), false=blank page 11 | * [SETTING] Home>New Windows and Tabs>New tabs ***/ 12 | user_pref("browser.newtabpage.enabled", false); 13 | user_pref("browser.newtab.preload", false); 14 | /* 0105: disable Activity Stream stuff (AS) 15 | * AS is the default homepage/newtab in FF57+, based on metadata and browsing behavior. 16 | * **NOT LISTING ALL OF THESE: USE THE PREFERENCES UI** 17 | * [SETTING] Home>Firefox Home Content>... to show/hide what you want ***/ 18 | /* 0105a: disable Activity Stream telemetry ***/ 19 | user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false); 20 | user_pref("browser.newtabpage.activity-stream.telemetry", false); 21 | user_pref("browser.newtabpage.activity-stream.telemetry.ping.endpoint", ""); 22 | /* 0105b: disable Activity Stream Snippets 23 | * Runs code received from a server (aka Remote Code Execution) and sends information back to a metrics server 24 | * [1] https://abouthome-snippets-service.readthedocs.io/ ***/ 25 | user_pref("browser.aboutHomeSnippets.updateUrl", ""); 26 | user_pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", ""); 27 | user_pref("browser.newtabpage.activity-stream.disableSnippets", true); 28 | user_pref("browser.newtabpage.activity-stream.feeds.snippets", false); 29 | /* 0105c: disable Activity Stream Top Stories, Pocket-based and/or sponsored content ***/ 30 | user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false); 31 | user_pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false); 32 | user_pref("browser.newtabpage.activity-stream.showSponsored", false); 33 | user_pref("browser.newtabpage.activity-stream.feeds.discoverystreamfeed", false); // [FF66+] 34 | 35 | /* 0211: disable using the OS's geolocation service ***/ 36 | user_pref("geo.provider.ms-windows-location", false); // [WINDOWS] 37 | user_pref("geo.provider.use_corelocation", false); // [MAC] 38 | user_pref("geo.provider.use_gpsd", false); // [LINUX] 39 | /* 0310: disable sending the URL of the website where a plugin crashed ***/ 40 | user_pref("dom.ipc.plugins.reportCrashURL", false); 41 | /* 0320: disable about:addons' Recommendations pane (uses Google Analytics) ***/ 42 | user_pref("extensions.getAddons.showPane", false); // [HIDDEN PREF] 43 | user_pref("extensions.webservice.discoverURL", ""); 44 | /* 0321: disable recommendations in about:addons' Extensions and Themes panes [FF68+] ***/ 45 | user_pref("extensions.getAddons.discovery.api_url", ""); 46 | user_pref("extensions.htmlaboutaddons.discover.enabled", false); 47 | user_pref("extensions.htmlaboutaddons.recommendations.enabled", false); 48 | /* 0330: disable telemetry 49 | * the pref (.unified) affects the behaviour of the pref (.enabled) 50 | * IF unified=false then .enabled controls the telemetry module 51 | * IF unified=true then .enabled ONLY controls whether to record extended data 52 | * so make sure to have both set as false 53 | * [NOTE] FF58+ `toolkit.telemetry.enabled` is now LOCKED to reflect prerelease 54 | * or release builds (true and false respectively), see [2] 55 | * [1] https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/internals/preferences.html 56 | * [2] https://medium.com/georg-fritzsche/data-preference-changes-in-firefox-58-2d5df9c428b5 ***/ 57 | user_pref("toolkit.telemetry.unified", false); 58 | user_pref("toolkit.telemetry.enabled", false); // see [NOTE] above FF58+ 59 | user_pref("toolkit.telemetry.server", "data:,"); 60 | user_pref("toolkit.telemetry.archive.enabled", false); 61 | user_pref("toolkit.telemetry.newProfilePing.enabled", false); // [FF55+] 62 | user_pref("toolkit.telemetry.shutdownPingSender.enabled", false); // [FF55+] 63 | user_pref("toolkit.telemetry.updatePing.enabled", false); // [FF56+] 64 | user_pref("toolkit.telemetry.bhrPing.enabled", false); // [FF57+] Background Hang Reporter 65 | user_pref("toolkit.telemetry.firstShutdownPing.enabled", false); // [FF57+] 66 | user_pref("toolkit.telemetry.hybridContent.enabled", false); // [FF59+] 67 | /* 0331: disable Telemetry Coverage 68 | * [1] https://blog.mozilla.org/data/2018/08/20/effectively-measuring-search-in-firefox/ ***/ 69 | user_pref("toolkit.telemetry.coverage.opt-out", true); // [HIDDEN PREF] 70 | user_pref("toolkit.coverage.opt-out", true); // [FF64+] [HIDDEN PREF] 71 | user_pref("toolkit.coverage.endpoint.base", ""); 72 | /* 0340: disable Health Reports 73 | * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send technical... data ***/ 74 | user_pref("datareporting.healthreport.uploadEnabled", false); 75 | /* 0341: disable new data submission, master kill switch [FF41+] 76 | * If disabled, no policy is shown or upload takes place, ever 77 | * [1] https://bugzilla.mozilla.org/1195552 ***/ 78 | user_pref("datareporting.policy.dataSubmissionEnabled", false); 79 | /* 0342: disable Studies (see 0503) 80 | * [NOTE] This pref has no effect when Health Reports (0340) are disabled 81 | * [SETTING] Privacy & Security>Firefox Data Collection & Use>...>Allow Firefox to install and run studies ***/ 82 | user_pref("app.shield.optoutstudies.enabled", false); 83 | /* 0343: disable personalized Extension Recommendations in about:addons and AMO [FF65+] 84 | * [NOTE] This pref has no effect when Health Reports (0340) are disabled 85 | * [SETTING] Privacy & Security>Firefox Data Collection & Use>...>Allow Firefox to make personalized extension rec. 86 | * [1] https://support.mozilla.org/kb/personalized-extension-recommendations ***/ 87 | user_pref("browser.discovery.enabled", false); 88 | /* 0350: disable Crash Reports ***/ 89 | user_pref("breakpad.reportURL", ""); 90 | user_pref("browser.tabs.crashReporting.sendReport", false); // [FF44+] 91 | user_pref("browser.crashReports.unsubmittedCheck.enabled", false); // [FF51+] 92 | /* 0351: disable backlogged Crash Reports 93 | * [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send backlogged crash reports ***/ 94 | user_pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); // [FF58+] 95 | 96 | /* 0390: disable Captive Portal detection 97 | * [1] https://en.wikipedia.org/wiki/Captive_portal 98 | * [2] https://wiki.mozilla.org/Necko/CaptivePortal 99 | * [3] https://trac.torproject.org/projects/tor/ticket/21790 ***/ 100 | user_pref("captivedetect.canonicalURL", ""); 101 | user_pref("network.captive-portal-service.enabled", false); // [FF52+] 102 | 103 | /* 0503: disable Normandy/Shield [FF60+] 104 | * Shield is an telemetry system (including Heartbeat) that can also push and test "recipes" 105 | * [1] https://wiki.mozilla.org/Firefox/Shield 106 | * [2] https://github.com/mozilla/normandy ***/ 107 | user_pref("app.normandy.enabled", false); 108 | user_pref("app.normandy.api_url", ""); 109 | 110 | /* 0601: disable link prefetching 111 | * [1] https://developer.mozilla.org/docs/Web/HTTP/Link_prefetching_FAQ ***/ 112 | user_pref("network.prefetch-next", false); 113 | /* 0602: disable DNS prefetching 114 | * [1] https://www.ghacks.net/2013/04/27/firefox-prefetching-what-you-need-to-know/ 115 | * [2] https://developer.mozilla.org/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control ***/ 116 | user_pref("network.dns.disablePrefetch", true); 117 | user_pref("network.dns.disablePrefetchFromHTTPS", true); // [HIDDEN PREF] 118 | /* 0603: disable predictor / prefetching ***/ 119 | user_pref("network.predictor.enabled", false); 120 | user_pref("network.predictor.enable-prefetch", false); // [FF48+] 121 | 122 | /* 0810: disable location bar making speculative connections [FF56+] 123 | * [1] https://bugzilla.mozilla.org/1348275 ***/ 124 | user_pref("browser.urlbar.speculativeConnect.enabled", false); 125 | 126 | /* custom: set cache dir to tmpfs */ 127 | user_pref("browser.cache.disk.parent_directory", "/tmp/plasmafox-cache"); 128 | 129 | /* 2001: disable WebRTC (Web Real-Time Communication) 130 | * [SETUP-WEB] WebRTC can leak your IP address from behind your VPN, but if this is not 131 | * in your threat model, and you want Real-Time Communication, this is the pref for you 132 | * [1] https://www.privacytools.io/#webrtc ***/ 133 | user_pref("media.peerconnection.enabled", false); 134 | /* 2002: limit WebRTC IP leaks if using WebRTC 135 | * [TEST] https://browserleaks.com/webrtc 136 | * [1] https://bugzilla.mozilla.org/buglist.cgi?bug_id=1189041,1297416 137 | * [2] https://wiki.mozilla.org/Media/WebRTC/Privacy ***/ 138 | user_pref("media.peerconnection.ice.default_address_only", true); 139 | user_pref("media.peerconnection.ice.no_host", true); // [FF51+] 140 | 141 | /* 2302: disable service workers [FF32, FF44-compat] 142 | * Service workers essentially act as proxy servers that sit between web apps, and the browser 143 | * and network, are event driven, and can control the web page/site it is associated with, 144 | * intercepting and modifying navigation and resource requests, and caching resources. 145 | * [NOTE] Service worker APIs are hidden (in Firefox) and cannot be used when in PB mode. 146 | * [NOTE] Service workers only run over HTTPS. Service workers have no DOM access. 147 | * [SETUP-WEB] Disabling service workers will break some sites. This pref is a master switch, and controls 148 | * notifications (2304, 2305) and service worker cache (2740) - all three are inactive. Notifications are 149 | * behind a prompt (2306). If you enable service workers, then you may want to look at those as well ***/ 150 | user_pref("dom.serviceWorkers.enabled", false); 151 | 152 | /* 2602: disable sending additional analytics to web servers 153 | * [1] https://developer.mozilla.org/docs/Web/API/Navigator/sendBeacon ***/ 154 | user_pref("beacon.enabled", false); 155 | 156 | /* 2606: disable UITour backend so there is no chance that a remote page can use it ***/ 157 | user_pref("browser.uitour.enabled", false); 158 | user_pref("browser.uitour.url", ""); 159 | 160 | /* 2702: set third-party cookies (i.e ALL) (if enabled, see 2701) to session-only 161 | and (FF58+) set third-party non-secure (i.e HTTP) cookies to session-only 162 | [NOTE] .sessionOnly overrides .nonsecureSessionOnly except when .sessionOnly=false and 163 | .nonsecureSessionOnly=true. This allows you to keep HTTPS cookies, but session-only HTTP ones 164 | * [1] https://feeding.cloud.geek.nz/posts/tweaking-cookies-for-privacy-in-firefox/ 165 | * [2] http://kb.mozillazine.org/Network.cookie.thirdparty.sessionOnly ***/ 166 | user_pref("network.cookie.thirdparty.sessionOnly", true); 167 | user_pref("network.cookie.thirdparty.nonsecureSessionOnly", true); // [FF58+] 168 | 169 | /* 4001: enable First Party Isolation [FF51+] 170 | * [SETUP-WEB] May break cross-domain logins and site functionality until perfected 171 | * [1] https://bugzilla.mozilla.org/1260931 ***/ 172 | user_pref("privacy.firstparty.isolate", true); 173 | /* 4002: enforce FPI restriction for window.opener [FF54+] 174 | * [NOTE] Setting this to false may reduce the breakage in 4001 175 | * FF65+ blocks postMessage with targetOrigin "*" if originAttributes don't match. But 176 | * to reduce breakage it ignores the 1st-party domain (FPD) originAttribute. (see [2],[3]) 177 | * The 2nd pref removes that limitation and will only allow communication if FPDs also match. 178 | * [1] https://bugzilla.mozilla.org/1319773#c22 179 | * [2] https://bugzilla.mozilla.org/1492607 180 | * [3] https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage ***/ 181 | user_pref("privacy.firstparty.isolate.restrict_opener_access", true); // [DEFAULT: true] 182 | 183 | /* 4608: [2021] disable the SpeechSynthesis (Text-to-Speech) part of the Web Speech API 184 | * [1] https://developer.mozilla.org/docs/Web/API/Web_Speech_API 185 | * [2] https://developer.mozilla.org/docs/Web/API/SpeechSynthesis 186 | * [3] https://wiki.mozilla.org/HTML5_Speech_API */ 187 | user_pref("media.webspeech.synth.enabled", false); 188 | 189 | user_pref("identity.fxaccounts.enabled", false); // disable and hide Firefox Accounts and Sync [FF60+] [RESTART] 190 | user_pref("identity.fxaccounts.toolbar.enabled", false); // disable FA in Toolbar 191 | -------------------------------------------------------------------------------- /vendor.js: -------------------------------------------------------------------------------- 1 | // Use LANG environment variable to choose locale 2 | pref("intl.locale.requested", ""); 3 | // Use system-provided dictionaries 4 | pref("spellchecker.dictionary_path", "/usr/share/hunspell"); 5 | // Disable default browser checking. 6 | pref("browser.shell.checkDefaultBrowser", false); 7 | 8 | // Don't disable our bundled extensions in the application directory 9 | pref("extensions.autoDisableScopes", 11); 10 | 11 | // Additions 12 | pref("app.feedback.baseURL", "https://github.com/torvic9/plasmafox"); 13 | pref("app.normandy.enabled", false); 14 | pref("app.shield.optoutstudies.enabled", false); 15 | pref("app.support.baseURL", "https://github.com/torvic9/plasmafox"); 16 | pref("app.update.staging.enabled", false); 17 | pref("beacon.enabled", false); 18 | pref("browser.contentblocking.report.lockwise.enabled", false); 19 | pref("browser.contentblocking.report.monitor.enabled", false); 20 | pref("browser.discovery.containers.enabled", false); 21 | pref("browser.discovery.enabled", false); 22 | pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", ""); 23 | pref("browser.newtabpage.activity-stream.feeds.discoverystreamfeed", false); 24 | pref("browser.newtabpage.activity-stream.feeds.section.topstories", false); 25 | pref("browser.newtabpage.activity-stream.feeds.snippets", false); 26 | pref("browser.newtabpage.activity-stream.feeds.telemetry", false); 27 | pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false); 28 | pref("browser.newtabpage.activity-stream.showSponsored", false); 29 | pref("browser.newtabpage.activity-stream.telemetry", false); 30 | pref("browser.newtabpage.activity-stream.telemetry.ping.endpoint", ""); 31 | pref("browser.newtabpage.directory.source", "data:application/json,{}"); 32 | pref("browser.newtabpage.enhanced", false); 33 | pref("browser.ping-centre.telemetry", false); 34 | pref("browser.privatebrowsing.forceMediaMemoryCache", true); 35 | pref("browser.safebrowsing.downloads.remote.enabled", false); 36 | pref("browser.search.defaultenginename", "DuckDuckGo"); 37 | pref("browser.search.geoSpecificDefaults", false); 38 | pref("browser.send_pings", false); 39 | pref("browser.send_pings.require_same_host", true); 40 | pref("browser.sessionstore.privacy_level", 1); 41 | pref("browser.tabs.crashReporting.sendReport", false); 42 | pref("browser.tabs.drawInTitlebar", true); 43 | pref("browser.uitour.enabled", false); 44 | pref("browser.urlbar.speculativeConnect.enabled", false); 45 | pref("browser.urlbar.trimURLs", false); 46 | pref("captivedetect.canonicalURL", ""); 47 | pref("datareporting.healthreport.infoURL", ""); 48 | pref("datareporting.healthreport.uploadEnabled", false); 49 | pref("datareporting.policy.dataSubmissionEnabled", false); 50 | pref("devtools.debugger.remote-enabled", false); 51 | pref("devtools.onboarding.telemetry.logged", false); 52 | pref("dom.enable_performance", false); 53 | pref("extensions.pocket.enabled", false); 54 | pref("general.useragent.override.addons.mozilla.org", "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0"); 55 | pref("geo.provider.use_gpsd", false); 56 | pref("geo.wifi.uri", ""); 57 | pref("identity.fxaccounts.commands.enabled", false); 58 | pref("identity.fxaccounts.enabled", false); 59 | pref("identity.fxaccounts.toolbar.enabled", false); 60 | pref("identity.mobilepromo.android", ""); 61 | pref("identity.mobilepromo.ios", ""); 62 | pref("layout.spellcheckDefault", 0); 63 | pref("media.autoplay.blocking_policy", 2); 64 | pref("media.autoplay.block-webaudio", true); 65 | pref("media.autoplay.default", 5); // 0=Allowed, 1=Blocked, 5=All Blocked 66 | pref("media.peerconnection.enabled", false); 67 | pref("media.peerconnection.ice.default_address_only", true); 68 | pref("media.peerconnection.ice.no_host", true); 69 | pref("network.captive-portal-service.enabled", false); 70 | pref("network.connectivity-service.enabled", false); 71 | pref("network.dns.disablePrefetch", true); 72 | pref("network.http.referer.XOriginPolicy", 2); 73 | pref("network.http.referer.XOriginTrimmingPolicy", 2); 74 | pref("network.IDN_show_punycode", true); 75 | pref("network.predictor.enable-prefetch", false); 76 | pref("permissions.delegation.enabled", false); 77 | pref("privacy.resistFingerprinting", true); 78 | pref("privacy.trackingprotection.fingerprinting.enabled", true); 79 | pref("privacy.userContext.enabled", true); 80 | pref("privacy.userContext.longPressBehavior", 2); 81 | pref("privacy.userContext.ui.enabled", true); 82 | pref("security.csp.enable", true); 83 | pref("toolkit.coverage.opt-out", true); 84 | pref("toolkit.telemetry.archive.enabled", false); 85 | pref("toolkit.telemetry.bhrPing.enabled", false); 86 | pref("toolkit.telemetry.coverage.opt-out", true); 87 | pref("toolkit.telemetry.ecosystemtelemetry.enabled", false); 88 | pref("toolkit.telemetry.enabled", false); 89 | pref("toolkit.telemetry.firstShutdownPing.enabled", false); 90 | pref("toolkit.telemetry.hybridContent.enabled", false); 91 | pref("toolkit.telemetry.newProfilePing.enabled", false); 92 | pref("toolkit.telemetry.server", ""); 93 | pref("toolkit.telemetry.shutdownPingSender.enabled", false); 94 | pref("toolkit.telemetry.unified", false); 95 | pref("toolkit.telemetry.updatePing.enabled", false); 96 | pref("webgl.enable-debug-renderer-info", false); 97 | --------------------------------------------------------------------------------