Initial import
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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) {
|
||||
@@ -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());
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 {
|
||||
@@ -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);
|
||||
@@ -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);
|
||||
@@ -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)) {
|
||||
@@ -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);
|
||||
@@ -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.
|
||||
9
mail-client/thunderbird/files/debian-patchset-78/series
Normal file
9
mail-client/thunderbird/files/debian-patchset-78/series
Normal 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
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"policies": {
|
||||
"DisableAppUpdate": true
|
||||
}
|
||||
}
|
||||
@@ -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>)
|
||||
@@ -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)
|
||||
@@ -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);
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
@@ -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()
|
||||
|
||||
@@ -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 ||
|
||||
11
mail-client/thunderbird/files/fedora-patchset-68/series
Normal file
11
mail-client/thunderbird/files/fedora-patchset-68/series
Normal 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
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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>)
|
||||
@@ -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)
|
||||
@@ -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"
|
||||
@@ -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), \
|
||||
6
mail-client/thunderbird/files/fedora-patchset-78/series
Normal file
6
mail-client/thunderbird/files/fedora-patchset-78/series
Normal file
@@ -0,0 +1,6 @@
|
||||
build-disable-elfhack.patch
|
||||
|
||||
mozilla-1170092.patch
|
||||
rhbz-1354671.patch
|
||||
|
||||
Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch
|
||||
@@ -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
|
||||
10
mail-client/thunderbird/files/icon/thunderbird.desktop
Normal file
10
mail-client/thunderbird/files/icon/thunderbird.desktop
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
1698
mail-client/thunderbird/files/opensuse-kde-68/firefox-kde.patch
Normal file
1698
mail-client/thunderbird/files/opensuse-kde-68/firefox-kde.patch
Normal file
File diff suppressed because it is too large
Load Diff
3
mail-client/thunderbird/files/opensuse-kde-68/kde.js-1
Normal file
3
mail-client/thunderbird/files/opensuse-kde-68/kde.js-1
Normal file
@@ -0,0 +1,3 @@
|
||||
pref("intl.locale.requested", "");
|
||||
pref("intl.multilingual.enabled", true);
|
||||
pref("spellchecker.dictionary_path", "/usr/share/myspell");
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -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) {
|
||||
@@ -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);
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
2464
mail-client/thunderbird/files/opensuse-kde-68/mozilla-kde.patch
Normal file
2464
mail-client/thunderbird/files/opensuse-kde-68/mozilla-kde.patch
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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));
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 = []
|
||||
|
||||
14
mail-client/thunderbird/files/opensuse-kde-68/series
Normal file
14
mail-client/thunderbird/files/opensuse-kde-68/series
Normal 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
|
||||
@@ -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) {
|
||||
@@ -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) {
|
||||
@@ -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) {
|
||||
@@ -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
|
||||
@@ -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) {
|
||||
@@ -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);
|
||||
@@ -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);
|
||||
@@ -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."
|
||||
},
|
||||
@@ -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")
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 &&
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
@@ -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
|
||||
|
||||
1941
mail-client/thunderbird/files/opensuse-kde-78/mozilla-kde.patch
Normal file
1941
mail-client/thunderbird/files/opensuse-kde-78/mozilla-kde.patch
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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));
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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'))
|
||||
@@ -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");
|
||||
18
mail-client/thunderbird/files/opensuse-kde-78/series
Normal file
18
mail-client/thunderbird/files/opensuse-kde-78/series
Normal 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
|
||||
@@ -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();
|
||||
}
|
||||
@@ -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
|
||||
+
|
||||
@@ -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);
|
||||
2
mail-client/thunderbird/files/privacy-patchset-78/series
Normal file
2
mail-client/thunderbird/files/privacy-patchset-78/series
Normal file
@@ -0,0 +1,2 @@
|
||||
firefox-60-disable-telemetry.patch
|
||||
firefox-60-disable-data-sharing-infobar.patch
|
||||
359
mail-client/thunderbird/files/thunderbird-78-no-dbus.patch
Normal file
359
mail-client/thunderbird/files/thunderbird-78-no-dbus.patch
Normal 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;
|
||||
@@ -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);
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user