Initial import

This commit is contained in:
2022-08-30 15:46:53 -04:00
commit e712bb5dc2
274 changed files with 27716 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
From: Jory A. Pratt <anarchy@gentoo.org>
Add the gentoo preferences for the omni.jar creation
diff --git a/mail/installer/package-manifest.in b/mail/installer/package-manifest.in
--- a/mail/installer/package-manifest.in
+++ b/mail/installer/package-manifest.in
@@ -313,16 +313,17 @@
@RESPATH@/components/devtools-startup.manifest
@RESPATH@/components/devtools-startup.js
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Default Profile Settings
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; default pref files
+@RESPATH@/defaults/pref/all-gentoo.js
@RESPATH@/defaults/pref/all-thunderbird.js
@RESPATH@/defaults/pref/channel-prefs.js
@RESPATH@/defaults/pref/composer.js
@RESPATH@/defaults/pref/mailnews.js
@RESPATH@/defaults/pref/mdn.js
@RESPATH@/defaults/pref/smime.js
@RESPATH@/defaults/pref/thunderbird-branding.js
@RESPATH@/greprefs.js

View File

@@ -0,0 +1,11 @@
diff -ruN a/mail/installer/package-manifest.in b/mail/installer/package-manifest.in
--- a/mail/installer/package-manifest.in 2020-08-21 14:39:34.000000000 +0200
+++ b/mail/installer/package-manifest.in 2020-08-27 20:35:35.308786093 +0200
@@ -270,6 +270,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; default pref files
+@RESPATH@/defaults/pref/all-gentoo.js
@RESPATH@/defaults/pref/all-thunderbird.js
@RESPATH@/defaults/pref/channel-prefs.js
@RESPATH@/defaults/pref/composer.js

View File

@@ -0,0 +1,24 @@
From: Mike Hommey <glandium@debian.org>
Date: Sat, 27 Sep 2008 17:17:39 +0200
Subject: Don't register plugins if the MOZILLA_DISABLE_PLUGINS environment
variable is set
---
dom/plugins/base/nsPluginHost.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp
index ad37e00..e5833d7 100644
--- a/dom/plugins/base/nsPluginHost.cpp
+++ b/dom/plugins/base/nsPluginHost.cpp
@@ -290,6 +290,10 @@ nsPluginHost::nsPluginHost()
Preferences::AddStrongObserver(this, "plugin.disable");
}
+ const char *env = PR_GetEnv("MOZILLA_DISABLE_PLUGINS");
+ if (env && env[0])
+ mPluginsDisabled = PR_TRUE;
+
nsCOMPtr<nsIObserverService> obsService =
mozilla::services::GetObserverService();
if (obsService) {

View File

@@ -0,0 +1,21 @@
From: Mike Hommey <mh@glandium.org>
Date: Sun, 5 Feb 2017 08:41:22 +0900
Subject: Set program name from the remoting name
---
toolkit/xre/nsAppRunner.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index ef72d1b..4affb82 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -3750,7 +3750,7 @@ int XREMain::XRE_mainStartup(bool* aExitFlag) {
// Set program name to the one defined in application.ini.
{
- nsAutoCString program(gAppData->name);
+ nsAutoCString program(gAppData->remotingName);
ToLowerCase(program);
g_set_prgname(program.get());
}

View File

@@ -0,0 +1,34 @@
From: Mike Hommey <mh@glandium.org>
Date: Mon, 3 Sep 2018 07:37:40 +0900
Subject: Use remoting name for call to gdk_set_program_class
Closes: #907574
---
widget/gtk/nsAppShell.cpp | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/widget/gtk/nsAppShell.cpp b/widget/gtk/nsAppShell.cpp
index a424664..1126bf9 100644
--- a/widget/gtk/nsAppShell.cpp
+++ b/widget/gtk/nsAppShell.cpp
@@ -24,6 +24,7 @@
# include "WakeLockListener.h"
#endif
#include "gfxPlatform.h"
+#include "nsAppRunner.h"
#include "ScreenHelperGTK.h"
#include "HeadlessScreenHelper.h"
#include "mozilla/widget/ScreenManager.h"
@@ -178,10 +179,8 @@ nsresult nsAppShell::Init() {
// creating top-level windows. (At this point, a child process hasn't
// received the list of registered chrome packages, so the
// GetBrandShortName call would fail anyway.)
- nsAutoString brandName;
- mozilla::widget::WidgetUtils::GetBrandShortName(brandName);
- if (!brandName.IsEmpty()) {
- gdk_set_program_class(NS_ConvertUTF16toUTF8(brandName).get());
+ if (gAppData) {
+ gdk_set_program_class(gAppData->remotingName);
}
}
}

View File

@@ -0,0 +1,77 @@
From: Mike Hommey <glandium@debian.org>
Date: Sat, 21 Jun 2008 02:48:46 +0200
Subject: Allow .js preference files to set locked prefs with lockPref()
---
modules/libpref/parser/src/lib.rs | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/modules/libpref/parser/src/lib.rs b/modules/libpref/parser/src/lib.rs
index a8c5b6b..aceacf3 100644
--- a/modules/libpref/parser/src/lib.rs
+++ b/modules/libpref/parser/src/lib.rs
@@ -10,7 +10,7 @@
//!
//! <pref-file> = <pref>*
//! <pref> = <pref-spec> "(" <pref-name> "," <pref-value> <pref-attrs> ")" ";"
-//! <pref-spec> = "user_pref" | "pref" | "sticky_pref" // in default pref files
+//! <pref-spec> = "user_pref" | "pref" | "sticky_pref | lockPref" // in default pref files
//! <pref-spec> = "user_pref" // in user pref files
//! <pref-name> = <string-literal>
//! <pref-value> = <string-literal> | "true" | "false" | <int-value>
@@ -169,6 +169,7 @@ enum Token {
// Keywords
Pref, // pref
StickyPref, // sticky_pref
+ LockPref, // lockPref
UserPref, // user_pref
True, // true
False, // false
@@ -291,7 +292,7 @@ struct KeywordInfo {
token: Token,
}
-const KEYWORD_INFOS: [KeywordInfo; 7] = [
+const KEYWORD_INFOS: [KeywordInfo; 8] = [
// These are ordered by frequency.
KeywordInfo {
string: b"pref",
@@ -321,6 +322,10 @@ const KEYWORD_INFOS: [KeywordInfo; 7] = [
string: b"sticky_pref",
token: Token::StickyPref,
},
+ KeywordInfo {
+ string: b"lock_pref",
+ token: Token::LockPref,
+ },
];
struct Parser<'t> {
@@ -373,14 +378,11 @@ impl<'t> Parser<'t> {
// this will be either the first token of a new pref, or EOF.
loop {
// <pref-spec>
- let (pref_value_kind, mut is_sticky) = match token {
- Token::Pref if self.kind == PrefValueKind::Default => {
- (PrefValueKind::Default, false)
- }
- Token::StickyPref if self.kind == PrefValueKind::Default => {
- (PrefValueKind::Default, true)
- }
- Token::UserPref => (PrefValueKind::User, false),
+ let (pref_value_kind, mut is_sticky, mut is_locked) = match token {
+ Token::Pref => (PrefValueKind::Default, false, false),
+ Token::StickyPref => (PrefValueKind::Default, true, false),
+ Token::LockPref => (PrefValueKind::Default, false, true),
+ Token::UserPref => (PrefValueKind::User, false, false),
Token::SingleChar(EOF) => return !self.has_errors,
_ => {
token = self.error_and_recover(
@@ -490,7 +492,6 @@ impl<'t> Parser<'t> {
};
// ("," <pref-attr>)* // default pref files only
- let mut is_locked = false;
let mut has_attrs = false;
if self.kind == PrefValueKind::Default {
let ok = loop {

View File

@@ -0,0 +1,22 @@
From: Christoph Goehre <chris@sigxcpu.org>
Date: Mon, 16 Sep 2013 20:40:57 +0200
Subject: Load-dependent-libraries-with-their-real-path-to-avo
---
xpcom/glue/standalone/nsXPCOMGlue.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/xpcom/glue/standalone/nsXPCOMGlue.cpp b/xpcom/glue/standalone/nsXPCOMGlue.cpp
index cf8e265..d1c5a85 100644
--- a/xpcom/glue/standalone/nsXPCOMGlue.cpp
+++ b/xpcom/glue/standalone/nsXPCOMGlue.cpp
@@ -132,6 +132,9 @@ static bool ReadDependentCB(pathstr_t aDependentLib,
ReadAheadLib(aDependentLib);
}
#endif
+ char lib[MAXPATHLEN];
+ if (realpath(aDependentLib, lib))
+ aDependentLib = lib;
LibHandleType libHandle = GetLibHandle(aDependentLib);
if (libHandle) {
AppendDependentLib(libHandle);

View File

@@ -0,0 +1,24 @@
From: Mike Hommey <glandium@debian.org>
Date: Sat, 22 Nov 2008 09:35:23 +0100
Subject: Properly launch applications set in $HOME/.mailcap
https://bugzilla.mozilla.org/show_bug.cgi?id=444440
---
uriloader/exthandler/unix/nsMIMEInfoUnix.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
index 7cbefcc..c4bafef 100644
--- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
+++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
@@ -53,6 +53,10 @@ nsresult nsMIMEInfoUnix::LaunchDefaultWithFile(nsIFile* aFile) {
if (mDefaultApplication) return nsMIMEInfoImpl::LaunchDefaultWithFile(aFile);
nsAutoCString nativePath;
+/* the name of the function has changed
+ * the old was the following:
+ nsCAutoString nativePath;
+ */
aFile->GetNativePath(nativePath);
nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);

View File

@@ -0,0 +1,22 @@
From: Carsten Schoenert <c.schoenert@t-online.de>
Date: Sat, 9 Mar 2013 20:30:54 +0100
Subject: fix function nsMsgComposeAndSend to respect ReploToSend
https://bugzilla.mozilla.org/show_bug.cgi?id=522450
Closes: #565903
---
comm/mailnews/compose/src/nsMsgSend.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/comm/mailnews/compose/src/nsMsgSend.cpp b/comm/mailnews/compose/src/nsMsgSend.cpp
index a1e1b40..b0525a3 100644
--- a/comm/mailnews/compose/src/nsMsgSend.cpp
+++ b/comm/mailnews/compose/src/nsMsgSend.cpp
@@ -2326,6 +2326,7 @@ nsresult nsMsgComposeAndSend::InitCompositionFields(
(aType == nsIMsgCompType::Reply ||
aType == nsIMsgCompType::ReplyAll ||
aType == nsIMsgCompType::ReplyToGroup ||
+ aType == nsIMsgCompType::ReplyToList ||
aType == nsIMsgCompType::ReplyToSender ||
aType == nsIMsgCompType::ReplyToSenderAndGroup ||
aType == nsIMsgCompType::ReplyWithTemplate)) {

View File

@@ -0,0 +1,21 @@
From: Christoph Goehre <chris@sigxcpu.org>
Date: Sat, 24 Mar 2012 11:54:43 +0100
Subject: Don't auto-disable extensions in system directories
---
comm/mail/app/profile/all-thunderbird.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/comm/mail/app/profile/all-thunderbird.js b/comm/mail/app/profile/all-thunderbird.js
index 960700b..3467648 100644
--- a/comm/mail/app/profile/all-thunderbird.js
+++ b/comm/mail/app/profile/all-thunderbird.js
@@ -137,7 +137,7 @@ pref("extensions.hotfix.certs.2.sha1Fingerprint", "39:E7:2B:7A:5B:CF:37:78:F9:5D
// Disable add-ons installed into the shared user and shared system areas by
// default. This does not include the application directory. See the SCOPE
// constants in AddonManager.jsm for values to use here
-pref("extensions.autoDisableScopes", 15);
+pref("extensions.autoDisableScopes", 3);
// Enable add-ons installed and owned by the application, like the default theme.
pref("extensions.startupScanScopes", 4);

View File

@@ -0,0 +1,33 @@
From: Mike Hommey <glandium@debian.org>
Date: Sat, 8 Dec 2007 19:24:40 +0100
Subject: Set javascript.options.showInConsole
---
modules/libpref/init/all.js | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
index aa373d1..a211fe5 100644
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -1148,11 +1148,20 @@ pref("javascript.options.ion.offthread_compilation", true);
// memory, but makes things like Function.prototype.toSource()
// fail.
pref("javascript.options.discardSystemSource", false);
+pref("javascript.options.showInConsole", true);
// Many of the the following preferences tune the SpiderMonkey GC, if you
// change the defaults here please also consider changing them in
// js/src/jsgc.cpp. They're documented in js/src/jsapi.h.
+// JSGC_MAX_MALLOC_BYTES
+// How much malloc memory can be allocated before triggering a GC, in MB.
+// This preference limits the memory usage of javascript.
+// If you want to change these values for your device,
+// please find Bug 417052 comment 17 and Bug 456721
+// Comment 32 and Bug 613551.
+pref("javascript.options.mem.high_water_mark", 128);
+
// JSGC_MAX_BYTES
// SpiderMonkey defaults to 2^32-1 bytes, but this is measured in MB so that
// cannot be represented directly in order to show it in about:config.

View File

@@ -0,0 +1,9 @@
fixes/Properly-launch-applications-set-in-HOME-.mailcap.patch
debian-hacks/Don-t-register-plugins-if-the-MOZILLA_DISABLE_PLUGIN.patch
fixes/Load-dependent-libraries-with-their-real-path-to-avo.patch
prefs/Set-javascript.options.showInConsole.patch
prefs/Don-t-auto-disable-extensions-in-system-directories.patch
fixes/fix-function-nsMsgComposeAndSend-to-respect-Replo.patch
fixes/Allow-.js-preference-files-to-set-locked-prefs-with-lockP.patch
debian-hacks/Set-program-name-from-the-remoting-name.patch
debian-hacks/Use-remoting-name-for-call-to-gdk_set_program_class.patch

View File

@@ -0,0 +1,5 @@
{
"policies": {
"DisableAppUpdate": true
}
}

View File

@@ -0,0 +1,12 @@
diff -up thunderbird-60.5.0/mfbt/LinuxSignal.h.mozilla-1238661 thunderbird-60.5.0/mfbt/LinuxSignal.h
--- thunderbird-60.5.0/mfbt/LinuxSignal.h.mozilla-1238661 2019-01-30 11:33:21.447003175 +0100
+++ thunderbird-60.5.0/mfbt/LinuxSignal.h 2019-01-30 11:35:13.848537051 +0100
@@ -22,7 +22,7 @@ __attribute__((naked)) void SignalTrampo
void* aContext) {
asm volatile("nop; nop; nop; nop" : : : "memory");
- asm volatile("b %0" : : "X"(H) : "memory");
+ asm volatile("bx %0" : : "r"(H), "l"(aSignal), "l"(aInfo), "l"(aContext) : "memory");
}
#define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline<h>)

View File

@@ -0,0 +1,12 @@
diff -up thunderbird-68.0/toolkit/moz.configure.elfhack thunderbird-68.0/toolkit/moz.configure
--- thunderbird-68.0/toolkit/moz.configure.elfhack 2019-08-29 16:33:28.491708653 +0200
+++ thunderbird-68.0/toolkit/moz.configure 2019-08-29 16:33:58.019805525 +0200
@@ -1130,7 +1130,7 @@ with only_when('--enable-compile-environ
help='{Enable|Disable} elf hacks')
set_config('USE_ELF_HACK',
- depends_if('--enable-elf-hack')(lambda _: True))
+ depends_if('--enable-elf-hack')(lambda _: False))
@depends(check_build_environment)

View File

@@ -0,0 +1,16 @@
diff -up firefox-68.0/media/libyuv/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.old firefox-68.0/media/libyuv/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium
diff -up firefox-68.0/media/webrtc/trunk/Makefile.old firefox-68.0/media/webrtc/trunk/Makefile
diff -up firefox-68.0/media/webrtc/trunk/webrtc/rtc_base/physicalsocketserver.cc.old firefox-68.0/media/webrtc/trunk/webrtc/rtc_base/physicalsocketserver.cc
--- firefox-68.0/media/webrtc/trunk/webrtc/rtc_base/physicalsocketserver.cc.old 2019-07-10 20:10:04.420328534 +0200
+++ firefox-68.0/media/webrtc/trunk/webrtc/rtc_base/physicalsocketserver.cc 2019-07-10 20:13:48.766658793 +0200
@@ -62,6 +62,10 @@ typedef void* SockOptArg;
#if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(WEBRTC_BSD) && !defined(__native_client__)
+#ifndef SIOCGSTAMP
+#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
+#endif
+
int64_t GetSocketRecvTimestamp(int socket) {
struct timeval tv_ioctl;
int ret = ioctl(socket, SIOCGSTAMP, &tv_ioctl);

View File

@@ -0,0 +1,17 @@
# Remove when mozbz#1269319 lands
--- firefox-45.0.1-orig/js/src/Makefile.in 2016-05-17 14:53:58.753178403 +0200
+++ firefox-45.0.1/js/src/Makefile.in 2016-05-17 14:53:28.432817862 +0200
@@ -144,6 +144,11 @@ distclean::
CFLAGS += $(MOZ_ZLIB_CFLAGS)
+# Avoid GNU gcc bug #70526
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70526#c14
+CFLAGS += -fno-schedule-insns2
+CXXFLAGS += -fno-schedule-insns2
+
# Silence warnings on AIX/HP-UX from non-GNU compilers
ifndef GNU_CC
ifeq ($(OS_ARCH),AIX)

View File

@@ -0,0 +1,12 @@
diff -up thunderbird-68.0/gfx/skia/skia/include/private/SkNx.h.1353817 thunderbird-68.0/gfx/skia/skia/include/private/SkNx.h
--- thunderbird-68.0/gfx/skia/skia/include/private/SkNx.h.1353817 2019-08-29 16:31:20.892290062 +0200
+++ thunderbird-68.0/gfx/skia/skia/include/private/SkNx.h 2019-08-29 16:32:05.430436157 +0200
@@ -416,7 +416,7 @@ typedef SkNx<8, uint32_t> Sk8u;
// Include platform specific specializations if available.
#if !defined(SKNX_NO_SIMD) && SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
#include "SkNx_sse.h"
-#elif !defined(SKNX_NO_SIMD) && defined(SK_ARM_HAS_NEON)
+#elif !defined(SKNX_NO_SIMD) && (defined(SK_ARM_HAS_NEON) || defined(SK_CPU_ARM64))
#include "SkNx_neon.h"
#else

View File

@@ -0,0 +1,21 @@
diff -up thunderbird-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp.mozbz-1512162 thunderbird-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp
--- thunderbird-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp.mozbz-1512162 2019-09-10 01:43:33.000000000 +0200
+++ thunderbird-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp 2019-09-12 16:16:52.644123766 +0200
@@ -1092,7 +1092,7 @@ class MOZ_STACK_CLASS CallMethodHelper f
MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex,
MutableHandleValue srcp) const;
- MOZ_ALWAYS_INLINE bool GatherAndConvertResults();
+ bool GatherAndConvertResults();
MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
@@ -1139,7 +1139,7 @@ class MOZ_STACK_CLASS CallMethodHelper f
~CallMethodHelper();
- MOZ_ALWAYS_INLINE bool Call();
+ bool Call();
// Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
void trace(JSTracer* aTrc);

View File

@@ -0,0 +1,17 @@
diff --git a/widget/gtk/nsClipboardWayland.cpp b/widget/gtk/nsClipboardWayland.cpp
--- a/widget/gtk/nsClipboardWayland.cpp
+++ b/widget/gtk/nsClipboardWayland.cpp
@@ -195,6 +195,12 @@
uint32_t all_actions = WL_DATA_DEVICE_MANAGER_DND_ACTION_COPY |
WL_DATA_DEVICE_MANAGER_DND_ACTION_MOVE;
+ /* Default to move D&D action (Bug 1576268).
+ */
+ if (dnd_actions == 0) {
+ all_actions = WL_DATA_DEVICE_MANAGER_DND_ACTION_MOVE;
+ }
+
wl_data_offer_set_actions(mWaylandDataOffer, all_actions, dnd_actions);
/* Workaround Wayland D&D architecture here. To get the data_device_drop()

View File

@@ -0,0 +1,14 @@
diff -up firefox-60.6.0/widget/gtk/nsFilePicker.cpp.old firefox-60.6.0/widget/gtk/nsFilePicker.cpp
--- firefox-60.6.0/widget/gtk/nsFilePicker.cpp.old 2019-03-27 10:29:47.918560620 +0100
+++ firefox-60.6.0/widget/gtk/nsFilePicker.cpp 2019-03-27 10:30:08.384491717 +0100
@@ -366,9 +366,7 @@ nsFilePicker::Open(nsIFilePickerShownCal
// If we have --enable-proxy-bypass-protection, then don't allow
// remote URLs to be used.
#ifndef MOZ_PROXY_BYPASS_PROTECTION
- if (mAllowURLs) {
- gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(file_chooser), FALSE);
- }
+ gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(file_chooser), FALSE);
#endif
if (action == GTK_FILE_CHOOSER_ACTION_OPEN ||

View File

@@ -0,0 +1,11 @@
Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch
firefox-SIOCGSTAMP.patch
mozilla-1512162.patch
thunderbird-debug.patch
mozilla-1245783.patch
mozilla-1353817.patch
build-disable-elfhack.patch
mozilla-526293.patch
mozilla-1576268.patch

View File

@@ -0,0 +1,12 @@
diff -up thunderbird-60.6.1/intl/locale/LocaleService.cpp.debug thunderbird-60.6.1/intl/locale/LocaleService.cpp
--- thunderbird-60.6.1/intl/locale/LocaleService.cpp.debug 2019-05-15 08:15:14.602872505 +0200
+++ thunderbird-60.6.1/intl/locale/LocaleService.cpp 2019-05-15 08:15:53.717635322 +0200
@@ -643,8 +643,6 @@ LocaleService::GetDefaultLocale(nsACStri
// just use our hard-coded default below.
GetGREFileContents("update.locale", &locale);
locale.Trim(" \t\n\r");
- // This should never be empty.
- MOZ_ASSERT(!locale.IsEmpty());
if (SanitizeForBCP47(locale, true)) {
mDefaultLocale.Assign(locale);
}

View File

@@ -0,0 +1,15 @@
diff -up firefox-68.0/mfbt/LinuxSignal.h.1238661 firefox-68.0/mfbt/LinuxSignal.h
--- firefox-68.0/mfbt/LinuxSignal.h.1238661 2019-07-08 22:27:29.620749569 +0200
+++ firefox-68.0/mfbt/LinuxSignal.h 2019-07-08 22:44:17.794112428 +0200
@@ -22,7 +22,10 @@ __attribute__((naked)) void SignalTrampo
void* aContext) {
asm volatile("nop; nop; nop; nop" : : : "memory");
- asm volatile("b %0" : : "X"(H) : "memory");
+ // Because the assembler may generate additional insturctions below, we
+ // need to ensure NOPs are inserted first by separating them out above.
+
+ asm volatile("bx %0" : : "r"(H), "l"(aSignal), "l"(aInfo), "l"(aContext) : "memory");
}
# define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline<h>)

View File

@@ -0,0 +1,12 @@
diff -up firefox-65.0/toolkit/moz.configure.disable-elfhack firefox-65.0/toolkit/moz.configure
--- firefox-65.0/toolkit/moz.configure.disable-elfhack 2019-01-28 14:16:48.530345132 +0100
+++ firefox-65.0/toolkit/moz.configure 2019-01-28 14:18:03.231029682 +0100
@@ -1036,7 +1036,7 @@ with only_when('--enable-compile-environ
help='{Enable|Disable} elf hacks')
set_config('USE_ELF_HACK',
- depends_if('--enable-elf-hack')(lambda _: True))
+ depends_if('--enable-elf-hack')(lambda _: False))
@depends(check_build_environment)

View File

@@ -0,0 +1,99 @@
diff -up firefox-75.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-75.0/extensions/pref/autoconfig/src/nsReadConfig.cpp
--- firefox-75.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2020-04-03 21:34:41.000000000 +0200
+++ firefox-75.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2020-04-06 22:40:02.760674871 +0200
@@ -244,8 +244,20 @@ nsresult nsReadConfig::openAndEvaluateJS
if (NS_FAILED(rv)) return rv;
rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
- if (NS_FAILED(rv)) return rv;
+ if (NS_FAILED(rv)) {
+ // Look for cfg file in /etc/<application>/pref
+ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR,
+ getter_AddRefs(jsFile));
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ rv = jsFile->AppendNative(NS_LITERAL_CSTRING("pref"));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = jsFile->AppendNative(nsDependentCString(aFileName));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
+ NS_ENSURE_SUCCESS(rv, rv);
+ }
} else {
nsAutoCString location("resource://gre/defaults/autoconfig/");
location += aFileName;
diff -up firefox-75.0/modules/libpref/Preferences.cpp.1170092 firefox-75.0/modules/libpref/Preferences.cpp
--- firefox-75.0/modules/libpref/Preferences.cpp.1170092 2020-04-06 22:40:02.761674865 +0200
+++ firefox-75.0/modules/libpref/Preferences.cpp 2020-04-06 22:40:57.675325227 +0200
@@ -4468,6 +4468,9 @@ nsresult Preferences::InitInitialObjects
//
// Thus, in the omni.jar case, we always load app-specific default
// preferences from omni.jar, whether or not `$app == $gre`.
+ //
+ // At very end load configuration from system config location:
+ // - /etc/firefox/pref/*.js
nsresult rv = NS_ERROR_FAILURE;
UniquePtr<nsZipFind> find;
diff -up firefox-75.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-75.0/toolkit/xre/nsXREDirProvider.cpp
--- firefox-75.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2020-04-03 21:35:39.000000000 +0200
+++ firefox-75.0/toolkit/xre/nsXREDirProvider.cpp 2020-04-06 22:40:02.761674865 +0200
@@ -60,6 +60,7 @@
#endif
#ifdef XP_UNIX
# include <ctype.h>
+# include "nsIXULAppInfo.h"
#endif
#ifdef XP_IOS
# include "UIKitDirProvider.h"
@@ -533,6 +534,21 @@ nsXREDirProvider::GetFile(const char* aP
}
}
}
+
+#if defined(XP_UNIX)
+ if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) {
+ nsCString sysConfigDir = NS_LITERAL_CSTRING("/etc/");
+ nsCOMPtr<nsIXULAppInfo> appInfo = do_GetService("@mozilla.org/xre/app-info;1");
+ if (!appInfo)
+ return NS_ERROR_NOT_AVAILABLE;
+ nsCString appName;
+ appInfo->GetName(appName);
+ ToLowerCase(appName);
+ sysConfigDir.Append(appName);
+ return NS_NewNativeLocalFile(sysConfigDir, false, aFile);
+ }
+#endif
+
if (NS_FAILED(rv) || !file) return NS_ERROR_FAILURE;
if (ensureFilePermissions) {
@@ -845,6 +861,16 @@ nsresult nsXREDirProvider::GetFilesInter
LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories);
+ // Add /etc/<application>/pref/ directory if it exists
+ nsCOMPtr<nsIFile> systemPrefDir;
+ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR,
+ getter_AddRefs(systemPrefDir));
+ if (NS_SUCCEEDED(rv)) {
+ rv = systemPrefDir->AppendNative(NS_LITERAL_CSTRING("pref"));
+ if (NS_SUCCEEDED(rv))
+ directories.AppendObject(systemPrefDir);
+ }
+
rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile));
} else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) {
// NS_APP_CHROME_DIR_LIST is only used to get default (native) icons
diff -up firefox-75.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-75.0/xpcom/io/nsAppDirectoryServiceDefs.h
--- firefox-75.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2020-04-03 21:35:39.000000000 +0200
+++ firefox-75.0/xpcom/io/nsAppDirectoryServiceDefs.h 2020-04-06 22:40:02.761674865 +0200
@@ -60,6 +60,7 @@
#define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL"
#define NS_APP_PREFS_OVERRIDE_DIR \
"PrefDOverride" // Directory for per-profile defaults
+#define NS_APP_PREFS_SYSTEM_CONFIG_DIR "PrefSysConf" // Directory with system-wide configuration
#define NS_APP_USER_PROFILE_50_DIR "ProfD"
#define NS_APP_USER_PROFILE_LOCAL_50_DIR "ProfLD"

View File

@@ -0,0 +1,12 @@
diff -up firefox-70.0/layout/base/PresShell.h.1354671 firefox-70.0/layout/base/PresShell.h
--- firefox-70.0/layout/base/PresShell.h.1354671 2019-10-22 12:33:12.987775587 +0200
+++ firefox-70.0/layout/base/PresShell.h 2019-10-22 12:36:39.999366086 +0200
@@ -257,7 +257,7 @@ class PresShell final : public nsStubDoc
* to the same aSize value. AllocateFrame is infallible and will abort
* on out-of-memory.
*/
- void* AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize) {
+ void* __attribute__((optimize("no-lifetime-dse"))) AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize) {
#define FRAME_ID(classname, ...) \
static_assert(size_t(nsQueryFrame::FrameIID::classname##_id) == \
size_t(eArenaObjectID_##classname), \

View File

@@ -0,0 +1,6 @@
build-disable-elfhack.patch
mozilla-1170092.patch
rhbz-1354671.patch
Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Name=Mozilla Thunderbird
Comment=Mail & News Reader
Exec=/usr/bin/thunderbird %u
Icon=thunderbird-icon-unbranded
Terminal=false
Type=Application
Categories=Office;Email;
MimeType=text/x-vcard;text/directory;application/mbox;message/rfc822;x-scheme-handler/mailto;
StartupNotify=true

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Name=Mozilla Thunderbird
Comment=Mail & News Reader
Exec=/usr/bin/thunderbird %u
Icon=thunderbird-icon
Terminal=false
Type=Application
Categories=Office;Email;
MimeType=text/x-vcard;text/directory;application/mbox;message/rfc822;x-scheme-handler/mailto;
StartupNotify=true

View File

@@ -0,0 +1,34 @@
From 89767f5dd97e69d7e9189e5603647645818d27d6 Mon Sep 17 00:00:00 2001
From: marxin <mliska@suse.cz>
Date: Thu, 29 Nov 2018 10:07:29 +0100
Subject: [PATCH 2/3] Add kde.js in order to survive PGO build.
---
browser/app/Makefile.in | 1 +
kde.js | 2 ++
2 files changed, 3 insertions(+)
create mode 100644 kde.js
diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
index 4129aa43fb91..c9950895d520 100644
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -57,6 +57,7 @@ endif
libs:: $(srcdir)/profile/channel-prefs.js
$(NSINSTALL) -D $(DIST)/bin/defaults/pref
$(call py_action,preprocessor,-Fsubstitution $(PREF_PPFLAGS) $(ACDEFINES) $^ -o $(DIST)/bin/defaults/pref/channel-prefs.js)
+ cp $(topsrcdir)/kde.js $(DIST)/bin/defaults/pref/kde.js
ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
diff --git a/kde.js b/kde.js
new file mode 100644
index 000000000000..b0d3e5d20437
--- /dev/null
+++ b/kde.js
@@ -0,0 +1,2 @@
+pref("browser.preferences.instantApply", false);
+pref("browser.backspace_action", 0);
--
2.19.1

View File

@@ -0,0 +1,50 @@
# HG changeset patch
# Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de
# Parent 8a401a01454e9f5e8a357262d774e0ff348d9bc1
diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild
--- a/browser/branding/branding-common.mozbuild
+++ b/browser/branding/branding-common.mozbuild
@@ -22,12 +22,15 @@ def FirefoxBranding():
FINAL_TARGET_FILES.VisualElements += [
'VisualElements_150.png',
'VisualElements_70.png',
]
elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
FINAL_TARGET_FILES.chrome.icons.default += [
'default128.png',
'default16.png',
+ 'default22.png',
+ 'default24.png',
+ 'default256.png',
'default32.png',
'default48.png',
'default64.png',
]
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -404,20 +404,23 @@
@RESPATH@/browser/chrome/pdfjs.manifest
@RESPATH@/browser/chrome/pdfjs/*
@RESPATH@/chrome/toolkit@JAREXT@
@RESPATH@/chrome/toolkit.manifest
@RESPATH@/chrome/recording.manifest
@RESPATH@/chrome/recording/*
#ifdef MOZ_GTK
@RESPATH@/browser/chrome/icons/default/default16.png
+@RESPATH@/browser/chrome/icons/default/default22.png
+@RESPATH@/browser/chrome/icons/default/default24.png
@RESPATH@/browser/chrome/icons/default/default32.png
@RESPATH@/browser/chrome/icons/default/default48.png
@RESPATH@/browser/chrome/icons/default/default64.png
@RESPATH@/browser/chrome/icons/default/default128.png
+@RESPATH@/browser/chrome/icons/default/default256.png
#endif
@RESPATH@/browser/features/*
; [Webide Files]
@RESPATH@/browser/chrome/webide@JAREXT@
@RESPATH@/browser/chrome/webide.manifest
@RESPATH@/browser/@PREF_DIR@/webide.js

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
pref("intl.locale.requested", "");
pref("intl.multilingual.enabled", true);
pref("spellchecker.dictionary_path", "/usr/share/myspell");

View File

@@ -0,0 +1,81 @@
# HG changeset patch
# Parent 051b75a600dfbf7503c3485cebfd34d4eb29be96
Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834
diff -r 051b75a600df gfx/2d/DrawTargetSkia.cpp
--- a/gfx/2d/DrawTargetSkia.cpp Fri Jul 05 12:42:44 2019 +0200
+++ b/gfx/2d/DrawTargetSkia.cpp Mon Jul 08 10:59:30 2019 +0200
@@ -138,8 +138,7 @@
return surfaceBounds.Intersect(bounds);
}
-static const int kARGBAlphaOffset =
- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
+static const int kARGBAlphaOffset = 0; // Skia is always BGRA SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
const int32_t aStride, SurfaceFormat aFormat) {
diff -r 051b75a600df gfx/2d/Types.h
--- a/gfx/2d/Types.h Fri Jul 05 12:42:44 2019 +0200
+++ b/gfx/2d/Types.h Mon Jul 08 10:59:30 2019 +0200
@@ -85,15 +85,8 @@
// The following values are endian-independent synonyms. The _UINT32 suffix
// indicates that the name reflects the layout when viewed as a uint32_t
// value.
-#if MOZ_LITTLE_ENDIAN
A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB
X8R8G8B8_UINT32 = B8G8R8X8 // 0x00RRGGBB
-#elif MOZ_BIG_ENDIAN
- A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB
- X8R8G8B8_UINT32 = X8R8G8B8 // 0x00RRGGBB
-#else
-# error "bad endianness"
-#endif
};
static inline int BytesPerPixel(SurfaceFormat aFormat) {
diff -r 051b75a600df gfx/skia/skia/third_party/skcms/skcms.cc
--- a/gfx/skia/skia/third_party/skcms/skcms.cc Fri Jul 05 12:42:44 2019 +0200
+++ b/gfx/skia/skia/third_party/skcms/skcms.cc Mon Jul 08 10:59:30 2019 +0200
@@ -17,6 +17,8 @@
#include <arm_neon.h>
#elif defined(__SSE__)
#include <immintrin.h>
+#else
+ #define SKCMS_PORTABLE
#endif
// sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others.
@@ -124,20 +126,28 @@
static uint16_t read_big_u16(const uint8_t* ptr) {
uint16_t be;
memcpy(&be, ptr, sizeof(be));
-#if defined(_MSC_VER)
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+ return be;
+#else
+ #if defined(_MSC_VER)
return _byteswap_ushort(be);
-#else
+ #else
return __builtin_bswap16(be);
+ #endif
#endif
}
static uint32_t read_big_u32(const uint8_t* ptr) {
uint32_t be;
memcpy(&be, ptr, sizeof(be));
-#if defined(_MSC_VER)
+#if __BYTE_ORDER == __ORDER_BIG_ENDIAN__
+ return be;
+#else
+ #if defined(_MSC_VER)
return _byteswap_ulong(be);
-#else
+ #else
return __builtin_bswap32(be);
+ #endif
#endif
}

View File

@@ -0,0 +1,88 @@
# HG changeset patch
# Parent 548d0a2f3a22bfac32ec0c3921c6c969c8bf32a9
Skia does not support big endian. The places to fix are too numerous and upstream (skia, not Mozilla)
has no interest in maintaining big endian.
So here we try to swizzle the input for skia, so that skia always works on LE, and when it comes
out again, we transform back to BE.
diff -r 548d0a2f3a22 gfx/2d/ConvolutionFilter.cpp
--- a/gfx/2d/ConvolutionFilter.cpp Mon Jul 22 16:57:54 2019 +0200
+++ b/gfx/2d/ConvolutionFilter.cpp Thu Jul 25 14:27:59 2019 +0200
@@ -35,9 +35,38 @@
return true;
}
+static void ByteSwapArray(uint8_t *u8Array, int32_t size) {
+ uint32_t *array = reinterpret_cast<uint32_t*>(u8Array);
+ for (int pxl = 0; pxl < size; ++pxl) {
+ // Use an endian swap to move the bytes, i.e. BGRA -> ARGB.
+ uint32_t rgba = array[pxl];
+ array[pxl] = NativeEndian::swapToLittleEndian(rgba);
+ }
+}
+
void ConvolutionFilter::ConvolveHorizontally(const uint8_t* aSrc, uint8_t* aDst,
bool aHasAlpha) {
+#ifdef MOZ_BIG_ENDIAN
+ int outputSize = mFilter->numValues();
+
+ // Input size isn't handed in, so we have to calculate it quickly
+ int inputSize = 0;
+ for (int xx = 0; xx < outputSize; ++xx) {
+ // Get the filter that determines the current output pixel.
+ int filterOffset, filterLength;
+ mFilter->FilterForValue(xx, &filterOffset, &filterLength);
+ inputSize = std::max(inputSize, filterOffset + filterLength);
+ }
+
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
+#endif
+
SkOpts::convolve_horizontally(aSrc, *mFilter, aDst, aHasAlpha);
+
+#ifdef MOZ_BIG_ENDIAN
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
+ ByteSwapArray(aDst, outputSize);
+#endif
}
void ConvolutionFilter::ConvolveVertically(uint8_t* const* aSrc, uint8_t* aDst,
@@ -49,8 +78,26 @@
int32_t filterLength;
auto filterValues =
mFilter->FilterForValue(aRowIndex, &filterOffset, &filterLength);
+
+#ifdef MOZ_BIG_ENDIAN
+ for (int filterY = 0; filterY < filterLength; filterY++) {
+ // Skia only knows LE, so we have to swizzle the input
+ ByteSwapArray(aSrc[filterY], aRowSize);
+ }
+#endif
+
SkOpts::convolve_vertically(filterValues, filterLength, aSrc, aRowSize, aDst,
aHasAlpha);
+
+#ifdef MOZ_BIG_ENDIAN
+ // After skia is finished, we swizzle back to BE, in case
+ // the input is used again somewhere else
+ for (int filterY = 0; filterY < filterLength; filterY++) {
+ ByteSwapArray(aSrc[filterY], aRowSize);
+ }
+ // The destination array as well
+ ByteSwapArray(aDst, aRowSize);
+#endif
}
/* ConvolutionFilter::ComputeResizeFactor is derived from Skia's
diff -r 548d0a2f3a22 gfx/skia/skia/include/core/SkPreConfig.h
--- a/gfx/skia/skia/include/core/SkPreConfig.h Mon Jul 22 16:57:54 2019 +0200
+++ b/gfx/skia/skia/include/core/SkPreConfig.h Thu Jul 25 14:27:59 2019 +0200
@@ -73,7 +73,7 @@
defined(__ppc__) || defined(__hppa) || \
defined(__PPC__) || defined(__PPC64__) || \
defined(_MIPSEB) || defined(__ARMEB__) || \
- defined(__s390__) || \
+ defined(__s390__) || defined(__s390x__) || \
(defined(__sh__) && defined(__BIG_ENDIAN__)) || \
(defined(__ia64) && defined(__BIG_ENDIAN__))
#define SK_CPU_BENDIAN

View File

@@ -0,0 +1,38 @@
# HG changeset patch
# Parent aecb4600e5da17443b224c79eee178c1d8e155e3
For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text and icons of the sandwich-menu to the
right of the address bar, as well as plugin-windows appears transparant, which usually means unreadable (white on white).
diff -r aecb4600e5da -r 49f25e4c2fd1 gfx/skia/skia/include/private/SkNx.h
--- a/gfx/skia/skia/include/private/SkNx.h Tue Aug 20 09:46:55 2019 +0200
+++ b/gfx/skia/skia/include/private/SkNx.h Fri Aug 23 15:00:43 2019 +0200
@@ -238,7 +238,14 @@
AI SkNx operator*(const SkNx& y) const { return fVal * y.fVal; }
AI SkNx operator/(const SkNx& y) const { return fVal / y.fVal; }
- AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(y.fVal)); }
+ // On Big endian the commented out variant doesn't work,
+ // and honestly, I have no idea why it exists in the first place.
+ // The reason its broken is, I think, that it defaults to the double-variant of ToBits()
+ // which gets a 64-bit integer, and FromBits returns 32-bit,
+ // cutting off the wrong half again.
+ // Overall, I see no reason to have ToBits and FromBits at all (even for floats/doubles).
+ // AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(y.fVal)); }
+ AI SkNx operator&(const SkNx& y) const { return fVal & y.fVal; }
AI SkNx operator|(const SkNx& y) const { return FromBits(ToBits(fVal) | ToBits(y.fVal)); }
AI SkNx operator^(const SkNx& y) const { return FromBits(ToBits(fVal) ^ ToBits(y.fVal)); }
diff -r aecb4600e5da -r 49f25e4c2fd1 gfx/skia/skia/src/opts/SkBlitMask_opts.h
--- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h Tue Aug 20 09:46:55 2019 +0200
+++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h Fri Aug 23 15:00:43 2019 +0200
@@ -203,7 +203,9 @@
// ~~~>
// a = 1*aa + d(1-1*aa) = aa + d(1-aa)
// c = 0*aa + d(1-1*aa) = d(1-aa)
- return Sk4px(Sk16b(aa) & Sk16b(0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255))
+
+ // For big endian we have to swap the alpha-mask from 0,0,0,255 to 255,0,0,0
+ return Sk4px(Sk16b(aa) & Sk16b(255,0,0,0, 255,0,0,0, 255,0,0,0, 255,0,0,0))
+ d.approxMulDiv255(aa.inv());
};
while (h --> 0) {

View File

@@ -0,0 +1,30 @@
# HG changeset patch
# Parent 46ea866ca3acb8bb5e1709ceb799b9c94f591dec
Problem description: Tab-titles that are too long to fit into a tab get faded out.
On big endian this is broken and instead of fading out, the
tab gets white and the font transparent, leading to an unreadable
tab-title
Solution: This is not a real solution, but a hack. The real solution would have been
to byte-swap the correct buffer, but I could not find it.
So the next best thing is to deactivate the fading-effect. Now all tab-titles
are readable, albeit not as pretty to look at as they could be.
Side-effects: I have not yet found an unwanted side-effect.
diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
--- a/gfx/2d/DrawTargetSkia.cpp Tue Oct 22 12:27:22 2019 +0200
+++ b/gfx/2d/DrawTargetSkia.cpp Thu Oct 31 09:11:56 2019 +0100
@@ -1861,6 +1861,14 @@
SkCanvas::kPreserveLCDText_SaveLayerFlag |
(aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
+#if MOZ_BIG_ENDIAN
+ // Pushing a layer where an aMask is defined produces wrong output.
+ // We _should_ endian swap the data, but I couldn't find a workable way to do so
+ // Therefore I deactivate those layers in the meantime.
+ // The result is: Tab-titles that are longer than the available space should be faded out.
+ // The fading doesn't work, so we deactivate the fading-effect here.
+ if (!aMask)
+#endif
mCanvas->saveLayer(saveRec);
SetPermitSubpixelAA(aOpaque);

View File

@@ -0,0 +1,28 @@
diff -r 6ef20eee3f8f gfx/layers/basic/BasicCompositor.cpp
--- a/gfx/layers/basic/BasicCompositor.cpp Thu Oct 31 09:11:56 2019 +0100
+++ b/gfx/layers/basic/BasicCompositor.cpp Wed Dec 11 16:16:09 2019 +0100
@@ -693,9 +693,13 @@
RefPtr<SourceSurface> sourceMask;
Matrix maskTransform;
+ // Setting an alpha-mask here breaks the URL-bar on big endian (s390x)
+ // if the typed URL is too long for the textbox (automatic scrolling needed)
+#if MOZ_LITTLE_ENDIAN
if (aTransform.Is2D()) {
SetupMask(aEffectChain, dest, offset, sourceMask, maskTransform);
}
+#endif
CompositionOp blendMode = CompositionOp::OP_OVER;
if (Effect* effect =
diff -r 6ef20eee3f8f gfx/layers/composite/CompositableHost.cpp
--- a/gfx/layers/composite/CompositableHost.cpp Thu Oct 31 09:11:56 2019 +0100
+++ b/gfx/layers/composite/CompositableHost.cpp Wed Dec 11 16:16:09 2019 +0100
@@ -91,6 +91,7 @@
}
MOZ_ASSERT(source);
+ // Alternatively: Comment out these lines where the alpha-mask is set
RefPtr<EffectMask> effect =
new EffectMask(source, source->GetSize(), aTransform);
aEffects.mSecondaryEffects[EffectTypes::MASK] = effect;

View File

@@ -0,0 +1,23 @@
Problem: webGL sites are displayed in the wrong color (usually blue-ish)
Solution: Problem is with skia once again. Output of webgl seems endian-correct, but skia only
knows how to deal with little endian.
So we swizzle the output of webgl after reading it from readpixels()
Note: This does not fix all webGL sites, but is a step in the right direction
diff -r 6b017d3e9733 gfx/gl/GLContext.h
--- a/gfx/gl/GLContext.h Mon Sep 09 10:04:05 2019 +0200
+++ b/gfx/gl/GLContext.h Wed Nov 13 17:13:04 2019 +0100
@@ -1551,6 +1551,13 @@
BEFORE_GL_CALL;
mSymbols.fReadPixels(x, y, width, height, format, type, pixels);
OnSyncCall();
+#if MOZ_BIG_ENDIAN
+ uint8_t* itr = (uint8_t*)pixels;
+ for (GLsizei i = 0; i < width * height; i++) {
+ NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1);
+ itr += 4;
+ }
+#endif
AFTER_GL_CALL;
mHeavyGLCallsSinceLastFlush = true;
}

View File

@@ -0,0 +1,18 @@
# HG changeset patch
# User Wolfgang Rosenauer <wr@rosenauer.org>
# Parent a9d61a2614b01b1e0ca37d00a6b11b2571868f86
diff --git a/media/libcubeb/src/cubeb_utils.cpp b/media/libcubeb/src/cubeb_utils.cpp
--- a/media/libcubeb/src/cubeb_utils.cpp
+++ b/media/libcubeb/src/cubeb_utils.cpp
@@ -15,9 +15,10 @@ size_t cubeb_sample_size(cubeb_sample_fo
return sizeof(int16_t);
case CUBEB_SAMPLE_FLOAT32LE:
case CUBEB_SAMPLE_FLOAT32BE:
return sizeof(float);
default:
// should never happen as all cases are handled above.
assert(false);
}
+ return 0;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
# HG changeset patch
# User Wolfgang Rosenauer
# Date 1558442915 -7200
# Tue May 21 14:48:35 2019 +0200
# Node ID 6bcf2dfebc1ea2aa34e5cc61152709fc8e409dc5
# Parent 4c434d19d03d5461e54fa22dfb82eaed4cd6631b
Do not use gconf for proxy settings if not running within Gnome
Index: toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
===================================================================
RCS file: /cvsroot/mozilla/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp,v
retrieving revision 1.1
diff -r 4c434d19d03d -r 6bcf2dfebc1e toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp Wed Jun 12 17:43:18 2019 +0000
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp Tue May 21 14:48:35 2019 +0200
@@ -55,11 +55,14 @@
}
void nsUnixSystemProxySettings::Init() {
- mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
- if (mGSettings) {
- mGSettings->GetCollectionForSchema(
- NS_LITERAL_CSTRING("org.gnome.system.proxy"),
- getter_AddRefs(mProxySettings));
+ const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
+ if (sessionType && !strcmp(sessionType, "gnome")) {
+ mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
+ if (mGSettings) {
+ mGSettings->GetCollectionForSchema(
+ NS_LITERAL_CSTRING("org.gnome.system.proxy"),
+ getter_AddRefs(mProxySettings));
+ }
}
}

View File

@@ -0,0 +1,34 @@
# HG changeset patch
# User msirringhaus@suse.de
# Date 1560754926 -7200
# Mon Jun 17 09:02:06 2019 +0200
# Node ID 428161c3b9599083e1b8710eda1760f1f707ab11
# Parent 6cd963b6c82ea6629aaf4050851789b78f310338
#Description: reduce the rust debuginfo level on selected architectures where
# compiling with debuginfo=2 causes the OOM killer to interrupt the build on
# launchpad builders. Initially this was only on 32 bit architectures, but with
# firefox 63 it started happening frequently on arm64 and ppc64el too.
diff -r 6cd963b6c82e -r 428161c3b959 build/moz.configure/toolchain.configure
--- a/build/moz.configure/toolchain.configure Tue May 21 17:26:58 2019 +0200
+++ b/build/moz.configure/toolchain.configure Mon Jun 17 09:02:06 2019 +0200
@@ -1865,8 +1865,8 @@
return '1' if moz_optimize.optimize else '0'
-@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols')
-def rust_compile_flags(opt_level, debug_rust, debug_symbols):
+@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', host)
+def rust_compile_flags(opt_level, debug_rust, debug_symbols, host):
# Cargo currently supports only two interesting profiles for building:
# development and release. Those map (roughly) to --enable-debug and
# --disable-debug in Gecko, respectively.
@@ -1889,6 +1889,8 @@
if debug_symbols:
debug_info = '2'
+ if host.bitness == 32 or host.cpu == 'aarch64' or host.cpu == 'ppc64':
+ debug_info = '1'
opts = []

View File

@@ -0,0 +1,14 @@
mozilla-nongnome-proxies.patch
mozilla-kde.patch
mozilla-cubeb-noreturn.patch
mozilla-reduce-rust-debuginfo.patch
mozilla-bmo849632.patch
mozilla-bmo1504834-part1.patch
mozilla-bmo1504834-part2.patch
mozilla-bmo1504834-part3.patch
mozilla-bmo1602730.patch
mozilla-bmo1504834-part4.patch
firefox-kde.patch
firefox-branded-icons.patch
firefox-add-kde.js-in-order-to-survive-PGO-build.patch

View File

@@ -0,0 +1,20 @@
# HG changeset patch
# User Steve Singer <steve@ssinger.info>
# Date 1558451540 -7200
# Tue May 21 17:12:20 2019 +0200
# Node ID 433beec63e6b5f409683af20a0c1ab137cc7bfad
# Parent 0b9b94a6526d4f1aa6e23b95c1f5f7c0bef841a7
Bug 1005535 - Get skia GPU building on big endian.
diff -r 0b9b94a6526d gfx/skia/skia/src/gpu/GrColor.h
--- a/gfx/skia/skia/src/gpu/GrColor.h Tue May 21 17:26:58 2019 +0200
+++ b/gfx/skia/skia/src/gpu/GrColor.h Wed Jan 08 12:14:52 2020 +0100
@@ -64,7 +64,7 @@
* Since premultiplied means that alpha >= color, we construct a color with
* each component==255 and alpha == 0 to be "illegal"
*/
-#define GrColor_ILLEGAL (~(0xFF << GrColor_SHIFT_A))
+#define GrColor_ILLEGAL ((uint32_t)(~(0xFF << GrColor_SHIFT_A)))
/** Normalizes and coverts an uint8_t to a float. [0, 255] -> [0.0, 1.0] */
static inline float GrNormalizeByteToFloat(uint8_t value) {

View File

@@ -0,0 +1,46 @@
# HG changeset patch
# User Mike Hommey <mh+mozilla@glandium.org>
# Date 1526871862 -32400
# Mon May 21 12:04:22 2018 +0900
# Node ID 74a0c200d7f748a3fe46bb22a38625b074da8e26
# Parent 0bf4a038a7129aa6bfd7bb27e7455ab649344ac5
Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons
For some reason, GNU as is not happy with the assembly generated after
bug 1238661 anymore on Debian armel.
OTOH, as mentioned in bug 1238661 comment 4, we actually don't need this
workaround anymore, so let's just kill it.
diff -r 0bf4a038a712 -r 74a0c200d7f7 mozglue/baseprofiler/core/platform-linux-android.cpp
--- a/mozglue/baseprofiler/core/platform-linux-android.cpp Tue May 21 14:49:58 2019 +0200
+++ b/mozglue/baseprofiler/core/platform-linux-android.cpp Mon May 21 12:04:22 2018 +0900
@@ -60,7 +60,6 @@
#include <stdarg.h>
#include "prenv.h"
-#include "mozilla/LinuxSignal.h"
#include "mozilla/PodOperations.h"
#include "mozilla/DebugOnly.h"
@@ -271,7 +270,7 @@
// Request profiling signals.
struct sigaction sa;
- sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler);
+ sa.sa_sigaction = SigprofHandler;
sigemptyset(&sa.sa_mask);
sa.sa_flags = SA_RESTART | SA_SIGINFO;
if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
diff -r 0bf4a038a712 -r 74a0c200d7f7 tools/profiler/core/platform-linux-android.cpp
--- a/tools/profiler/core/platform-linux-android.cpp Tue May 21 14:49:58 2019 +0200
+++ b/tools/profiler/core/platform-linux-android.cpp Mon May 21 12:04:22 2018 +0900
@@ -263,7 +263,7 @@
// Request profiling signals.
struct sigaction sa;
- sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler);
+ sa.sa_sigaction = SigprofHandler;
sigemptyset(&sa.sa_mask);
sa.sa_flags = SA_RESTART | SA_SIGINFO;
if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {

View File

@@ -0,0 +1,121 @@
# HG changeset patch
# Parent 9db312f823881c04c5c16a7623df08cf6aef371d
Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834
diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
--- a/gfx/2d/DrawTargetSkia.cpp
+++ b/gfx/2d/DrawTargetSkia.cpp
@@ -131,18 +131,17 @@ static IntRect CalculateSurfaceBounds(co
Rect sampledBounds = inverse.TransformBounds(*aBounds);
if (!sampledBounds.ToIntRect(&bounds)) {
return surfaceBounds;
}
return surfaceBounds.Intersect(bounds);
}
-static const int kARGBAlphaOffset =
- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
+static const int kARGBAlphaOffset = 0; // Skia is always BGRA SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
const int32_t aStride, SurfaceFormat aFormat) {
if (aFormat != SurfaceFormat::B8G8R8X8 || aSize.IsEmpty()) {
return true;
}
// We should've initialized the data to be opaque already
// On debug builds, verify that this is actually true.
diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h
--- a/gfx/2d/Types.h
+++ b/gfx/2d/Types.h
@@ -82,25 +82,18 @@ enum class SurfaceFormat : int8_t {
Depth,
// This represents the unknown format.
UNKNOWN,
// The following values are endian-independent synonyms. The _UINT32 suffix
// indicates that the name reflects the layout when viewed as a uint32_t
// value.
-#if MOZ_LITTLE_ENDIAN()
A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB
X8R8G8B8_UINT32 = B8G8R8X8, // 0x00RRGGBB
-#elif MOZ_BIG_ENDIAN()
- A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB
- X8R8G8B8_UINT32 = X8R8G8B8, // 0x00RRGGBB
-#else
-# error "bad endianness"
-#endif
// The following values are OS and endian-independent synonyms.
//
// TODO(aosmond): When everything blocking bug 1581828 has been resolved, we
// can make this use R8B8G8A8 and R8B8G8X8 for non-Windows platforms.
OS_RGBA = A8R8G8B8_UINT32,
OS_RGBX = X8R8G8B8_UINT32
};
diff --git a/gfx/skia/skia/third_party/skcms/skcms.cc b/gfx/skia/skia/third_party/skcms/skcms.cc
--- a/gfx/skia/skia/third_party/skcms/skcms.cc
+++ b/gfx/skia/skia/third_party/skcms/skcms.cc
@@ -25,16 +25,18 @@
// it'd be a lot slower. But we want all those headers included so we
// can use their features after runtime checks later.
#include <smmintrin.h>
#include <avxintrin.h>
#include <avx2intrin.h>
#include <avx512fintrin.h>
#include <avx512dqintrin.h>
#endif
+#else
+ #define SKCMS_PORTABLE
#endif
// sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others.
// We have better testing on 64-bit machines, so force 32-bit machines to behave like 64-bit.
//
// Please do not use sizeof() directly, and size_t only when required.
// (We have no way of enforcing these requests...)
#define SAFE_SIZEOF(x) ((uint64_t)sizeof(x))
@@ -275,30 +277,38 @@ enum {
skcms_Signature_sf32 = 0x73663332,
// XYZ is also a PCS signature, so it's defined in skcms.h
// skcms_Signature_XYZ = 0x58595A20,
};
static uint16_t read_big_u16(const uint8_t* ptr) {
uint16_t be;
memcpy(&be, ptr, sizeof(be));
-#if defined(_MSC_VER)
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+ return be;
+#else
+ #if defined(_MSC_VER)
return _byteswap_ushort(be);
-#else
+ #else
return __builtin_bswap16(be);
+ #endif
#endif
}
static uint32_t read_big_u32(const uint8_t* ptr) {
uint32_t be;
memcpy(&be, ptr, sizeof(be));
-#if defined(_MSC_VER)
+#if __BYTE_ORDER == __ORDER_BIG_ENDIAN__
+ return be;
+#else
+ #if defined(_MSC_VER)
return _byteswap_ulong(be);
-#else
+ #else
return __builtin_bswap32(be);
+ #endif
#endif
}
static int32_t read_big_i32(const uint8_t* ptr) {
return (int32_t)read_big_u32(ptr);
}
static float read_big_fixed(const uint8_t* ptr) {

View File

@@ -0,0 +1,88 @@
# HG changeset patch
# Parent 0e579dcbf7328dda4512cbdafc9b42acec4935ea
Skia does not support big endian. The places to fix are too numerous and upstream (skia, not Mozilla)
has no interest in maintaining big endian.
So here we try to swizzle the input for skia, so that skia always works on LE, and when it comes
out again, we transform back to BE.
diff -r 0e579dcbf732 gfx/2d/ConvolutionFilter.cpp
--- a/gfx/2d/ConvolutionFilter.cpp Wed Jan 08 12:17:44 2020 +0100
+++ b/gfx/2d/ConvolutionFilter.cpp Wed Jan 08 12:17:49 2020 +0100
@@ -35,9 +35,38 @@
return true;
}
+static void ByteSwapArray(uint8_t *u8Array, int32_t size) {
+ uint32_t *array = reinterpret_cast<uint32_t*>(u8Array);
+ for (int pxl = 0; pxl < size; ++pxl) {
+ // Use an endian swap to move the bytes, i.e. BGRA -> ARGB.
+ uint32_t rgba = array[pxl];
+ array[pxl] = NativeEndian::swapToLittleEndian(rgba);
+ }
+}
+
void ConvolutionFilter::ConvolveHorizontally(const uint8_t* aSrc, uint8_t* aDst,
bool aHasAlpha) {
+#if MOZ_BIG_ENDIAN()
+ int outputSize = mFilter->numValues();
+
+ // Input size isn't handed in, so we have to calculate it quickly
+ int inputSize = 0;
+ for (int xx = 0; xx < outputSize; ++xx) {
+ // Get the filter that determines the current output pixel.
+ int filterOffset, filterLength;
+ mFilter->FilterForValue(xx, &filterOffset, &filterLength);
+ inputSize = std::max(inputSize, filterOffset + filterLength);
+ }
+
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
+#endif
+
SkOpts::convolve_horizontally(aSrc, *mFilter, aDst, aHasAlpha);
+
+#if MOZ_BIG_ENDIAN()
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
+ ByteSwapArray(aDst, outputSize);
+#endif
}
void ConvolutionFilter::ConvolveVertically(uint8_t* const* aSrc, uint8_t* aDst,
@@ -49,8 +78,26 @@
int32_t filterLength;
auto filterValues =
mFilter->FilterForValue(aRowIndex, &filterOffset, &filterLength);
+
+#if MOZ_BIG_ENDIAN()
+ for (int filterY = 0; filterY < filterLength; filterY++) {
+ // Skia only knows LE, so we have to swizzle the input
+ ByteSwapArray(aSrc[filterY], aRowSize);
+ }
+#endif
+
SkOpts::convolve_vertically(filterValues, filterLength, aSrc, aRowSize, aDst,
aHasAlpha);
+
+#if MOZ_BIG_ENDIAN()
+ // After skia is finished, we swizzle back to BE, in case
+ // the input is used again somewhere else
+ for (int filterY = 0; filterY < filterLength; filterY++) {
+ ByteSwapArray(aSrc[filterY], aRowSize);
+ }
+ // The destination array as well
+ ByteSwapArray(aDst, aRowSize);
+#endif
}
/* ConvolutionFilter::ComputeResizeFactor is derived from Skia's
diff -r 0e579dcbf732 gfx/skia/skia/include/core/SkPreConfig.h
--- a/gfx/skia/skia/include/core/SkPreConfig.h Wed Jan 08 12:17:44 2020 +0100
+++ b/gfx/skia/skia/include/core/SkPreConfig.h Wed Jan 08 12:17:49 2020 +0100
@@ -73,7 +73,7 @@
defined(__ppc__) || defined(__hppa) || \
defined(__PPC__) || defined(__PPC64__) || \
defined(_MIPSEB) || defined(__ARMEB__) || \
- defined(__s390__) || \
+ defined(__s390__) || defined(__s390x__) || \
(defined(__sh__) && defined(__BIG_ENDIAN__)) || \
(defined(__ia64) && defined(__BIG_ENDIAN__))
#define SK_CPU_BENDIAN

View File

@@ -0,0 +1,44 @@
# HG changeset patch
# Parent aecb4600e5da17443b224c79eee178c1d8e155e3
For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text and icons of the sandwich-menu to the
right of the address bar, as well as plugin-windows appears transparant, which usually means unreadable (white on white).
diff -r aecb4600e5da gfx/skia/skia/include/private/SkNx.h
--- a/gfx/skia/skia/include/private/SkNx.h Tue Aug 20 09:46:55 2019 +0200
+++ b/gfx/skia/skia/include/private/SkNx.h Mon Sep 09 10:04:06 2019 +0200
@@ -238,7 +238,18 @@
AI SkNx operator*(const SkNx& y) const { return fVal * y.fVal; }
AI SkNx operator/(const SkNx& y) const { return fVal / y.fVal; }
+ // On Big endian the commented out variant doesn't work,
+ // and honestly, I have no idea why it exists in the first place.
+ // The reason its broken is, I think, that it defaults to the double-variant of ToBits()
+ // which gets a 64-bit integer, and FromBits returns 32-bit,
+ // cutting off the wrong half again.
+ // Overall, I see no reason to have ToBits and FromBits at all (even for floats/doubles).
+ // Still we are only "fixing" this for big endian and leave little endian alone (never touch a running system)
+#ifdef SK_CPU_BENDIAN
+ AI SkNx operator&(const SkNx& y) const { return fVal & y.fVal; }
+#else
AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(y.fVal)); }
+#endif
AI SkNx operator|(const SkNx& y) const { return FromBits(ToBits(fVal) | ToBits(y.fVal)); }
AI SkNx operator^(const SkNx& y) const { return FromBits(ToBits(fVal) ^ ToBits(y.fVal)); }
diff -r aecb4600e5da gfx/skia/skia/src/opts/SkBlitMask_opts.h
--- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h Tue Aug 20 09:46:55 2019 +0200
+++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h Mon Sep 09 10:04:06 2019 +0200
@@ -203,7 +203,13 @@
// ~~~>
// a = 1*aa + d(1-1*aa) = aa + d(1-aa)
// c = 0*aa + d(1-1*aa) = d(1-aa)
+
+ // For big endian we have to swap the alpha-mask from 0,0,0,255 to 255,0,0,0
+#ifdef SK_CPU_BENDIAN
+ return Sk4px(Sk16b(aa) & Sk16b(255,0,0,0, 255,0,0,0, 255,0,0,0, 255,0,0,0))
+#else
return Sk4px(Sk16b(aa) & Sk16b(0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255))
+#endif
+ d.approxMulDiv255(aa.inv());
};
while (h --> 0) {

View File

@@ -0,0 +1,30 @@
# HG changeset patch
# Parent 46ea866ca3acb8bb5e1709ceb799b9c94f591dec
Problem description: Tab-titles that are too long to fit into a tab get faded out.
On big endian this is broken and instead of fading out, the
tab gets white and the font transparent, leading to an unreadable
tab-title
Solution: This is not a real solution, but a hack. The real solution would have been
to byte-swap the correct buffer, but I could not find it.
So the next best thing is to deactivate the fading-effect. Now all tab-titles
are readable, albeit not as pretty to look at as they could be.
Side-effects: I have not yet found an unwanted side-effect.
diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
--- a/gfx/2d/DrawTargetSkia.cpp Tue Oct 22 12:27:22 2019 +0200
+++ b/gfx/2d/DrawTargetSkia.cpp Thu Oct 31 09:11:56 2019 +0100
@@ -1861,6 +1861,14 @@
SkCanvas::kPreserveLCDText_SaveLayerFlag |
(aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
+#if MOZ_BIG_ENDIAN()
+ // Pushing a layer where an aMask is defined produces wrong output.
+ // We _should_ endian swap the data, but I couldn't find a workable way to do so
+ // Therefore I deactivate those layers in the meantime.
+ // The result is: Tab-titles that are longer than the available space should be faded out.
+ // The fading doesn't work, so we deactivate the fading-effect here.
+ if (!aMask)
+#endif
mCanvas->saveLayer(saveRec);
SetPermitSubpixelAA(aOpaque);

View File

@@ -0,0 +1,34 @@
# HG changeset patch
# Parent e5858dc7ab007042436496f7cfb9a5abf10f5082
This fixes a broken build for gcc < 9 on ppc64le.
This patch can be removed for newer gcc-versions.
diff -r e5858dc7ab00 -r 5d3469aabe61 js/xpconnect/src/XPCWrappedNative.cpp
--- a/js/xpconnect/src/XPCWrappedNative.cpp Thu Nov 29 10:07:29 2018 +0100
+++ b/js/xpconnect/src/XPCWrappedNative.cpp Tue Sep 10 12:42:13 2019 +0200
@@ -1092,7 +1092,11 @@
MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex,
MutableHandleValue srcp) const;
- MOZ_ALWAYS_INLINE bool GatherAndConvertResults();
+#if !(__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
+// Work around a compiler bug on ppc64le (bug 1512162).
+ MOZ_ALWAYS_INLINE
+#endif
+ bool GatherAndConvertResults();
MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
@@ -1139,7 +1143,11 @@
~CallMethodHelper();
- MOZ_ALWAYS_INLINE bool Call();
+#if !(__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
+// Work around a compiler bug on ppc64le (bug 1512162).
+ MOZ_ALWAYS_INLINE
+#endif
+ bool Call();
// Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
void trace(JSTracer* aTrc);

View File

@@ -0,0 +1,22 @@
# HG changeset patch
# Parent a25cebecb02d5460b8ad757fe9cb4a9c8d1d7658
Eliminate startup error message:
JavaScript error: , line 0: Error: Type error for platformInfo value (Error processing arch: Invalid enumeration value "s390x") for runtime.getPlatformInfo.
Reported here: https://bugzilla.mozilla.org/show_bug.cgi?id=1554971
Uncertain if this is causing real problems or not. Also uncertain if the fix actually fixes anything.
No response from upstream yet.
diff -r a25cebecb02d -r 378b81b00e73 toolkit/components/extensions/schemas/runtime.json
--- a/toolkit/components/extensions/schemas/runtime.json Fri Jul 05 12:42:44 2019 +0200
+++ b/toolkit/components/extensions/schemas/runtime.json Fri Jul 19 13:19:30 2019 +0200
@@ -64,7 +64,7 @@
{
"id": "PlatformArch",
"type": "string",
- "enum": ["arm", "x86-32", "x86-64"],
+ "enum": ["arm", "x86-32", "x86-64", "s390x", "aarch64", "ppc64le"],
"allowedContexts": ["content", "devtools"],
"description": "The machine's processor architecture."
},

View File

@@ -0,0 +1,30 @@
Author: Bernhard M. Wiedemann <bwiedemann suse de>
Date: 2019-07-22
Allow to override build date with SOURCE_DATE_EPOCH
in order to make builds reproducible.
See https://reproducible-builds.org/ for why this is good
and https://reproducible-builds.org/specs/source-date-epoch/
for the definition of this variable.
diff --git a/python/mozbuild/mozbuild/action/langpack_manifest.py b/python/mozbuild/mozbuild/action/langpack_manifest.py
index 6f72697..d4cca96 100644
--- a/python/mozbuild/mozbuild/action/langpack_manifest.py
+++ b/python/mozbuild/mozbuild/action/langpack_manifest.py
@@ -16,6 +16,7 @@ import os
import json
import io
import datetime
+import time
import requests
import mozversioncontrol
import mozpack.path as mozpath
@@ -100,7 +101,7 @@ def get_timestamp_for_locale(path):
dt = get_dt_from_hg(path)
if dt is None:
- dt = datetime.datetime.utcnow()
+ dt = datetime.datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time())))
dt = dt.replace(microsecond=0)
return dt.strftime("%Y%m%d%H%M%S")

View File

@@ -0,0 +1,25 @@
# HG changeset patch
# User msirringhaus@suse.de
# Date 1582805890 -3600
# Thu Feb 27 13:18:10 2020 +0100
# Node ID 457cbe5705f2a3759d3da36a05c0ed66ec61ea12
# Parent 7440f4b6bab85068ca2f84e9c48e0706d04330e8
imported patch mozilla-bmo1602730-FF73.patch
diff -r 7440f4b6bab8 gfx/layers/composite/CompositableHost.cpp
--- a/gfx/layers/composite/CompositableHost.cpp Thu Feb 27 13:17:56 2020 +0100
+++ b/gfx/layers/composite/CompositableHost.cpp Wed Jun 17 15:33:32 2020 +0200
@@ -92,9 +92,13 @@
}
MOZ_ASSERT(source);
+ // Setting an alpha-mask here breaks the URL-bar on big endian (s390x)
+ // if the typed URL is too long for the textbox (automatic scrolling needed)
+#if MOZ_LITTLE_ENDIAN()
RefPtr<EffectMask> effect =
new EffectMask(source, source->GetSize(), aTransform);
aEffects.mSecondaryEffects[EffectTypes::MASK] = effect;
+#endif
return true;
}

View File

@@ -0,0 +1,85 @@
# HG changeset patch
# User msirringhaus@suse.de
# Date 1582805876 -3600
# Thu Feb 27 13:17:56 2020 +0100
# Node ID cc3d09abea31068e57f1ab918782f9f86fc6a158
# Parent 9cd90914846f667f18babc491a74c164ae5d6e9f
imported patch decoder_workaround.patch
diff -r 9cd90914846f image/decoders/nsGIFDecoder2.cpp
--- a/image/decoders/nsGIFDecoder2.cpp Thu Feb 27 12:57:14 2020 +0100
+++ b/image/decoders/nsGIFDecoder2.cpp Fri Mar 27 13:06:18 2020 +0100
@@ -422,6 +422,9 @@
MOZ_ASSERT(mSwizzleFn);
uint8_t* data = reinterpret_cast<uint8_t*>(aColormap);
mSwizzleFn(data, data, aColors);
+#if MOZ_BIG_ENDIAN()
+ SwizzleRow(SurfaceFormat::A8R8G8B8, SurfaceFormat::B8G8R8A8)(data, data, aColors);
+#endif
}
LexerResult nsGIFDecoder2::DoDecode(SourceBufferIterator& aIterator,
diff -r 9cd90914846f image/decoders/nsJPEGDecoder.cpp
--- a/image/decoders/nsJPEGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
+++ b/image/decoders/nsJPEGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
@@ -263,6 +263,9 @@
case JCS_YCbCr:
// By default, we will output directly to BGRA. If we need to apply
// special color transforms, this may change.
+#if MOZ_BIG_ENDIAN()
+ mInfo.out_color_space = MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB;
+#else
switch (SurfaceFormat::OS_RGBX) {
case SurfaceFormat::B8G8R8X8:
mInfo.out_color_space = JCS_EXT_BGRX;
@@ -277,6 +280,7 @@
mState = JPEG_ERROR;
return Transition::TerminateFailure();
}
+#endif
break;
case JCS_CMYK:
case JCS_YCCK:
diff -r 9cd90914846f image/decoders/nsPNGDecoder.cpp
--- a/image/decoders/nsPNGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
+++ b/image/decoders/nsPNGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
@@ -361,7 +361,7 @@
IResumable* aOnResume) {
MOZ_ASSERT(!HasError(), "Shouldn't call DoDecode after error!");
- return mLexer.Lex(aIterator, aOnResume,
+ LexerResult res = mLexer.Lex(aIterator, aOnResume,
[=](State aState, const char* aData, size_t aLength) {
switch (aState) {
case State::PNG_DATA:
@@ -371,6 +371,14 @@
}
MOZ_CRASH("Unknown State");
});
+
+#if MOZ_BIG_ENDIAN()
+ if(res.is<TerminalState>() && res.as<TerminalState>() == TerminalState::SUCCESS) {
+ NativeEndian::swapToLittleEndianInPlace<uint32_t>((uint32_t*)(mImageData), mImageDataLength / 4);
+ }
+#endif
+
+ return res;
}
LexerTransition<nsPNGDecoder::State> nsPNGDecoder::ReadPNGData(
diff -r 9cd90914846f image/decoders/nsWebPDecoder.cpp
--- a/image/decoders/nsWebPDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
+++ b/image/decoders/nsWebPDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
@@ -237,7 +237,12 @@
// WebP doesn't guarantee that the alpha generated matches the hint in the
// header, so we always need to claim the input is BGRA. If the output is
// BGRX, swizzling will mask off the alpha channel.
+#if MOZ_BIG_ENDIAN()
+ mBuffer.colorspace = MODE_ARGB;
+ SurfaceFormat inFormat = mFormat;
+#else
SurfaceFormat inFormat = SurfaceFormat::OS_RGBA;
+#endif
SurfacePipeFlags pipeFlags = SurfacePipeFlags();
if (mFormat == SurfaceFormat::OS_RGBA &&

View File

@@ -0,0 +1,23 @@
Problem: webGL sites are displayed in the wrong color (usually blue-ish)
Solution: Problem is with skia once again. Output of webgl seems endian-correct, but skia only
knows how to deal with little endian.
So we swizzle the output of webgl after reading it from readpixels()
Note: This does not fix all webGL sites, but is a step in the right direction
diff -r 6b017d3e9733 gfx/gl/GLContext.h
--- a/gfx/gl/GLContext.h Mon Sep 09 10:04:05 2019 +0200
+++ b/gfx/gl/GLContext.h Wed Nov 13 17:13:04 2019 +0100
@@ -1551,6 +1551,13 @@
BEFORE_GL_CALL;
mSymbols.fReadPixels(x, y, width, height, format, type, pixels);
OnSyncCall();
+#if MOZ_BIG_ENDIAN()
+ uint8_t* itr = (uint8_t*)pixels;
+ for (GLsizei i = 0; i < width * height; i++) {
+ NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1);
+ itr += 4;
+ }
+#endif
AFTER_GL_CALL;
mHeavyGLCallsSinceLastFlush = true;
}

View File

@@ -0,0 +1,29 @@
# HG changeset patch
# User msirringhaus@suse.de
# Date 1583738770 -3600
# Mon Mar 09 08:26:10 2020 +0100
# Node ID 34676feac1a542e409e22acf5b98735f8313b1ce
# Parent 506857dace0a08d1c9685e3ac264646590b3e27f
[mq]: mozilla-bmo998749.patch
diff -r 506857dace0a -r 34676feac1a5 gfx/2d/FilterProcessing.h
--- a/gfx/2d/FilterProcessing.h Fri Feb 28 12:31:51 2020 +0100
+++ b/gfx/2d/FilterProcessing.h Mon Mar 09 08:26:10 2020 +0100
@@ -13,10 +13,17 @@
namespace mozilla {
namespace gfx {
+#if MOZ_BIG_ENDIAN()
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 3;
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 2;
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 1;
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 0;
+#else
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 0;
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 1;
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 2;
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 3;
+#endif
class FilterProcessing {
public:

View File

@@ -0,0 +1,42 @@
From 91bb79836ee274855393bdf6ab10e24899b1b349 Mon Sep 17 00:00:00 2001
From: Martin Liska <mliska@suse.cz>
Date: Fri, 17 May 2019 14:41:35 +0200
Subject: [PATCH] Fix top-level asm issue.
---
security/sandbox/linux/moz.build | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/security/sandbox/linux/moz.build b/security/sandbox/linux/moz.build
index aae85843e9f6..208368dfd189 100644
--- a/security/sandbox/linux/moz.build
+++ b/security/sandbox/linux/moz.build
@@ -61,7 +61,6 @@ UNIFIED_SOURCES += [
'../chromium/sandbox/linux/bpf_dsl/policy_compiler.cc',
'../chromium/sandbox/linux/bpf_dsl/syscall_set.cc',
'../chromium/sandbox/linux/seccomp-bpf/die.cc',
- '../chromium/sandbox/linux/seccomp-bpf/syscall.cc',
'broker/SandboxBrokerCommon.cpp',
'Sandbox.cpp',
'SandboxBrokerClient.cpp',
@@ -77,6 +76,7 @@ UNIFIED_SOURCES += [
SOURCES += [
'../chromium/base/strings/safe_sprintf.cc',
'../chromium/base/third_party/icu/icu_utf.cc',
+ '../chromium/sandbox/linux/seccomp-bpf/syscall.cc',
'../chromium/sandbox/linux/seccomp-bpf/trap.cc',
'../chromium/sandbox/linux/services/syscall_wrappers.cc',
]
@@ -96,6 +96,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
SOURCES['../chromium/sandbox/linux/services/syscall_wrappers.cc'].flags += [
'-Wno-empty-body',
]
+ SOURCES['../chromium/sandbox/linux/seccomp-bpf/syscall.cc'].flags += [
+ '-fno-lto'
+ ]
# gcc lto likes to put the top level asm in syscall.cc in a different partition
# from the function using it which breaks the build. Work around that by
--
2.23.0

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
# HG changeset patch
# User Wolfgang Rosenauer
# Date 1558442915 -7200
# Tue May 21 14:48:35 2019 +0200
# Node ID 6bcf2dfebc1ea2aa34e5cc61152709fc8e409dc5
# Parent 4c434d19d03d5461e54fa22dfb82eaed4cd6631b
Do not use gconf for proxy settings if not running within Gnome
Index: toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
===================================================================
RCS file: /cvsroot/mozilla/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp,v
retrieving revision 1.1
diff -r 4c434d19d03d -r 6bcf2dfebc1e toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp Wed Jun 12 17:43:18 2019 +0000
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp Tue May 21 14:48:35 2019 +0200
@@ -55,11 +55,14 @@
}
void nsUnixSystemProxySettings::Init() {
- mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
- if (mGSettings) {
- mGSettings->GetCollectionForSchema(
- NS_LITERAL_CSTRING("org.gnome.system.proxy"),
- getter_AddRefs(mProxySettings));
+ const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
+ if (sessionType && !strcmp(sessionType, "gnome")) {
+ mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
+ if (mGSettings) {
+ mGSettings->GetCollectionForSchema(
+ NS_LITERAL_CSTRING("org.gnome.system.proxy"),
+ getter_AddRefs(mProxySettings));
+ }
}
}

View File

@@ -0,0 +1,54 @@
# HG changeset patch
# User msirringhaus@suse.de
# Date 1560754926 -7200
# Mon Jun 17 09:02:06 2019 +0200
# Node ID 428161c3b9599083e1b8710eda1760f1f707ab11
# Parent fa1cf8b9cb4efdf89fe19e543fb54272b726a353
#Description: reduce the rust debuginfo level on selected architectures where
# compiling with debuginfo=2 causes the OOM killer to interrupt the build on
# launchpad builders. Initially this was only on 32 bit architectures, but with
# firefox 63 it started happening frequently on arm64 and ppc64el too.
diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
--- a/build/moz.configure/toolchain.configure
+++ b/build/moz.configure/toolchain.configure
@@ -1861,18 +1861,18 @@ imply_option('RUSTC_OPT_LEVEL', '2', whe
@depends('RUSTC_OPT_LEVEL', moz_optimize)
def rustc_opt_level(opt_level_option, moz_optimize):
if opt_level_option:
return opt_level_option[0]
else:
return '1' if moz_optimize.optimize else '0'
-@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', '--enable-frame-pointers')
-def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers):
+@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', '--enable-frame-pointers', host)
+def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers, host):
# Cargo currently supports only two interesting profiles for building:
# development and release. Those map (roughly) to --enable-debug and
# --disable-debug in Gecko, respectively.
#
# But we'd also like to support an additional axis of control for
# optimization level. Since Cargo only supports 2 profiles, we're in
# a bit of a bind.
#
@@ -1885,16 +1885,18 @@ def rust_compile_flags(opt_level, debug_
# opt-level=0 implies -C debug-assertions, which may not be desired
# unless Rust debugging is enabled.
if opt_level == '0' and not debug_rust:
debug_assertions = False
if debug_symbols:
debug_info = '2'
+# if host.bitness == 32 or host.cpu == 'aarch64' or host.cpu == 'ppc64': # Just reduce debug_info for all archs
+ debug_info = '1'
opts = []
if opt_level is not None:
opts.append('opt-level=%s' % opt_level)
if debug_assertions is not None:
opts.append('debug-assertions=%s' %
('yes' if debug_assertions else 'no'))

View File

@@ -0,0 +1,16 @@
From: meissner@suse.com
Subject: allow Firefox to access addtional process information
Reference: http://bugzilla.suse.com/show_bug.cgi?id=1167132
Index: firefox-74.0/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
===================================================================
--- firefox-74.0.orig/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
+++ firefox-74.0/security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp
@@ -276,6 +276,7 @@ SandboxBrokerPolicyFactory::SandboxBroke
// Read permissions
policy->AddPath(rdonly, "/dev/urandom");
+ policy->AddPath(rdonly, "/proc/sys/crypto/fips_enabled");
policy->AddPath(rdonly, "/proc/cpuinfo");
policy->AddPath(rdonly, "/proc/meminfo");
policy->AddDir(rdonly, "/sys/devices/cpu");

View File

@@ -0,0 +1,18 @@
mozilla-nongnome-proxies.patch
mozilla-kde.patch
mozilla-bmo1463035.patch
mozilla-sandbox-fips.patch
mozilla-reduce-rust-debuginfo.patch
mozilla-bmo1005535.patch
mozilla-bmo1568145.patch
mozilla-bmo1504834-part1.patch
mozilla-bmo1504834-part2.patch
mozilla-bmo1504834-part3.patch
mozilla-bmo1554971.patch
mozilla-bmo1512162.patch
mozilla-fix-top-level-asm.patch
mozilla-bmo1504834-part4.patch
mozilla-bmo849632.patch
mozilla-bmo1602730.patch
mozilla-bmo998749.patch
mozilla-bmo1626236.patch

View File

@@ -0,0 +1,13 @@
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -2045,10 +2045,6 @@
MenuTouchModeObserver.init();
}
- if (AppConstants.MOZ_DATA_REPORTING) {
- gDataNotificationInfoBar.init();
- }
-
if (!AppConstants.MOZILLA_OFFICIAL) {
DevelopmentHelpers.init();
}

View File

@@ -0,0 +1,16 @@
--- firefox-60.0.bak/browser/confvars.sh
+++ firefox-60.0/browser/confvars.sh
@@ -62,3 +62,13 @@
# Include the DevTools client, not just the server (which is the default)
MOZ_DEVTOOLS=all
+
+# Reduce data sharing with Mozilla
+MOZ_DATA_REPORTING=0
+MOZ_TELEMETRY_REPORTING=0
+MOZ_CRASHREPORTER=0
+MOZ_SERVICES_HEALTHREPORT=0
+MOZ_PAY=0
+MOZ_SERVICES_METRICS=0
+MOZ_LOGGING=0
+

View File

@@ -0,0 +1,67 @@
pref("browser.shell.checkDefaultBrowser",false);
pref("browser.startup.page",0);
pref("browser.urlbar.userMadeSearchSuggestionsChoice",true);
pref("browser.download.panel.shown",true);
pref("browser.tabs.warnOnClose",false);
pref("network.captive-portal-service.enabled",false);
pref("browser.newtabpage.introShown",true);
pref("startup.homepage_welcome_url","about:blank");
pref("datareporting.healthreport.uploadEnabled",false);
pref("general.warnOnAboutConfig",false);
pref("network.http.speculative-parallel-limit",0);
pref("network.prefetch-next",false);
pref("extensions.blocklist.enabled",false);
pref("middlemouse.contentLoadURL",false);
pref("browser.formfill.enable",false);
pref("urlclassifier.malwareTable","");
pref("urlclassifier.phishTable","");
pref("urlclassifier.downloadBlockTable","");
pref("browser.safebrowsing.phishing.enabled",false);
pref("browser.safebrowsing.malware.enabled",false);
pref("browser.safebrowsing.downloads.enabled",false);
pref("browser.safebrowsing.downloads.remote.enabled",false);
pref("browser.safebrowsing.downloads.remote.url","");
pref("browser.safebrowsing.downloads.remote.block_dangerous",false);
pref("browser.safebrowsing.downloads.remote.block_dangerous_host",false);
pref("browser.safebrowsing.downloads.remote.block_potentially_unwanted",false);
pref("browser.safebrowsing.downloads.remote.block_uncommon",false);
pref("browser.safebrowsing.provider.google.lists","");
pref("browser.safebrowsing.provider.google.updateURL","");
pref("browser.safebrowsing.provider.google.gethashURL","");
pref("browser.safebrowsing.provider.google.reportURL","");
pref("browser.safebrowsing.provider.google4.lists","");
pref("browser.safebrowsing.provider.google4.updateURL","");
pref("browser.safebrowsing.provider.google4.gethashURL","");
pref("browser.safebrowsing.provider.google4.reportURL","");
pref("browser.safebrowsing.reportPhishMistakeURL","");
pref("browser.safebrowsing.reportPhishURL","");
pref("browser.safebrowsing.reportMalwareMistakeURL","");
pref("browser.safebrowsing.blockedURIs.enabled",false);
pref("browser.safebrowsing.provider.mozilla.lists","");
pref("browser.safebrowsing.provider.mozilla.updateURL","");
pref("browser.safebrowsing.provider.mozilla.gethashURL","");
//
pref("browser.bookmarks.showMobileBookmarks",false);
pref("extensions.pocket.enabled",false);
// disable telemetry
pref("toolkit.telemetry.enabled",false);
pref("toolkit.telemetry.server","");
pref("toolkit.telemetry.unified",false);
pref("toolkit.telemetry.archive.enabled",false);
pref("toolkit.telemetry.cachedClientID","");
pref("toolkit.telemetry.newProfilePing.enabled",false);
pref("toolkit.telemetry.shutdownPingSender.enabled",false);
pref("toolkit.telemetry.updatePing.enabled",false);
pref("toolkit.telemetry.bhrPing.enabled",false);
pref("toolkit.telemetry.firstShutdownPing.enabled",false);
pref("experiments.enabled",false);
pref("experiments.manifest.uri","");
pref("experiments.supported",false);
pref("experiments.activeExperiment",false);
// disable health report
pref("datareporting.healthreport.about.reportUrl","");
pref("datdatareporting.healthreport.infoURL","");
pref("datareporting.policy.dataSubmissionEnabled",false);
// disable crash reports
pref("breakpad.reportURL","");
pref("pdfjs.disabled", true);

View File

@@ -0,0 +1,2 @@
firefox-60-disable-telemetry.patch
firefox-60-disable-data-sharing-infobar.patch

View File

@@ -0,0 +1,359 @@
diff --git a/Cargo.lock b/Cargo.lock
index b1fca7cbca..888dd6d3fd 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -111,25 +111,11 @@ dependencies = [
"bitflags",
]
-[[package]]
-name = "audio_thread_priority"
-version = "0.22.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8fba1500e466a39dd3faa5aed20a50dfe0aa1b905264a453bbe9f49508994cc"
-dependencies = [
- "cfg-if",
- "dbus",
- "libc",
- "log",
- "mach",
- "winapi 0.3.7",
-]
[[package]]
name = "audioipc"
version = "0.2.5"
dependencies = [
- "audio_thread_priority",
"bincode",
"bytes 0.4.9",
"cc",
@@ -156,7 +142,6 @@ dependencies = [
name = "audioipc-client"
version = "0.4.0"
dependencies = [
- "audio_thread_priority",
"audioipc",
"cubeb-backend",
"futures 0.1.29",
@@ -169,7 +154,6 @@ dependencies = [
name = "audioipc-server"
version = "0.2.3"
dependencies = [
- "audio_thread_priority",
"audioipc",
"cubeb-core",
"error-chain",
@@ -1890,7 +1874,6 @@ dependencies = [
name = "gkrust-shared"
version = "0.1.0"
dependencies = [
- "audio_thread_priority",
"audioipc-client",
"audioipc-server",
"authenticator",
diff --git a/dom/ipc/ContentChild.cpp b/dom/ipc/ContentChild.cpp
index 2fe91affcd..ae835b2c34 100644
--- a/dom/ipc/ContentChild.cpp
+++ b/dom/ipc/ContentChild.cpp
@@ -111,9 +111,7 @@
#include "GMPServiceChild.h"
#include "nsIStringBundle.h"
#include "Geolocation.h"
-#include "audio_thread_priority.h"
#include "nsIConsoleService.h"
-#include "audio_thread_priority.h"
#include "nsIURIMutator.h"
#include "nsIInputStreamChannel.h"
#include "nsFocusManager.h"
@@ -1624,9 +1622,7 @@ mozilla::ipc::IPCResult ContentChild::RecvSetProcessSandbox(
} else {
// Pre-start audio before sandboxing; see bug 1443612.
if (StaticPrefs::media_cubeb_sandbox()) {
- if (atp_set_real_time_limit(0, 48000)) {
NS_WARNING("could not set real-time limit at process startup");
- }
InstallSoftRealTimeLimitHandler();
} else {
Unused << CubebUtils::GetCubebContext();
diff --git a/dom/media/GraphRunner.cpp b/dom/media/GraphRunner.cpp
index 6ea8f2e9ca..51dba21d71 100644
--- a/dom/media/GraphRunner.cpp
+++ b/dom/media/GraphRunner.cpp
@@ -13,7 +13,6 @@
#include "nsISupportsPriority.h"
#include "prthread.h"
#include "Tracing.h"
-#include "audio_thread_priority.h"
namespace mozilla {
@@ -95,8 +94,6 @@ auto GraphRunner::OneIteration(GraphTime aStateEnd, GraphTime aIterationEnd,
}
NS_IMETHODIMP GraphRunner::Run() {
- atp_handle* handle =
- atp_promote_current_thread_to_real_time(0, mGraph->GraphRate());
nsCOMPtr<nsIThreadInternal> threadInternal = do_QueryInterface(mThread);
threadInternal->SetObserver(mGraph);
@@ -119,9 +116,6 @@ NS_IMETHODIMP GraphRunner::Run() {
mMonitor.Notify();
}
- if (handle) {
- atp_demote_current_thread_from_real_time(handle);
- }
return NS_OK;
}
diff --git a/dom/media/UnderrunHandlerLinux.cpp b/dom/media/UnderrunHandlerLinux.cpp
index af5c84538e..9fecb5ebd2 100644
--- a/dom/media/UnderrunHandlerLinux.cpp
+++ b/dom/media/UnderrunHandlerLinux.cpp
@@ -9,7 +9,6 @@
#include <mozilla/Sprintf.h>
#include <mozilla/Atomics.h>
-#include "audio_thread_priority.h"
namespace mozilla {
@@ -57,21 +56,8 @@ void InstallSoftRealTimeLimitHandler() {
}
void DemoteThreadFromRealTime() {
- atp_thread_info* info = atp_get_current_thread_info();
- if (!info) {
NS_WARNING("Could not get current thread info when demoting thread.");
return;
- }
- int rv = atp_demote_thread_from_real_time(info);
- if (rv) {
- NS_WARNING("Could not demote thread from real-time.");
- return;
- }
- rv = atp_free_thread_info(info);
- if (rv) {
- NS_WARNING("Could not free atp_thread_info struct");
- }
- gRealtimeLimitReached = false;
}
} // namespace mozilla
diff --git a/dom/media/moz.build b/dom/media/moz.build
index c8dc9fe2d1..ae43f16fa3 100644
--- a/dom/media/moz.build
+++ b/dom/media/moz.build
@@ -100,7 +100,6 @@ XPIDL_SOURCES += [
XPIDL_MODULE = 'dom_media'
EXPORTS += [
- '../../third_party/rust/audio_thread_priority/audio_thread_priority.h',
'ADTSDecoder.h',
'ADTSDemuxer.h',
'AsyncLogger.h',
diff --git a/media/audioipc/audioipc/Cargo.toml b/media/audioipc/audioipc/Cargo.toml
index dfffa97f24..d9d2cf7d95 100644
--- a/media/audioipc/audioipc/Cargo.toml
+++ b/media/audioipc/audioipc/Cargo.toml
@@ -19,7 +19,6 @@ serde = "1"
serde_derive = "1"
tokio = "0.1"
tokio-io = "0.1"
-audio_thread_priority = "0.22"
[target.'cfg(unix)'.dependencies]
iovec = "0.1"
diff --git a/media/audioipc/audioipc/src/messages.rs b/media/audioipc/audioipc/src/messages.rs
index 9cda962e0e..37e6119b74 100644
--- a/media/audioipc/audioipc/src/messages.rs
+++ b/media/audioipc/audioipc/src/messages.rs
@@ -5,8 +5,6 @@
use crate::PlatformHandle;
use crate::PlatformHandleType;
-#[cfg(target_os = "linux")]
-use audio_thread_priority::RtPriorityThreadInfo;
use cubeb::{self, ffi};
use std::ffi::{CStr, CString};
use std::os::raw::{c_char, c_int, c_uint};
@@ -211,8 +209,6 @@ pub enum ServerMessage {
StreamGetCurrentDevice(usize),
StreamRegisterDeviceChangeCallback(usize, bool),
- #[cfg(target_os = "linux")]
- PromoteThreadToRealTime([u8; std::mem::size_of::<RtPriorityThreadInfo>()]),
}
// Server -> Client messages.
@@ -243,8 +239,6 @@ pub enum ClientMessage {
StreamCurrentDevice(Device),
StreamRegisterDeviceChangeCallback,
- #[cfg(target_os = "linux")]
- ThreadPromoted,
Error(c_int),
}
diff --git a/media/audioipc/client/Cargo.toml b/media/audioipc/client/Cargo.toml
index 4a55c0162e..2fbccc05df 100644
--- a/media/audioipc/client/Cargo.toml
+++ b/media/audioipc/client/Cargo.toml
@@ -9,7 +9,6 @@ description = "Cubeb Backend for talking to remote cubeb server."
edition = "2018"
[dependencies]
-audio_thread_priority = "0.22"
audioipc = { path="../audioipc" }
cubeb-backend = "0.7"
futures = { version="0.1.18", default-features=false, features=["use_std"] }
diff --git a/media/audioipc/client/src/context.rs b/media/audioipc/client/src/context.rs
index 6b13900c54..87323508b8 100644
--- a/media/audioipc/client/src/context.rs
+++ b/media/audioipc/client/src/context.rs
@@ -6,10 +6,6 @@
use crate::stream;
use crate::{assert_not_in_callback, run_in_callback};
use crate::{ClientStream, AUDIOIPC_INIT_PARAMS};
-#[cfg(target_os = "linux")]
-use audio_thread_priority::get_current_thread_info;
-#[cfg(not(target_os = "linux"))]
-use audio_thread_priority::promote_current_thread_to_real_time;
use audioipc::codec::LengthDelimitedCodec;
use audioipc::frame::{framed, Framed};
use audioipc::platformhandle_passing::{framed_with_platformhandles, FramedWithPlatformHandles};
@@ -72,31 +68,6 @@ impl ClientContext {
}
}
-#[cfg(target_os = "linux")]
-fn promote_thread(rpc: &rpc::ClientProxy<ServerMessage, ClientMessage>) {
- match get_current_thread_info() {
- Ok(info) => {
- let bytes = info.serialize();
- // Don't wait for the response, this is on the callback thread, which must not block.
- rpc.call(ServerMessage::PromoteThreadToRealTime(bytes));
- }
- Err(_) => {
- warn!("Could not remotely promote thread to RT.");
- }
- }
-}
-
-#[cfg(not(target_os = "linux"))]
-fn promote_thread(_rpc: &rpc::ClientProxy<ServerMessage, ClientMessage>) {
- match promote_current_thread_to_real_time(0, 48000) {
- Ok(_) => {
- info!("Audio thread promoted to real-time.");
- }
- Err(_) => {
- warn!("Could not promote thread to real-time.");
- }
- }
-}
fn register_thread(callback: Option<extern "C" fn(*const ::std::os::raw::c_char)>) {
if let Some(func) = callback {
@@ -116,7 +87,6 @@ fn promote_and_register_thread(
rpc: &rpc::ClientProxy<ServerMessage, ClientMessage>,
callback: Option<extern "C" fn(*const ::std::os::raw::c_char)>,
) {
- promote_thread(rpc);
register_thread(callback);
}
diff --git a/media/audioipc/server/Cargo.toml b/media/audioipc/server/Cargo.toml
index 99afe54939..99a3440d33 100644
--- a/media/audioipc/server/Cargo.toml
+++ b/media/audioipc/server/Cargo.toml
@@ -9,7 +9,6 @@ description = "Remote cubeb server"
edition = "2018"
[dependencies]
-audio_thread_priority = "0.22"
audioipc = { path = "../audioipc" }
cubeb-core = "0.7.0"
futures = "0.1.29"
diff --git a/media/audioipc/server/src/lib.rs b/media/audioipc/server/src/lib.rs
index 4d49c8fc08..3c44ee3def 100644
--- a/media/audioipc/server/src/lib.rs
+++ b/media/audioipc/server/src/lib.rs
@@ -9,7 +9,6 @@ extern crate error_chain;
#[macro_use]
extern crate log;
-use audio_thread_priority::promote_current_thread_to_real_time;
use audioipc::core;
use audioipc::platformhandle_passing::framed_with_platformhandles;
use audioipc::rpc;
@@ -64,12 +63,6 @@ fn run() -> Result<ServerWrapper> {
let callback_thread = core::spawn_thread(
"AudioIPC Callback RPC",
|| {
- match promote_current_thread_to_real_time(0, 48000) {
- Ok(_) => {}
- Err(_) => {
- debug!("Failed to promote audio callback thread to real-time.");
- }
- }
trace!("Starting up cubeb audio callback event loop thread...");
Ok(())
},
diff --git a/media/audioipc/server/src/server.rs b/media/audioipc/server/src/server.rs
index f07432f71f..b90e9d9be7 100644
--- a/media/audioipc/server/src/server.rs
+++ b/media/audioipc/server/src/server.rs
@@ -3,8 +3,6 @@
// This program is made available under an ISC-style license. See the
// accompanying file LICENSE for details
-#[cfg(target_os = "linux")]
-use audio_thread_priority::{promote_thread_to_real_time, RtPriorityThreadInfo};
use audioipc;
use audioipc::codec::LengthDelimitedCodec;
use audioipc::frame::{framed, Framed};
@@ -636,19 +634,6 @@ impl CubebServer {
)
.unwrap_or_else(error),
- #[cfg(target_os = "linux")]
- ServerMessage::PromoteThreadToRealTime(thread_info) => {
- let info = RtPriorityThreadInfo::deserialize(thread_info);
- match promote_thread_to_real_time(info, 0, 48000) {
- Ok(_) => {
- info!("Promotion of content process thread to real-time OK");
- }
- Err(_) => {
- warn!("Promotion of content process thread to real-time error");
- }
- }
- ClientMessage::ThreadPromoted
- }
};
trace!("process_msg: req={:?}, resp={:?}", msg, resp);
diff --git a/toolkit/library/rust/shared/Cargo.toml b/toolkit/library/rust/shared/Cargo.toml
index 5fdb0eb2c0..d9bc0346cb 100644
--- a/toolkit/library/rust/shared/Cargo.toml
+++ b/toolkit/library/rust/shared/Cargo.toml
@@ -41,7 +41,6 @@ storage = { path = "../../../../storage/rust" }
bookmark_sync = { path = "../../../components/places/bookmark_sync", optional = true }
shift_or_euc_c = "0.1.0"
chardetng_c = "0.1.1"
-audio_thread_priority = "0.22.1"
mdns_service = { path="../../../../media/mtransport/mdns_service", optional = true }
neqo_glue = { path = "../../../../netwerk/socket/neqo_glue" }
rlbox_lucet_sandbox = { version = "0.1.0", optional = true }
diff --git a/toolkit/library/rust/shared/lib.rs b/toolkit/library/rust/shared/lib.rs
index 3285383a11..d228bc9bad 100644
--- a/toolkit/library/rust/shared/lib.rs
+++ b/toolkit/library/rust/shared/lib.rs
@@ -51,7 +51,6 @@ extern crate xpcom;
#[cfg(feature = "new_xulstore")]
extern crate xulstore;
-extern crate audio_thread_priority;
#[cfg(not(target_os = "android"))]
extern crate webext_storage_bridge;

View File

@@ -0,0 +1,10 @@
pref("app.update.enabled", false);
pref("app.update.autoInstallEnabled", false);
pref("browser.display.use_system_colors", true);
pref("intl.locale.matchOS", true);
pref("intl.locale.requested", "");
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
pref("mail.shell.checkDefaultClient", false);
# Do not switch to Smart Folders after upgrade to 3.0b4
pref("mail.folder.views.version", "1");
pref("extensions.autoDisableScopes", 0);

View File

@@ -0,0 +1,10 @@
--- a/build/pgo/profileserver.py 2019-09-30 20:58:31.169527743 +0700
+++ b/build/pgo/profileserver.py 2019-09-30 21:02:07.964185254 +0700
@@ -137,7 +137,6 @@
env=env,
process_args=process_args)
runner.start(debug_args=debug_args, interactive=interactive)
- ret = runner.wait()
httpd.stop()
if ret:
print("Firefox exited with code %d during profiling" % ret)