Import rpm: c8s

This commit is contained in:
James Antill 2023-02-28 10:48:22 -05:00
parent 2db411fcae
commit 5525daf91e
58 changed files with 35705 additions and 690 deletions

19
.gitignore vendored
View File

@ -1,10 +1,13 @@
SOURCES/cbindgen-vendor.tar.xz SOURCES/cbindgen-vendor.tar.xz
SOURCES/firefox-91.2.0esr.processed-source.tar.xz SOURCES/firefox-102.8.0esr.b2.processed-source.tar.xz
SOURCES/firefox-langpacks-91.2.0esr-20210929.tar.xz SOURCES/firefox-langpacks-102.8.0esr-20230214.tar.xz
SOURCES/nspr-4.32.0-1.el8_1.src.rpm SOURCES/firefox-symbolic.svg
SOURCES/nss-3.67.0-6.el8_1.src.rpm SOURCES/mochitest-python.tar.gz
SOURCES/nspr-4.34.0-3.el8_1.src.rpm
SOURCES/nss-3.79.0-6.el8_1.src.rpm
/cbindgen-vendor.tar.xz /cbindgen-vendor.tar.xz
/firefox-91.2.0esr.processed-source.tar.xz /firefox-102.8.0esr.b2.processed-source.tar.xz
/firefox-langpacks-91.2.0esr-20210929.tar.xz /firefox-langpacks-102.8.0esr-20230214.tar.xz
/nspr-4.32.0-1.el8_1.src.rpm /mochitest-python.tar.gz
/nss-3.67.0-6.el8_1.src.rpm /nspr-4.34.0-3.el8_1.src.rpm
/nss-3.79.0-6.el8_1.src.rpm

View File

@ -0,0 +1,44 @@
From efd5bc0715e5477318be95a76811cda0a89e8289 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
Date: Fri, 4 Mar 2022 12:00:26 +0100
Subject: [PATCH] GLIBCXX fix for GCC 12?
---
build/unix/stdc++compat/stdc++compat.cpp | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/build/unix/stdc++compat/stdc++compat.cpp b/build/unix/stdc++compat/stdc++compat.cpp
index 0180f6bcfa998..8d7a542ff11f0 100644
--- a/build/unix/stdc++compat/stdc++compat.cpp
+++ b/build/unix/stdc++compat/stdc++compat.cpp
@@ -24,6 +24,7 @@
GLIBCXX_3.4.27 is from gcc 10
GLIBCXX_3.4.28 is from gcc 10
GLIBCXX_3.4.29 is from gcc 11
+ GLIBCXX_3.4.30 is from gcc 12
This file adds the necessary compatibility tricks to avoid symbols with
version GLIBCXX_3.4.20 and bigger, keeping binary compatibility with
@@ -69,6 +70,19 @@ void __attribute__((weak)) __throw_bad_array_new_length() { MOZ_CRASH(); }
} // namespace std
#endif
+#if _GLIBCXX_RELEASE >= 12
+namespace std {
+
+/* This avoids the GLIBCXX_3.4.30 symbol version. */
+void __attribute__((weak))
+__glibcxx_assert_fail(const char* __file, int __line, const char* __function,
+ const char* __condition) {
+ MOZ_CRASH();
+}
+
+} // namespace std
+#endif
+
/* While we generally don't build with exceptions, we have some host tools
* that do use them. libstdc++ from GCC 5.0 added exception constructors with
* char const* argument. Older versions only have a constructor with
--
2.35.1

View File

@ -1,23 +1,35 @@
diff -up firefox-91.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-91.0/widget/gtk/nsWindow.cpp diff -up firefox-102.2.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-102.2.0/widget/gtk/nsWindow.cpp
--- firefox-91.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff 2021-07-27 23:31:38.000000000 +0200 --- firefox-102.2.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff 2022-08-18 21:54:09.000000000 +0200
+++ firefox-91.0/widget/gtk/nsWindow.cpp 2021-07-30 15:47:22.031795569 +0200 +++ firefox-102.2.0/widget/gtk/nsWindow.cpp 2022-09-02 15:55:18.023843940 +0200
@@ -91,6 +91,7 @@ @@ -96,6 +96,7 @@
#include "ScreenHelperGTK.h"
#include "SystemTimeConverter.h" #include "SystemTimeConverter.h"
#include "WidgetUtilsGtk.h" #include "WidgetUtilsGtk.h"
#include "mozilla/X11Util.h"
+#include "nsIBrowserHandler.h" +#include "nsIBrowserHandler.h"
#ifdef ACCESSIBILITY #ifdef ACCESSIBILITY
# include "mozilla/a11y/LocalAccessible.h" # include "mozilla/a11y/LocalAccessible.h"
@@ -441,6 +442,7 @@ nsWindow::nsWindow() @@ -169,7 +170,8 @@ const gint kEvents = GDK_TOUCHPAD_GESTUR
mHasMappedToplevel(false), GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK |
mRetryPointerGrab(false), GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
mSizeState(nsSizeMode_Normal), GDK_SMOOTH_SCROLL_MASK | GDK_TOUCH_MASK | GDK_SCROLL_MASK |
+ mPendingFullscreen(false), - GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK;
mAspectRatio(0.0f), + GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK |
mAspectRatioSaved(0.0f), + GDK_FOCUS_CHANGE_MASK;
mLastScrollEventTime(GDK_CURRENT_TIME),
@@ -4626,6 +4628,19 @@ void nsWindow::OnWindowStateEvent(GtkWid /* utility functions */
static bool is_mouse_in_window(GdkWindow* aWindow, gdouble aMouseX,
@@ -408,7 +410,8 @@ nsWindow::nsWindow()
mMovedAfterMoveToRect(false),
mResizedAfterMoveToRect(false),
mConfiguredClearColor(false),
- mGotNonBlankPaint(false) {
+ mGotNonBlankPaint(false),
+ mPendingFullscreen(false) {
mWindowType = eWindowType_child;
mSizeConstraints.mMaxSize = GetSafeWindowSize(mSizeConstraints.mMaxSize);
@@ -4814,6 +4817,19 @@ void nsWindow::OnWindowStateEvent(GtkWid
ClearTransparencyBitmap(); ClearTransparencyBitmap();
} }
} }
@ -27,17 +39,17 @@ diff -up firefox-91.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-91.0/
+ if (mPendingFullscreen && + if (mPendingFullscreen &&
+ !(aEvent->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)) { + !(aEvent->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)) {
+ LOG( + LOG(
+ (" Window should be fullscreen, but it's not, retrying set to " + " Window should be fullscreen, but it's not, retrying set to "
+ "fullscreen.\n")); + "fullscreen.\n");
+ MakeFullScreen(true); + MakeFullScreen(true);
+ } else { + } else {
+ LOG((" Window successfully switched to fullscreen, happy now\n")); + LOG(" Window successfully switched to fullscreen, happy now\n");
+ mPendingFullscreen = false; + mPendingFullscreen = false;
+ } + }
} }
void nsWindow::OnDPIChanged() { void nsWindow::OnDPIChanged() {
@@ -6880,6 +6895,19 @@ nsresult nsWindow::MakeFullScreen(bool a @@ -7042,6 +7058,19 @@ nsresult nsWindow::MakeFullScreen(bool a
} }
} }
@ -48,23 +60,23 @@ diff -up firefox-91.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-91.0/
+ bool isKiosk; + bool isKiosk;
+ browserHandler->GetKiosk(&isKiosk); + browserHandler->GetKiosk(&isKiosk);
+ if (isKiosk) { + if (isKiosk) {
+ LOG((" is kiosk, ensure the window switch to fullscreen\n")); + LOG(" is kiosk, ensure the window switch to fullscreen\n");
+ mPendingFullscreen = true; + mPendingFullscreen = true;
+ } + }
+ } else { + } else {
+ LOG((" Cannot find the browserHandler service.\n")); + LOG(" Cannot find the browserHandler service.\n");
+ } + }
gtk_window_fullscreen(GTK_WINDOW(mShell)); gtk_window_fullscreen(GTK_WINDOW(mShell));
} else { } else {
mSizeMode = mLastSizeMode; mSizeMode = mLastSizeMode;
diff -up firefox-91.0/widget/gtk/nsWindow.h.D110204-fscreen.diff firefox-91.0/widget/gtk/nsWindow.h diff -up firefox-102.2.0/widget/gtk/nsWindow.h.D110204-fscreen.diff firefox-102.2.0/widget/gtk/nsWindow.h
--- firefox-91.0/widget/gtk/nsWindow.h.D110204-fscreen.diff 2021-07-27 23:31:38.000000000 +0200 --- firefox-102.2.0/widget/gtk/nsWindow.h.D110204-fscreen.diff 2022-08-18 21:53:52.000000000 +0200
+++ firefox-91.0/widget/gtk/nsWindow.h 2021-07-29 18:35:41.000639386 +0200 +++ firefox-102.2.0/widget/gtk/nsWindow.h 2022-09-02 08:17:07.606010905 +0200
@@ -763,6 +763,7 @@ class nsWindow final : public nsBaseWidg @@ -712,6 +712,7 @@ class nsWindow final : public nsBaseWidg
* move-to-rect callback we store it to mNewSizeAfterMoveToRect. * move-to-rect callback we set mMovedAfterMoveToRect/mResizedAfterMoveToRect.
*/ */
bool mWaitingForMoveToRectCallback; bool mWaitingForMoveToRectCallback : 1;
+ bool mPendingFullscreen; + bool mPendingFullscreen : 1;
LayoutDeviceIntRect mNewSizeAfterMoveToRect; bool mMovedAfterMoveToRect : 1;
bool mResizedAfterMoveToRect : 1;
/**

25
D158770.diff Normal file
View File

@ -0,0 +1,25 @@
diff --git a/parser/expat/lib/xmlparse.c b/parser/expat/lib/xmlparse.c
--- a/parser/expat/lib/xmlparse.c
+++ b/parser/expat/lib/xmlparse.c
@@ -5652,12 +5652,18 @@
else
#endif /* XML_DTD */
{
processor = contentProcessor;
/* see externalEntityContentProcessor vs contentProcessor */
- return doContent(parser, parentParser ? 1 : 0, encoding, s, end,
- nextPtr, (XML_Bool)!ps_finalBuffer);
+ result = doContent(parser, parser->m_parentParser ? 1 : 0,
+ parser->m_encoding, s, end, nextPtr,
+ (XML_Bool)! parser->m_parsingStatus.finalBuffer);
+ if (result == XML_ERROR_NONE) {
+ if (! storeRawNames(parser))
+ return XML_ERROR_NO_MEMORY;
+ }
+ return result;
}
}
static enum XML_Error PTRCALL
errorProcessor(XML_Parser parser,

45
build-aarch64-skia.patch Normal file
View File

@ -0,0 +1,45 @@
diff -up firefox-72.0/gfx/skia/skia/include/private/SkHalf.h.aarch64-skia firefox-72.0/gfx/skia/skia/include/private/SkHalf.h
--- firefox-72.0/gfx/skia/skia/include/private/SkHalf.h.aarch64-skia 2020-01-02 22:33:02.000000000 +0100
+++ firefox-72.0/gfx/skia/skia/include/private/SkHalf.h 2020-01-03 09:00:37.537296105 +0100
@@ -40,7 +40,7 @@ static inline Sk4h SkFloatToHalf_finite_
static inline Sk4f SkHalfToFloat_finite_ftz(uint64_t rgba) {
Sk4h hs = Sk4h::Load(&rgba);
-#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
+#if 0 // !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
float32x4_t fs;
asm ("fcvtl %[fs].4s, %[hs].4h \n" // vcvt_f32_f16(...)
: [fs] "=w" (fs) // =w: write-only NEON register
@@ -62,7 +62,7 @@ static inline Sk4f SkHalfToFloat_finite_
}
static inline Sk4h SkFloatToHalf_finite_ftz(const Sk4f& fs) {
-#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
+#if 0 // !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
float32x4_t vec = fs.fVec;
asm ("fcvtn %[vec].4h, %[vec].4s \n" // vcvt_f16_f32(vec)
: [vec] "+w" (vec)); // +w: read-write NEON register
diff -up firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.aarch64-skia firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h
--- firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.aarch64-skia 2020-01-03 09:00:37.538296107 +0100
+++ firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h 2020-01-03 10:11:41.259219508 +0100
@@ -1087,7 +1087,7 @@ SI F from_half(U16 h) {
}
SI U16 to_half(F f) {
-#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
+#if 0 //defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
&& !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
return vcvt_f16_f32(f);
diff -up firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.aarch64-skia firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h
--- firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.aarch64-skia 2020-01-03 09:00:37.538296107 +0100
+++ firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h 2020-01-03 10:11:53.513250979 +0100
@@ -183,8 +183,6 @@ SI F F_from_Half(U16 half) {
SI U16 Half_from_F(F f) {
#if defined(USING_NEON_FP16)
return bit_pun<U16>(f);
-#elif defined(USING_NEON_F16C)
- return (U16)vcvt_f16_f32(f);
#elif defined(USING_AVX512F)
return (U16)_mm512_cvtps_ph((__m512 )f, _MM_FROUND_CUR_DIRECTION );
#elif defined(USING_AVX_F16C)

12
build-arm-libaom.patch Normal file
View File

@ -0,0 +1,12 @@
diff -up firefox-73.0/media/libaom/moz.build.old firefox-73.0/media/libaom/moz.build
--- firefox-73.0/media/libaom/moz.build.old 2020-02-07 23:13:28.000000000 +0200
+++ firefox-73.0/media/libaom/moz.build 2020-02-17 10:30:08.509805092 +0200
@@ -55,7 +55,7 @@ elif CONFIG['CPU_ARCH'] == 'arm':
for f in SOURCES:
if f.endswith('neon.c'):
- SOURCES[f].flags += CONFIG['VPX_ASFLAGS']
+ SOURCES[f].flags += CONFIG['NEON_FLAGS']
if CONFIG['OS_TARGET'] == 'Android':
# For cpu-features.h

12
build-arm-libopus.patch Normal file
View File

@ -0,0 +1,12 @@
diff -up firefox-66.0/media/libopus/silk/arm/arm_silk_map.c.old firefox-66.0/media/libopus/silk/arm/arm_silk_map.c
--- firefox-66.0/media/libopus/silk/arm/arm_silk_map.c.old 2019-03-12 21:07:35.356677522 +0100
+++ firefox-66.0/media/libopus/silk/arm/arm_silk_map.c 2019-03-12 21:07:42.937693394 +0100
@@ -28,7 +28,7 @@ POSSIBILITY OF SUCH DAMAGE.
# include "config.h"
#endif
-#include "main_FIX.h"
+#include "fixed/main_FIX.h"
#include "NSQ.h"
#include "SigProc_FIX.h"

View File

@ -0,0 +1,45 @@
diff -up firefox-102.0/third_party/python/PyYAML/lib3/yaml/reader.py.build-ascii-decode-fail-rhel7 firefox-102.0/third_party/python/PyYAML/lib3/yaml/reader.py
--- firefox-102.0/third_party/python/PyYAML/lib3/yaml/reader.py.build-ascii-decode-fail-rhel7 2022-06-23 09:11:39.000000000 +0200
+++ firefox-102.0/third_party/python/PyYAML/lib3/yaml/reader.py 2022-08-16 13:24:31.697757209 +0200
@@ -73,6 +73,8 @@ class Reader(object):
self.name = "<unicode string>"
self.check_printable(stream)
self.buffer = stream+'\0'
+ #self.encoding = 'utf-8'
+ #self.raw_decode = codecs.utf_8_decode
elif isinstance(stream, bytes):
self.name = "<byte string>"
self.raw_buffer = stream
@@ -83,6 +85,11 @@ class Reader(object):
self.eof = False
self.raw_buffer = None
self.determine_encoding()
+ print("DEBUG_OUTPUT:")
+ print(self.name)
+ print(self.encoding)
+ print(self.stream)
+ #print(self.stream.read())
def peek(self, index=0):
try:
diff -up firefox-102.0/toolkit/components/nimbus/generate/generate_feature_manifest.py.build-ascii-decode-fail-rhel7 firefox-102.0/toolkit/components/nimbus/generate/generate_feature_manifest.py
--- firefox-102.0/toolkit/components/nimbus/generate/generate_feature_manifest.py.build-ascii-decode-fail-rhel7 2022-08-16 14:16:33.432529817 +0200
+++ firefox-102.0/toolkit/components/nimbus/generate/generate_feature_manifest.py 2022-08-17 08:01:38.175878171 +0200
@@ -37,7 +37,7 @@ def generate_feature_manifest(fd, input_
write_fm_js_headers(fd)
nimbus_dir_path = pathlib.Path(input_file).parent
try:
- with open(input_file, "r") as yaml_input:
+ with open(input_file, "r", encoding="utf-8") as yaml_input:
data = yaml.safe_load(yaml_input)
with pathlib.Path(nimbus_dir_path, FEATURE_MANIFEST_SCHEMA).open() as f:
schema = json.load(f)
@@ -92,7 +92,7 @@ def generate_platform_feature_manifest(f
)
try:
- with open(input_file, "r") as yaml_input:
+ with open(input_file, "r", encoding="utf-8") as yaml_input:
data = yaml.safe_load(yaml_input)
fd.write(file_structure(data))
except (IOError) as e:

View File

@ -0,0 +1,57 @@
diff -up firefox-102.0/third_party/libwebrtc/common_audio/wav_file.cc.big-endian-errors firefox-102.0/third_party/libwebrtc/common_audio/wav_file.cc
--- firefox-102.0/third_party/libwebrtc/common_audio/wav_file.cc.big-endian-errors 2022-08-17 13:19:53.056891028 +0200
+++ firefox-102.0/third_party/libwebrtc/common_audio/wav_file.cc 2022-08-17 13:19:57.251879556 +0200
@@ -89,9 +89,6 @@ void WavReader::Reset() {
size_t WavReader::ReadSamples(const size_t num_samples,
int16_t* const samples) {
-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN
-#error "Need to convert samples to big-endian when reading from WAV file"
-#endif
size_t num_samples_left_to_read = num_samples;
size_t next_chunk_start = 0;
@@ -129,9 +126,6 @@ size_t WavReader::ReadSamples(const size
}
size_t WavReader::ReadSamples(const size_t num_samples, float* const samples) {
-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN
-#error "Need to convert samples to big-endian when reading from WAV file"
-#endif
size_t num_samples_left_to_read = num_samples;
size_t next_chunk_start = 0;
@@ -213,9 +207,6 @@ WavWriter::WavWriter(FileWrapper file,
}
void WavWriter::WriteSamples(const int16_t* samples, size_t num_samples) {
-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN
-#error "Need to convert samples to little-endian when writing to WAV file"
-#endif
for (size_t i = 0; i < num_samples; i += kMaxChunksize) {
const size_t num_remaining_samples = num_samples - i;
@@ -243,9 +234,6 @@ void WavWriter::WriteSamples(const int16
}
void WavWriter::WriteSamples(const float* samples, size_t num_samples) {
-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN
-#error "Need to convert samples to little-endian when writing to WAV file"
-#endif
for (size_t i = 0; i < num_samples; i += kMaxChunksize) {
const size_t num_remaining_samples = num_samples - i;
diff -up firefox-102.0/third_party/libwebrtc/common_audio/wav_header.cc.big-endian-errors firefox-102.0/third_party/libwebrtc/common_audio/wav_header.cc
--- firefox-102.0/third_party/libwebrtc/common_audio/wav_header.cc.big-endian-errors 2022-08-17 13:18:04.688187393 +0200
+++ firefox-102.0/third_party/libwebrtc/common_audio/wav_header.cc 2022-08-17 13:18:22.451138816 +0200
@@ -26,10 +26,6 @@
namespace webrtc {
namespace {
-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN
-#error "Code not working properly for big endian platforms."
-#endif
-
#pragma pack(2)
struct ChunkHeader {
uint32_t ID;

View File

@ -0,0 +1,12 @@
diff -up firefox-97.0/toolkit/moz.configure.disable-elfhack firefox-97.0/toolkit/moz.configure
--- firefox-97.0/toolkit/moz.configure.disable-elfhack 2022-02-08 09:58:47.518047952 +0100
+++ firefox-97.0/toolkit/moz.configure 2022-02-08 10:17:49.552945956 +0100
@@ -1273,7 +1273,7 @@ with only_when("--enable-compile-environ
help="{Enable|Disable} elf hacks",
)
- set_config("USE_ELF_HACK", depends_if("--enable-elf-hack")(lambda _: True))
+ set_config("USE_ELF_HACK", depends_if("--enable-elf-hack")(lambda _: False))
@depends(build_environment)

View File

@ -0,0 +1,49 @@
diff -up firefox-102.0/media/ffvpx/config_common.h.dav1d-remove firefox-102.0/media/ffvpx/config_common.h
--- firefox-102.0/media/ffvpx/config_common.h.dav1d-remove 2022-08-08 12:48:33.218128539 +0200
+++ firefox-102.0/media/ffvpx/config_common.h 2022-08-08 12:48:52.986003374 +0200
@@ -24,15 +24,11 @@
#undef CONFIG_VP8_VAAPI_HWACCEL
#undef CONFIG_VP9_VAAPI_HWACCEL
#undef CONFIG_AV1_VAAPI_HWACCEL
-#undef CONFIG_LIBDAV1D
-#undef CONFIG_AV1_DECODER
#define CONFIG_VAAPI 1
#define CONFIG_VAAPI_1 1
#define CONFIG_VP8_VAAPI_HWACCEL 1
#define CONFIG_VP9_VAAPI_HWACCEL 1
#define CONFIG_AV1_VAAPI_HWACCEL 1
-#define CONFIG_LIBDAV1D 1
-#define CONFIG_AV1_DECODER 1
#endif
#endif
diff -up firefox-102.0/media/ffvpx/libavcodec/moz.build.dav1d-remove firefox-102.0/media/ffvpx/libavcodec/moz.build
--- firefox-102.0/media/ffvpx/libavcodec/moz.build.dav1d-remove 2022-08-08 12:44:24.098710736 +0200
+++ firefox-102.0/media/ffvpx/libavcodec/moz.build 2022-08-08 12:46:42.635828719 +0200
@@ -104,17 +104,23 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']:
]
if CONFIG['MOZ_WAYLAND']:
LOCAL_INCLUDES += ['/media/mozva']
+ if CONFIG['MOZ_DAV1D_ASM']:
+ SOURCES += [
+ 'libdav1d.c',
+ ]
SOURCES += [
'atsc_a53.c',
- 'libdav1d.c',
'vaapi_av1.c',
'vaapi_decode.c',
'vaapi_vp8.c',
'vaapi_vp9.c',
]
+ if CONFIG['MOZ_DAV1D_ASM']:
+ USE_LIBS += [
+ 'dav1d',
+ 'media_libdav1d_asm',
+ ]
USE_LIBS += [
- 'dav1d',
- 'media_libdav1d_asm',
'mozva'
]

View File

@ -0,0 +1,11 @@
--- firefox-102.4.0/python/mozbuild/mozbuild/nodeutil.py.lower-node-min-version 2022-10-10 17:55:56.000000000 +0200
+++ firefox-102.4.0/python/mozbuild/mozbuild/nodeutil.py 2022-10-17 14:57:47.476182627 +0200
@@ -13,7 +13,7 @@ from mozboot.util import get_tools_dir
from mozfile import which
from six import PY3
-NODE_MIN_VERSION = StrictVersion("10.24.1")
+NODE_MIN_VERSION = StrictVersion("10.24.0")
NPM_MIN_VERSION = StrictVersion("6.14.12")

View File

@ -0,0 +1,39 @@
diff -up firefox-81.0/toolkit/modules/GMPInstallManager.jsm.old firefox-81.0/toolkit/modules/GMPInstallManager.jsm
--- firefox-81.0/toolkit/modules/GMPInstallManager.jsm.old 2020-09-25 10:39:04.769458703 +0200
+++ firefox-81.0/toolkit/modules/GMPInstallManager.jsm 2020-09-25 10:39:22.038504747 +0200
@@ -54,10 +54,6 @@ function getScopedLogger(prefix) {
const LOCAL_GMP_SOURCES = [
{
- id: "gmp-gmpopenh264",
- src: "chrome://global/content/gmp-sources/openh264.json",
- },
- {
id: "gmp-widevinecdm",
src: "chrome://global/content/gmp-sources/widevinecdm.json",
},
diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
--- a/toolkit/content/jar.mn
+++ b/toolkit/content/jar.mn
@@ -108,7 +108,6 @@ toolkit.jar:
#ifdef XP_MACOSX
content/global/macWindowMenu.js
#endif
- content/global/gmp-sources/openh264.json (gmp-sources/openh264.json)
content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json)
# Third party files
diff --git a/toolkit/modules/GMPInstallManager.jsm b/toolkit/modules/GMPInstallManager.jsm
--- a/toolkit/modules/GMPInstallManager.jsm
+++ b/toolkit/modules/GMPInstallManager.jsm
@@ -238,6 +234,9 @@ GMPInstallManager.prototype = {
* downloaderr, verifyerr or previouserrorencountered
*/
installAddon(gmpAddon) {
+ if (gmpAddon.isOpenH264) {
+ return Promise.reject({ type: "disabled" });
+ }
if (this._deferred) {
let log = getScopedLogger("GMPInstallManager.installAddon");
log.error("previous error encountered");

View File

@ -1,9 +1,9 @@
[Global] [Global]
id=redhat id=fedora
version=1.0 version=1.0
about=Mozilla Firefox for Red Hat Enterprise Linux about=Mozilla Firefox for Fedora
[Preferences] [Preferences]
app.distributor=redhat app.distributor=fedora
app.distributor.channel=redhat app.distributor.channel=fedora
app.partner.fedora=redhat app.partner.fedora=fedora

View File

@ -0,0 +1,9 @@
diff -up firefox-73.0/build/unix/run-mozilla.sh.old firefox-73.0/build/unix/run-mozilla.sh
--- firefox-73.0/build/unix/run-mozilla.sh.old 2020-02-12 09:58:00.150895904 +0100
+++ firefox-73.0/build/unix/run-mozilla.sh 2020-02-12 09:58:06.505860696 +0100
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/sh
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this

38
firefox-gcc-build.patch Normal file
View File

@ -0,0 +1,38 @@
--- firefox-80.0.1/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2020-08-31 10:04:19.000000000 -0400
+++ firefox-80.0.1/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2020-09-12 07:24:35.298931628 -0400
@@ -1962,7 +1962,7 @@ struct kernel_statfs {
LSS_ENTRYPOINT \
"pop %%ebx" \
args \
- : "esp", "memory"); \
+ : "memory"); \
LSS_RETURN(type,__res)
#undef _syscall0
#define _syscall0(type,name) \
@@ -2019,7 +2019,7 @@ struct kernel_statfs {
: "i" (__NR_##name), "ri" ((long)(arg1)), \
"c" ((long)(arg2)), "d" ((long)(arg3)), \
"S" ((long)(arg4)), "D" ((long)(arg5)) \
- : "esp", "memory"); \
+ : "memory"); \
LSS_RETURN(type,__res); \
}
#undef _syscall6
@@ -2041,7 +2041,7 @@ struct kernel_statfs {
: "i" (__NR_##name), "0" ((long)(&__s)), \
"c" ((long)(arg2)), "d" ((long)(arg3)), \
"S" ((long)(arg4)), "D" ((long)(arg5)) \
- : "esp", "memory"); \
+ : "memory"); \
LSS_RETURN(type,__res); \
}
LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
@@ -2127,7 +2127,7 @@ struct kernel_statfs {
: "0"(-EINVAL), "i"(__NR_clone),
"m"(fn), "m"(child_stack), "m"(flags), "m"(arg),
"m"(parent_tidptr), "m"(newtls), "m"(child_tidptr)
- : "esp", "memory", "ecx", "edx", "esi", "edi");
+ : "memory", "ecx", "edx", "esi", "edi");
LSS_RETURN(int, __res);
}

View File

@ -1,31 +1,28 @@
. $topsrcdir/browser/config/mozconfig . $topsrcdir/browser/config/mozconfig
ac_add_options --prefix="$PREFIX"
ac_add_options --libdir="$LIBDIR"
ac_add_options --with-system-zlib ac_add_options --with-system-zlib
ac_add_options --disable-strip ac_add_options --disable-strip
ac_add_options --disable-tests
#ac_add_options --enable-libnotify #ac_add_options --enable-libnotify
ac_add_options --enable-necko-wifi ac_add_options --enable-necko-wifi
ac_add_options --disable-updater ac_add_options --disable-updater
ac_add_options --enable-chrome-format=omni ac_add_options --enable-chrome-format=omni
ac_add_options --enable-pulseaudio ac_add_options --enable-pulseaudio
ac_add_options --enable-av1
ac_add_options --without-system-icu ac_add_options --without-system-icu
ac_add_options --enable-release ac_add_options --enable-release
ac_add_options --update-channel=release
ac_add_options --allow-addon-sideload ac_add_options --allow-addon-sideload
ac_add_options --with-system-jpeg ac_add_options --with-system-jpeg
ac_add_options --enable-js-shell ac_add_options --enable-js-shell
ac_add_options --with-unsigned-addon-scopes=app,system ac_add_options --with-unsigned-addon-scopes=app,system
ac_add_options --without-sysroot
ac_add_options --with-mozilla-api-keyfile=../mozilla-api-key # investigate this one:
ac_add_options --with-google-location-service-api-keyfile=../google-api-key ac_add_options --without-wasm-sandboxed-libraries
ac_add_options --with-google-safebrowsing-api-keyfile=../google-api-key
ac_add_options --disable-crashreporter ac_add_options --disable-crashreporter
export BUILD_OFFICIAL=1 export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1 export MOZILLA_OFFICIAL=1
export MOZ_TELEMETRY_REPORTING=1 export MOZ_TELEMETRY_REPORTING=1
export MOZ_UPDATE_CHANNEL=release
export MOZ_APP_REMOTINGNAME=firefox
mk_add_options BUILD_OFFICIAL=1 mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1 mk_add_options MOZILLA_OFFICIAL=1
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir

11
firefox-nss-version.patch Normal file
View File

@ -0,0 +1,11 @@
--- firefox-102.6.0/build/moz.configure/nss.configure.firefox-nss-version 2022-12-06 19:14:59.439978420 +0100
+++ firefox-102.6.0/build/moz.configure/nss.configure 2022-12-06 19:18:23.299471634 +0100
@@ -9,7 +9,7 @@ system_lib_option("--with-system-nss", h
imply_option("--with-system-nspr", True, when="--with-system-nss")
nss_pkg = pkg_check_modules(
- "NSS", "nss >= 3.79.2", when="--with-system-nss", config=False
+ "NSS", "nss >= 3.79", when="--with-system-nss", config=False
)
set_config("MOZ_SYSTEM_NSS", True, when="--with-system-nss")

View File

@ -2,7 +2,7 @@ pref("app.update.auto", false);
pref("app.update.enabled", false); pref("app.update.enabled", false);
pref("app.update.autoInstallEnabled", false); pref("app.update.autoInstallEnabled", false);
pref("general.smoothScroll", true); pref("general.smoothScroll", true);
pref("intl.locale.matchOS", true); pref("intl.locale.requested", "");
pref("toolkit.storage.synchronous", 0); pref("toolkit.storage.synchronous", 0);
pref("toolkit.networkmanager.disable", false); pref("toolkit.networkmanager.disable", false);
pref("offline.autoDetect", true); pref("offline.autoDetect", true);
@ -17,19 +17,23 @@ pref("ui.SpellCheckerUnderlineStyle", 1);
pref("startup.homepage_override_url", "http://www.redhat.com"); pref("startup.homepage_override_url", "http://www.redhat.com");
pref("startup.homepage_welcome_url", "http://www.redhat.com"); pref("startup.homepage_welcome_url", "http://www.redhat.com");
pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=file:///%PREFIX%/share/doc/HTML/index.html"); pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=file:///%PREFIX%/share/doc/HTML/index.html");
pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
pref("media.gmp-gmpopenh264.provider.enabled",false); pref("media.gmp-gmpopenh264.provider.enabled",false);
pref("media.gmp-gmpopenh264.autoupdate",false); pref("media.gmp-gmpopenh264.autoupdate",false);
pref("media.gmp-gmpopenh264.enabled",false); pref("media.gmp-gmpopenh264.enabled",false);
pref("media.gmp-gmpopenh264.enabled",false); pref("media.gmp.decoder.enabled", true);
pref("plugins.notifyMissingFlash", false); pref("plugins.notifyMissingFlash", false);
/* See https://bugzilla.redhat.com/show_bug.cgi?id=1226489 */ /* See https://bugzilla.redhat.com/show_bug.cgi?id=1226489 */
pref("browser.display.use_system_colors", false); pref("browser.display.use_system_colors", false);
pref("layers.use-image-offscreen-surfaces", false);
/* Allow sending credetials to all https:// sites */ /* Allow sending credetials to all https:// sites */
pref("network.negotiate-auth.trusted-uris", "https://"); pref("network.negotiate-auth.trusted-uris", "https://");
pref("security.use_sqldb", false); pref("security.use_sqldb", false);
/* Use OS settings for UI language */ pref("spellchecker.dictionary_path","/usr/share/myspell");
pref("intl.locale.requested", ""); /* Disable DoH by default */
pref("network.trr.mode", 5);
/* Enable per-user policy dir, see mozbz#1583466 */
pref("browser.policies.perUserDir", true);
pref("browser.gnome-search-provider.enabled",true);
/* Enable ffvpx playback for WebRTC */
pref("media.navigator.mediadatadecoder_vpx_enabled", true);
/* See https://bugzilla.redhat.com/show_bug.cgi?id=1672424 */ /* See https://bugzilla.redhat.com/show_bug.cgi?id=1672424 */
pref("storage.nfs_filesystem", true); pref("storage.nfs_filesystem", true);

View File

@ -0,0 +1,5 @@
[Shell Search Provider]
DesktopId=firefox.desktop
BusName=org.mozilla.Firefox.SearchProvider
ObjectPath=/org/mozilla/Firefox/SearchProvider
Version=2

View File

@ -0,0 +1,14 @@
diff -up firefox-88.0/testing/xpcshell/runxpcshelltests.py.old firefox-88.0/testing/xpcshell/runxpcshelltests.py
--- firefox-88.0/testing/xpcshell/runxpcshelltests.py.old 2021-04-30 10:45:14.466616224 +0200
+++ firefox-88.0/testing/xpcshell/runxpcshelltests.py 2021-04-30 10:45:21.339525085 +0200
@@ -1382,8 +1382,8 @@ class XPCShellTests(object):
self.log.info("Process %s" % label)
self.log.info(msg)
- dumpOutput(proc.stdout, "stdout")
- dumpOutput(proc.stderr, "stderr")
+ #dumpOutput(proc.stdout, "stdout")
+ #dumpOutput(proc.stderr, "stderr")
self.nodeProc = {}
def startHttp3Server(self):

235
firefox-x11.desktop Normal file
View File

@ -0,0 +1,235 @@
[Desktop Entry]
Version=1.0
Name=Firefox on X11
GenericName=Web Browser
Comment=Browse the Web
Exec=firefox-x11 --name firefox-x11 %u
Icon=firefox
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
Categories=Network;WebBrowser;
Keywords=web;browser;internet;
Actions=new-window;new-private-window;profile-manager-window;
[Desktop Action new-window]
Name=Open a New Window
Name[ach]=Dirica manyen
Name[af]=Nuwe venster
Name[an]=Nueva finestra
Name[ar]=نافذة جديدة
Name[as]=
Name[ast]=Ventana nueva
Name[az]=Yeni Pəncərə
Name[be]=Новае акно
Name[bg]=Нов прозорец
Name[bn_BD]= (N)
Name[bn_IN]=
Name[br]=Prenestr nevez
Name[brx]= '(N)
Name[bs]=Novi prozor
Name[ca]=Finestra nova
Name[cak]=K'ak'a' tzuwäch
Name[cs]=Nové okno
Name[cy]=Ffenestr Newydd
Name[da]=Nyt vindue
Name[de]=Neues Fenster
Name[dsb]=Nowe wokno
Name[el]=Νέο παράθυρο
Name[en_GB]=New Window
Name[en_US]=New Window
Name[en_ZA]=New Window
Name[eo]=Nova fenestro
Name[es_AR]=Nueva ventana
Name[es_CL]=Nueva ventana
Name[es_ES]=Nueva ventana
Name[es_MX]=Nueva ventana
Name[et]=Uus aken
Name[eu]=Leiho berria
Name[fa]=پنجره جدید
Name[ff]=Henorde Hesere
Name[fi]=Uusi ikkuna
Name[fr]=Nouvelle fenêtre
Name[fy_NL]=Nij finster
Name[ga_IE]=Fuinneog Nua
Name[gd]=Uinneag ùr
Name[gl]=Nova xanela
Name[gn]=Ovetã pyahu
Name[gu_IN]= િ
Name[he]=חלון חדש
Name[hi_IN]= ि
Name[hr]=Novi prozor
Name[hsb]=Nowe wokno
Name[hu]=Új ablak
Name[hy_AM]=Նոր Պատուհան
Name[id]=Jendela Baru
Name[is]=Nýr gluggi
Name[it]=Nuova finestra
Name[ja]=
Name[ja_JP-mac]=
Name[ka]=
Name[kk]=Жаңа терезе
Name[km]=
Name[kn]= ಿಿ
Name[ko]=
Name[kok]=
Name[ks]=نئئ وِنڈو
Name[lij]=Neuvo barcon
Name[lo]=
Name[lt]=Naujas langas
Name[ltg]=Jauns lūgs
Name[lv]=Jauns logs
Name[mai]= ि
Name[mk]=Нов прозорец
Name[ml]=ി
Name[mr]=
Name[ms]=Tetingkap Baru
Name[my]=
Name[nb_NO]=Nytt vindu
Name[ne_NP]=
Name[nl]=Nieuw venster
Name[nn_NO]=Nytt vindauge
Name[or]= ି
Name[pa_IN]= ਿ
Name[pl]=Nowe okno
Name[pt_BR]=Nova janela
Name[pt_PT]=Nova janela
Name[rm]=Nova fanestra
Name[ro]=Fereastră nouă
Name[ru]=Новое окно
Name[sat]= ि (N)
Name[si]=
Name[sk]=Nové okno
Name[sl]=Novo okno
Name[son]=Zanfun taaga
Name[sq]=Dritare e Re
Name[sr]=Нови прозор
Name[sv_SE]=Nytt fönster
Name[ta]=ி
Name[te]= ి
Name[th]=
Name[tr]=Yeni pencere
Name[tsz]=Eraatarakua jimpani
Name[uk]=Нове вікно
Name[ur]=نیا دریچہ
Name[uz]=Yangi oyna
Name[vi]=Ca s mi
Name[wo]=Palanteer bu bees
Name[xh]=Ifestile entsha
Name[zh_CN]=
Name[zh_TW]=
Exec=firefox-x11 --name firefox-x11 --new-window %u
[Desktop Action new-private-window]
Name=Open a New Private Window
Name[ach]=Dirica manyen me mung
Name[af]=Nuwe privaatvenster
Name[an]=Nueva finestra privada
Name[ar]=نافذة خاصة جديدة
Name[as]= ি
Name[ast]=Ventana privada nueva
Name[az]=Yeni Məxfi Pəncərə
Name[be]=Новае акно адасаблення
Name[bg]=Нов прозорец за поверително сърфиране
Name[bn_BD]= ি
Name[bn_IN]= ি
Name[br]=Prenestr merdeiñ prevez nevez
Name[brx]= '
Name[bs]=Novi privatni prozor
Name[ca]=Finestra privada nova
Name[cak]=K'ak'a' ichinan tzuwäch
Name[cs]=Nové anonymní okno
Name[cy]=Ffenestr Breifat Newydd
Name[da]=Nyt privat vindue
Name[de]=Neues privates Fenster
Name[dsb]=Nowe priwatne wokno
Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
Name[en_GB]=New Private Window
Name[en_US]=New Private Window
Name[en_ZA]=New Private Window
Name[eo]=Nova privata fenestro
Name[es_AR]=Nueva ventana privada
Name[es_CL]=Nueva ventana privada
Name[es_ES]=Nueva ventana privada
Name[es_MX]=Nueva ventana privada
Name[et]=Uus privaatne aken
Name[eu]=Leiho pribatu berria
Name[fa]=پنجره ناشناس جدید
Name[ff]=Henorde Suturo Hesere
Name[fi]=Uusi yksityinen ikkuna
Name[fr]=Nouvelle fenêtre de navigation privée
Name[fy_NL]=Nij priveefinster
Name[ga_IE]=Fuinneog Nua Phríobháideach
Name[gd]=Uinneag phrìobhaideach ùr
Name[gl]=Nova xanela privada
Name[gn]=Ovetã ñemi pyahu
Name[gu_IN]= િ
Name[he]=חלון פרטי חדש
Name[hi_IN]= ि ि
Name[hr]=Novi privatni prozor
Name[hsb]=Nowe priwatne wokno
Name[hu]=Új privát ablak
Name[hy_AM]=Սկսել Գաղտնի դիտարկում
Name[id]=Jendela Mode Pribadi Baru
Name[is]=Nýr huliðsgluggi
Name[it]=Nuova finestra anonima
Name[ja]=
Name[ja_JP-mac]=
Name[ka]=
Name[kk]=Жаңа жекелік терезе
Name[km]=
Name[kn]= ಿ ಿಿ
Name[ko]=
Name[kok]= ि
Name[ks]=نْو پرایوٹ وینڈو&amp;
Name[lij]=Neuvo barcon privou
Name[lo]=
Name[lt]=Naujas privataus naršymo langas
Name[ltg]=Jauns privatais lūgs
Name[lv]=Jauns privātais logs
Name[mai]= ि ि (W)
Name[mk]=Нов приватен прозорец
Name[ml]=ി
Name[mr]= ि
Name[ms]=Tetingkap Persendirian Baharu
Name[my]=New Private Window
Name[nb_NO]=Nytt privat vindu
Name[ne_NP]= ि
Name[nl]=Nieuw privévenster
Name[nn_NO]=Nytt privat vindauge
Name[or]= ି ି
Name[pa_IN]= ਿ
Name[pl]=Nowe okno prywatne
Name[pt_BR]=Nova janela privativa
Name[pt_PT]=Nova janela privada
Name[rm]=Nova fanestra privata
Name[ro]=Fereastră privată nouă
Name[ru]=Новое приватное окно
Name[sat]= ि ि (W )
Name[si]= (W)
Name[sk]=Nové okno v režime Súkromné prehliadanie
Name[sl]=Novo zasebno okno
Name[son]=Sutura zanfun taaga
Name[sq]=Dritare e Re Private
Name[sr]=Нови приватан прозор
Name[sv_SE]=Nytt privat fönster
Name[ta]=ி ி
Name[te]= ి ి
Name[th]=
Name[tr]=Yeni gizli pencere
Name[tsz]=Juchiiti eraatarakua jimpani
Name[uk]=Приватне вікно
Name[ur]=نیا نجی دریچہ
Name[uz]=Yangi maxfiy oyna
Name[vi]=Ca s riêng tư mi
Name[wo]=Panlanteeru biir bu bees
Name[xh]=Ifestile yangasese entsha
Name[zh_CN]=
Name[zh_TW]=
Exec=firefox-x11 --private-window --name firefox-x11 %u
[Desktop Action profile-manager-window]
Name=Open the Profile Manager
Name[cs]=Správa profilů
Exec=firefox-x11 --name firefox-x11 --ProfileManager

7
firefox-x11.sh.in Normal file
View File

@ -0,0 +1,7 @@
#!/usr/bin/bash
#
# Run Firefox on X11 backend
#
export MOZ_DISABLE_WAYLAND=1
exec /__PREFIX__/bin/firefox "$@"

View File

@ -60,7 +60,7 @@ Open new instance, not a new window in running instance.
\fB\-\-UILocale\fR \fIlocale\fR \fB\-\-UILocale\fR \fIlocale\fR
Start with \fIlocale\fR resources as UI Locale. Start with \fIlocale\fR resources as UI Locale.
.TP .TP
\fB\-\-save\-mode\fR \fB\-\-safe\-mode\fR
Disables extensions and themes for this session. Disables extensions and themes for this session.
.TP .TP
\fB\-\-headless\fR \fB\-\-headless\fR

59
firefox.appdata.xml.in Normal file
View File

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2019 Firefox contributors -->
<component type="desktop">
<id>firefox.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<name>Firefox</name>
<summary>Web Browser</summary>
<summary xml:lang="ca">Navegador web</summary>
<summary xml:lang="cs">Webový prohlížeč</summary>
<summary xml:lang="es">Navegador web</summary>
<summary xml:lang="fa">مرورگر اینترنتی</summary>
<summary xml:lang="fi">WWW-selain</summary>
<summary xml:lang="fr">Navigateur Web</summary>
<summary xml:lang="hu">Webböngésző</summary>
<summary xml:lang="it">Browser Web</summary>
<summary xml:lang="ja">ウェブ・ブラウザ</summary>
<summary xml:lang="ko">웹 브라우저</summary>
<summary xml:lang="nb">Nettleser</summary>
<summary xml:lang="nl">Webbrowser</summary>
<summary xml:lang="nn">Nettlesar</summary>
<summary xml:lang="no">Nettleser</summary>
<summary xml:lang="pl">Przeglądarka WWW</summary>
<summary xml:lang="pt">Navegador Web</summary>
<summary xml:lang="pt_BR">Navegador Web</summary>
<summary xml:lang="sk">Internetový prehliadač</summary>
<summary xml:lang="sv">Webbläsare</summary>
<description>
<p>
Bringing together all kinds of awesomeness to make browsing better for you.
Get to your favorite sites quickly even if you dont remember the URLs.
Type your term into the location bar (aka the Awesome Bar) and the autocomplete
function will include possible matches from your browsing history, bookmarked
sites and open tabs.
</p>
</description>
<url type="homepage">https://www.mozilla.org</url>
<update_contact>stransky@redhat.com</update_contact>
<kudos>
<kudo>ModernToolkit</kudo>
<kudo>SearchProvider</kudo>
</kudos>
<project_group>Mozilla</project_group>
<project_license>GPL-3.0+</project_license>
<developer_name>Mozilla Corporation</developer_name>
<url type="bugtracker">https://bugzilla.mozilla.org/</url>
<url type="help">https://support.mozilla.org/</url>
<translation type="gettext">firefox</translation>
<provides>
<id>firefox.desktop</id>
</provides>
<screenshots>
<screenshot type="default">https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/firefox/a.png</screenshot>
<screenshot>https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/firefox/b.png</screenshot>
<screenshot>https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/firefox/c.png</screenshot>
</screenshots>
<releases>
<release version="__VERSION__" date="__DATE__"/>
</releases>
</component>

View File

@ -50,7 +50,7 @@ MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xm
StartupNotify=true StartupNotify=true
Categories=Network;WebBrowser; Categories=Network;WebBrowser;
Keywords=web;browser;internet; Keywords=web;browser;internet;
Actions=new-window;new-private-window; Actions=new-window;new-private-window;profile-manager-window;
[Desktop Action new-window] [Desktop Action new-window]
Name=Open a New Window Name=Open a New Window
@ -63,8 +63,8 @@ Name[ast]=Ventana nueva
Name[az]=Yeni Pəncərə Name[az]=Yeni Pəncərə
Name[be]=Новае акно Name[be]=Новае акно
Name[bg]=Нов прозорец Name[bg]=Нов прозорец
Name[bn-BD]= (N) Name[bn_BD]= (N)
Name[bn-IN]= Name[bn_IN]=
Name[br]=Prenestr nevez Name[br]=Prenestr nevez
Name[brx]= '(N) Name[brx]= '(N)
Name[bs]=Novi prozor Name[bs]=Novi prozor
@ -76,37 +76,37 @@ Name[da]=Nyt vindue
Name[de]=Neues Fenster Name[de]=Neues Fenster
Name[dsb]=Nowe wokno Name[dsb]=Nowe wokno
Name[el]=Νέο παράθυρο Name[el]=Νέο παράθυρο
Name[en-GB]=New Window Name[en_GB]=New Window
Name[en-US]=New Window Name[en_US]=New Window
Name[en-ZA]=New Window Name[en_ZA]=New Window
Name[eo]=Nova fenestro Name[eo]=Nova fenestro
Name[es-AR]=Nueva ventana Name[es_AR]=Nueva ventana
Name[es-CL]=Nueva ventana Name[es_CL]=Nueva ventana
Name[es-ES]=Nueva ventana Name[es_ES]=Nueva ventana
Name[es-MX]=Nueva ventana Name[es_MX]=Nueva ventana
Name[et]=Uus aken Name[et]=Uus aken
Name[eu]=Leiho berria Name[eu]=Leiho berria
Name[fa]=پنجره جدید Name[fa]=پنجره جدید
Name[ff]=Henorde Hesere Name[ff]=Henorde Hesere
Name[fi]=Uusi ikkuna Name[fi]=Uusi ikkuna
Name[fr]=Nouvelle fenêtre Name[fr]=Nouvelle fenêtre
Name[fy-NL]=Nij finster Name[fy_NL]=Nij finster
Name[ga-IE]=Fuinneog Nua Name[ga_IE]=Fuinneog Nua
Name[gd]=Uinneag ùr Name[gd]=Uinneag ùr
Name[gl]=Nova xanela Name[gl]=Nova xanela
Name[gn]=Ovetã pyahu Name[gn]=Ovetã pyahu
Name[gu-IN]= િ Name[gu_IN]= િ
Name[he]=חלון חדש Name[he]=חלון חדש
Name[hi-IN]= ि Name[hi_IN]= ि
Name[hr]=Novi prozor Name[hr]=Novi prozor
Name[hsb]=Nowe wokno Name[hsb]=Nowe wokno
Name[hu]=Új ablak Name[hu]=Új ablak
Name[hy-AM]=Նոր Պատուհան Name[hy_AM]=Նոր Պատուհան
Name[id]=Jendela Baru Name[id]=Jendela Baru
Name[is]=Nýr gluggi Name[is]=Nýr gluggi
Name[it]=Nuova finestra Name[it]=Nuova finestra
Name[ja]= Name[ja]=
Name[ja-JP-mac]= Name[ja_JP-mac]=
Name[ka]= Name[ka]=
Name[kk]=Жаңа терезе Name[kk]=Жаңа терезе
Name[km]= Name[km]=
@ -125,15 +125,15 @@ Name[ml]=പുതിയ ജാലകം
Name[mr]= Name[mr]=
Name[ms]=Tetingkap Baru Name[ms]=Tetingkap Baru
Name[my]= Name[my]=
Name[nb-NO]=Nytt vindu Name[nb_NO]=Nytt vindu
Name[ne-NP]= Name[ne_NP]=
Name[nl]=Nieuw venster Name[nl]=Nieuw venster
Name[nn-NO]=Nytt vindauge Name[nn_NO]=Nytt vindauge
Name[or]= ି Name[or]= ି
Name[pa-IN]= ਿ Name[pa_IN]= ਿ
Name[pl]=Nowe okno Name[pl]=Nowe okno
Name[pt-BR]=Nova janela Name[pt_BR]=Nova janela
Name[pt-PT]=Nova janela Name[pt_PT]=Nova janela
Name[rm]=Nova fanestra Name[rm]=Nova fanestra
Name[ro]=Fereastră nouă Name[ro]=Fereastră nouă
Name[ru]=Новое окно Name[ru]=Новое окно
@ -144,7 +144,7 @@ Name[sl]=Novo okno
Name[son]=Zanfun taaga Name[son]=Zanfun taaga
Name[sq]=Dritare e Re Name[sq]=Dritare e Re
Name[sr]=Нови прозор Name[sr]=Нови прозор
Name[sv-SE]=Nytt fönster Name[sv_SE]=Nytt fönster
Name[ta]=ி Name[ta]=ி
Name[te]= ి Name[te]= ి
Name[th]= Name[th]=
@ -156,11 +156,9 @@ Name[uz]=Yangi oyna
Name[vi]=Ca s mi Name[vi]=Ca s mi
Name[wo]=Palanteer bu bees Name[wo]=Palanteer bu bees
Name[xh]=Ifestile entsha Name[xh]=Ifestile entsha
Name[zh-CN]= Name[zh_CN]=
Name[zh-TW]= Name[zh_TW]=
Exec=firefox --new-window %u
Exec=firefox %u
[Desktop Action new-private-window] [Desktop Action new-private-window]
Name=Open a New Private Window Name=Open a New Private Window
@ -173,8 +171,8 @@ Name[ast]=Ventana privada nueva
Name[az]=Yeni Məxfi Pəncərə Name[az]=Yeni Məxfi Pəncərə
Name[be]=Новае акно адасаблення Name[be]=Новае акно адасаблення
Name[bg]=Нов прозорец за поверително сърфиране Name[bg]=Нов прозорец за поверително сърфиране
Name[bn-BD]= ি Name[bn_BD]= ি
Name[bn-IN]= ি Name[bn_IN]= ি
Name[br]=Prenestr merdeiñ prevez nevez Name[br]=Prenestr merdeiñ prevez nevez
Name[brx]= ' Name[brx]= '
Name[bs]=Novi privatni prozor Name[bs]=Novi privatni prozor
@ -186,37 +184,37 @@ Name[da]=Nyt privat vindue
Name[de]=Neues privates Fenster Name[de]=Neues privates Fenster
Name[dsb]=Nowe priwatne wokno Name[dsb]=Nowe priwatne wokno
Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
Name[en-GB]=New Private Window Name[en_GB]=New Private Window
Name[en-US]=New Private Window Name[en_US]=New Private Window
Name[en-ZA]=New Private Window Name[en_ZA]=New Private Window
Name[eo]=Nova privata fenestro Name[eo]=Nova privata fenestro
Name[es-AR]=Nueva ventana privada Name[es_AR]=Nueva ventana privada
Name[es-CL]=Nueva ventana privada Name[es_CL]=Nueva ventana privada
Name[es-ES]=Nueva ventana privada Name[es_ES]=Nueva ventana privada
Name[es-MX]=Nueva ventana privada Name[es_MX]=Nueva ventana privada
Name[et]=Uus privaatne aken Name[et]=Uus privaatne aken
Name[eu]=Leiho pribatu berria Name[eu]=Leiho pribatu berria
Name[fa]=پنجره ناشناس جدید Name[fa]=پنجره ناشناس جدید
Name[ff]=Henorde Suturo Hesere Name[ff]=Henorde Suturo Hesere
Name[fi]=Uusi yksityinen ikkuna Name[fi]=Uusi yksityinen ikkuna
Name[fr]=Nouvelle fenêtre de navigation privée Name[fr]=Nouvelle fenêtre de navigation privée
Name[fy-NL]=Nij priveefinster Name[fy_NL]=Nij priveefinster
Name[ga-IE]=Fuinneog Nua Phríobháideach Name[ga_IE]=Fuinneog Nua Phríobháideach
Name[gd]=Uinneag phrìobhaideach ùr Name[gd]=Uinneag phrìobhaideach ùr
Name[gl]=Nova xanela privada Name[gl]=Nova xanela privada
Name[gn]=Ovetã ñemi pyahu Name[gn]=Ovetã ñemi pyahu
Name[gu-IN]= િ Name[gu_IN]= િ
Name[he]=חלון פרטי חדש Name[he]=חלון פרטי חדש
Name[hi-IN]= ि ि Name[hi_IN]= ि ि
Name[hr]=Novi privatni prozor Name[hr]=Novi privatni prozor
Name[hsb]=Nowe priwatne wokno Name[hsb]=Nowe priwatne wokno
Name[hu]=Új privát ablak Name[hu]=Új privát ablak
Name[hy-AM]=Սկսել Գաղտնի դիտարկում Name[hy_AM]=Սկսել Գաղտնի դիտարկում
Name[id]=Jendela Mode Pribadi Baru Name[id]=Jendela Mode Pribadi Baru
Name[is]=Nýr huliðsgluggi Name[is]=Nýr huliðsgluggi
Name[it]=Nuova finestra anonima Name[it]=Nuova finestra anonima
Name[ja]= Name[ja]=
Name[ja-JP-mac]= Name[ja_JP-mac]=
Name[ka]= Name[ka]=
Name[kk]=Жаңа жекелік терезе Name[kk]=Жаңа жекелік терезе
Name[km]= Name[km]=
@ -235,15 +233,15 @@ Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
Name[mr]= ि Name[mr]= ि
Name[ms]=Tetingkap Persendirian Baharu Name[ms]=Tetingkap Persendirian Baharu
Name[my]=New Private Window Name[my]=New Private Window
Name[nb-NO]=Nytt privat vindu Name[nb_NO]=Nytt privat vindu
Name[ne-NP]= ि Name[ne_NP]= ि
Name[nl]=Nieuw privévenster Name[nl]=Nieuw privévenster
Name[nn-NO]=Nytt privat vindauge Name[nn_NO]=Nytt privat vindauge
Name[or]= ି ି Name[or]= ି ି
Name[pa-IN]= ਿ Name[pa_IN]= ਿ
Name[pl]=Nowe okno prywatne Name[pl]=Nowe okno prywatne
Name[pt-BR]=Nova janela privativa Name[pt_BR]=Nova janela privativa
Name[pt-PT]=Nova janela privada Name[pt_PT]=Nova janela privada
Name[rm]=Nova fanestra privata Name[rm]=Nova fanestra privata
Name[ro]=Fereastră privată nouă Name[ro]=Fereastră privată nouă
Name[ru]=Новое приватное окно Name[ru]=Новое приватное окно
@ -254,7 +252,7 @@ Name[sl]=Novo zasebno okno
Name[son]=Sutura zanfun taaga Name[son]=Sutura zanfun taaga
Name[sq]=Dritare e Re Private Name[sq]=Dritare e Re Private
Name[sr]=Нови приватан прозор Name[sr]=Нови приватан прозор
Name[sv-SE]=Nytt privat fönster Name[sv_SE]=Nytt privat fönster
Name[ta]=ி ி Name[ta]=ி ி
Name[te]= ి ి Name[te]= ి ి
Name[th]= Name[th]=
@ -266,7 +264,12 @@ Name[uz]=Yangi maxfiy oyna
Name[vi]=Ca s riêng tư mi Name[vi]=Ca s riêng tư mi
Name[wo]=Panlanteeru biir bu bees Name[wo]=Panlanteeru biir bu bees
Name[xh]=Ifestile yangasese entsha Name[xh]=Ifestile yangasese entsha
Name[zh-CN]= Name[zh_CN]=
Name[zh-TW]= Name[zh_TW]=
Exec=firefox --private-window %u Exec=firefox --private-window %u
[Desktop Action profile-manager-window]
Name=Open the Profile Manager
Name[cs]=Správa profilů
Name[de]=Profilverwaltung öffnen
Exec=firefox --ProfileManager

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/bash
# #
# The contents of this file are subject to the Netscape Public # The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file # License Version 1.1 (the "License"); you may not use this file
@ -39,12 +39,12 @@ cmdname=`basename $0`
MOZ_ARCH=$(uname -m) MOZ_ARCH=$(uname -m)
case $MOZ_ARCH in case $MOZ_ARCH in
x86_64 | s390x | sparc64) x86_64 | s390x | sparc64)
MOZ_LIB_DIR="%PREFIX%/lib64" MOZ_LIB_DIR="/__PREFIX__/lib64"
SECONDARY_LIB_DIR="%PREFIX%/lib" SECONDARY_LIB_DIR="/__PREFIX__/lib"
;; ;;
* ) * )
MOZ_LIB_DIR="%PREFIX%/lib" MOZ_LIB_DIR="/__PREFIX__/lib"
SECONDARY_LIB_DIR="%PREFIX%/lib64" SECONDARY_LIB_DIR="/__PREFIX__/lib64"
;; ;;
esac esac
@ -65,12 +65,36 @@ MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks"
MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE" MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE"
MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh" MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh"
GETENFORCE_FILE="/usr/sbin/getenforce"
##
## Enable Wayland backend?
##
%DISABLE_WAYLAND_PLACEHOLDER%
if ! [ $MOZ_DISABLE_WAYLAND ] && [ "$WAYLAND_DISPLAY" ]; then
if [ "$XDG_CURRENT_DESKTOP" == "GNOME" ]; then
export MOZ_ENABLE_WAYLAND=1
fi
## Enable Wayland on KDE/Sway
##
if [ "$XDG_SESSION_TYPE" == "wayland" ]; then
export MOZ_ENABLE_WAYLAND=1
fi
fi
##
## Use D-Bus remote exclusively when there's Wayland display.
##
if [ "$WAYLAND_DISPLAY" ]; then
export MOZ_DBUS_REMOTE=1
fi
## ##
## Set MOZ_GRE_CONF ## Set MOZ_GRE_CONF
## ##
MOZ_GRE_CONF=/etc/gre.d/gre.conf MOZ_GRE_CONF=/etc/gre.d/gre.conf
if [ "$MOZ_LIB_DIR" == "/usr/lib64" ]; then if [ "$MOZ_LIB_DIR" == "/__PREFIX__/lib64" ]; then
MOZ_GRE_CONF=/etc/gre.d/gre64.conf MOZ_GRE_CONF=/etc/gre.d/gre64.conf
fi fi
export MOZ_GRE_CONF export MOZ_GRE_CONF
@ -98,7 +122,7 @@ export MOZ_PLUGIN_PATH
## ##
## Set MOZ_APP_LAUNCHER for gnome-session ## Set MOZ_APP_LAUNCHER for gnome-session
## ##
export MOZ_APP_LAUNCHER="%PREFIX%/bin/firefox" export MOZ_APP_LAUNCHER="/__PREFIX__/bin/firefox"
## ##
## Set FONTCONFIG_PATH for Xft/fontconfig ## Set FONTCONFIG_PATH for Xft/fontconfig
@ -106,6 +130,11 @@ export MOZ_APP_LAUNCHER="%PREFIX%/bin/firefox"
FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft" FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft"
export FONTCONFIG_PATH export FONTCONFIG_PATH
##
## We want Firefox to use Openh264 provided by Fedora
##
export MOZ_GMP_PATH=$MOZ_LIB_DIR/mozilla/plugins/gmp-gmpopenh264/system-installed
## ##
## In order to better support certain scripts (such as Indic and some CJK ## In order to better support certain scripts (such as Indic and some CJK
## scripts), Fedora builds its Firefox, with permission from the Mozilla ## scripts), Fedora builds its Firefox, with permission from the Mozilla
@ -153,15 +182,24 @@ export MOZ_USE_XINPUT2=1
## ##
FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install" FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install"
# MOZ_DISABLE_LANGPACKS disables language packs completely
MOZILLA_DOWN=0 MOZILLA_DOWN=0
if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then
if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then
# Is firefox running? # Is firefox running?
pidof firefox > /dev/null 2>&1 /__PREFIX__/bin/pidof $MOZ_PROGRAM > /dev/null 2>&1
MOZILLA_DOWN=$? MOZILLA_DOWN=$?
fi fi
fi fi
# When Firefox is not running, restore SELinux labels for profile files
# (rhbz#1731371)
if [ $MOZILLA_DOWN -ne 0 ]; then
if [ -x $GETENFORCE_FILE ] && [ `getenforce` != "Disabled" ]; then
(restorecon -vr ~/.mozilla/firefox/* &)
fi
fi
# Modify language pack configuration only when firefox is not running # Modify language pack configuration only when firefox is not running
# and language packs are not disabled # and language packs are not disabled
if [ $MOZILLA_DOWN -ne 0 ]; then if [ $MOZILLA_DOWN -ne 0 ]; then
@ -181,8 +219,8 @@ if [ $MOZILLA_DOWN -ne 0 ]; then
CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG} CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG}
# Try with a local variant first, then without a local variant # Try with a local variant first, then without a local variant
SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"` SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g" | sed "s|\..*||g"`
MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"` MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g" | sed "s|\..*||g"`
function create_langpack_link() { function create_langpack_link() {
local language=$* local language=$*
@ -238,28 +276,12 @@ do
esac esac
done done
# Linux version specific environment variables # Flatpak specific environment variables
%RHEL_ENV_VARS% %FLATPAK_ENV_VARS%
# Don't throw "old profile" dialog box. # Don't throw "old profile" dialog box.
export MOZ_ALLOW_DOWNGRADE=1 export MOZ_ALLOW_DOWNGRADE=1
# Make sure at-spi-bus is running
if ! dbus-send --session \
--dest=org.freedesktop.DBus \
--type=method_call \
--print-reply \
/org/freedesktop/DBus \
org.freedesktop.DBus.ListNames \
| grep org.a11y.Bus > /dev/null; then
if [ -f "$MOZ_LIB_DIR/firefox/bundled/libexec/at-spi-bus-launcher" ]; then
echo "Starting a11y dbus service..."
$MOZ_LIB_DIR/firefox/bundled/libexec/at-spi-bus-launcher &
else
echo "Running without a11y support!"
fi
fi
# Run the browser # Run the browser
debugging=0 debugging=0
if [ $debugging = 1 ] if [ $debugging = 1 ]
@ -267,5 +289,4 @@ then
echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
fi fi
exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"

File diff suppressed because it is too large Load Diff

1
google-loc-api-key Normal file
View File

@ -0,0 +1 @@
AIzaSyB2h2OuRcUgy5N-5hsZqiPW6sH3n_rptiQ

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
diff -up firefox-91.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-91.0/extensions/pref/autoconfig/src/nsReadConfig.cpp diff -up firefox-87.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-87.0/extensions/pref/autoconfig/src/nsReadConfig.cpp
--- firefox-91.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2021-07-27 23:29:57.000000000 +0200 --- firefox-87.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2021-03-18 14:48:36.000000000 +0100
+++ firefox-91.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2021-07-29 16:20:44.164513998 +0200 +++ firefox-87.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2021-03-22 19:20:02.429310184 +0100
@@ -249,8 +249,20 @@ nsresult nsReadConfig::openAndEvaluateJS @@ -249,8 +249,20 @@ nsresult nsReadConfig::openAndEvaluateJS
if (NS_FAILED(rv)) return rv; if (NS_FAILED(rv)) return rv;
@ -23,22 +23,23 @@ diff -up firefox-91.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 fi
} else { } else {
nsAutoCString location("resource://gre/defaults/autoconfig/"); nsAutoCString location("resource://gre/defaults/autoconfig/");
location += aFileName; location += aFileName;
diff -up firefox-91.0/modules/libpref/Preferences.cpp.1170092 firefox-91.0/modules/libpref/Preferences.cpp diff -up firefox-87.0/modules/libpref/Preferences.cpp.1170092 firefox-87.0/modules/libpref/Preferences.cpp
--- firefox-91.0/modules/libpref/Preferences.cpp.1170092 2021-07-27 23:30:34.000000000 +0200 --- firefox-87.0/modules/libpref/Preferences.cpp.1170092 2021-03-18 14:48:54.000000000 +0100
+++ firefox-91.0/modules/libpref/Preferences.cpp 2021-07-29 16:20:44.166514005 +0200 +++ firefox-87.0/modules/libpref/Preferences.cpp 2021-03-22 19:20:02.429310184 +0100
@@ -4553,6 +4553,8 @@ nsresult Preferences::InitInitialObjects @@ -4499,6 +4499,9 @@ nsresult Preferences::InitInitialObjects
// //
// Thus, in the omni.jar case, we always load app-specific default // Thus, in the omni.jar case, we always load app-specific default
// preferences from omni.jar, whether or not `$app == $gre`. // preferences from omni.jar, whether or not `$app == $gre`.
+ //
+ // At very end load configuration from system config location: + // At very end load configuration from system config location:
+ // - /etc/firefox/pref/*.js + // - /etc/firefox/pref/*.js
nsresult rv = NS_ERROR_FAILURE; nsresult rv = NS_ERROR_FAILURE;
UniquePtr<nsZipFind> find; UniquePtr<nsZipFind> find;
diff -up firefox-91.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-91.0/toolkit/xre/nsXREDirProvider.cpp diff -up firefox-87.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-87.0/toolkit/xre/nsXREDirProvider.cpp
--- firefox-91.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2021-07-27 23:30:56.000000000 +0200 --- firefox-87.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2021-03-18 14:52:00.000000000 +0100
+++ firefox-91.0/toolkit/xre/nsXREDirProvider.cpp 2021-07-29 16:26:20.071628932 +0200 +++ firefox-87.0/toolkit/xre/nsXREDirProvider.cpp 2021-03-22 19:37:56.574480347 +0100
@@ -71,6 +71,7 @@ @@ -65,6 +65,7 @@
#endif #endif
#ifdef XP_UNIX #ifdef XP_UNIX
# include <ctype.h> # include <ctype.h>
@ -46,7 +47,7 @@ diff -up firefox-91.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-91.0/tool
#endif #endif
#ifdef XP_IOS #ifdef XP_IOS
# include "UIKitDirProvider.h" # include "UIKitDirProvider.h"
@@ -550,6 +551,21 @@ nsXREDirProvider::GetFile(const char* aP @@ -552,6 +553,21 @@ nsXREDirProvider::GetFile(const char* aP
} }
} }
} }
@ -68,26 +69,26 @@ diff -up firefox-91.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-91.0/tool
if (NS_FAILED(rv) || !file) return NS_ERROR_FAILURE; if (NS_FAILED(rv) || !file) return NS_ERROR_FAILURE;
if (ensureFilePermissions) { if (ensureFilePermissions) {
@@ -827,6 +843,16 @@ nsresult nsXREDirProvider::GetFilesInter @@ -874,6 +890,16 @@ nsresult nsXREDirProvider::GetFilesInter
LoadDirIntoArray(mXULAppDir, kAppendBackgroundTasksPrefDir, directories);
} }
#endif #endif
+ // Add /etc/<application>/pref/ directory if it exists + // Add /etc/<application>/pref/ directory if it exists
+ nsCOMPtr<nsIFile> systemPrefDir; + nsCOMPtr<nsIFile> systemPrefDir;
+ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR, + rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR,
+ getter_AddRefs(systemPrefDir)); + getter_AddRefs(systemPrefDir));
+ if (NS_SUCCEEDED(rv)) { + if (NS_SUCCEEDED(rv)) {
+ rv = systemPrefDir->AppendNative(nsLiteralCString("pref")); + rv = systemPrefDir->AppendNative(nsLiteralCString("pref"));
+ if (NS_SUCCEEDED(rv)) { + if (NS_SUCCEEDED(rv))
+ directories.AppendObject(systemPrefDir); + directories.AppendObject(systemPrefDir);
+ } + }
+ } +
rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile)); rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile));
} else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) { } else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) {
diff -up firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h // NS_APP_CHROME_DIR_LIST is only used to get default (native) icons
--- firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2021-07-27 23:31:38.000000000 +0200 diff -up firefox-87.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-87.0/xpcom/io/nsAppDirectoryServiceDefs.h
+++ firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h 2021-07-29 16:20:44.168514012 +0200 --- firefox-87.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2021-03-18 14:51:58.000000000 +0100
+++ firefox-87.0/xpcom/io/nsAppDirectoryServiceDefs.h 2021-03-22 19:20:02.430310213 +0100
@@ -59,6 +59,7 @@ @@ -59,6 +59,7 @@
#define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL" #define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL"
#define NS_APP_PREFS_OVERRIDE_DIR \ #define NS_APP_PREFS_OVERRIDE_DIR \

15
mozilla-1516803.patch Normal file
View File

@ -0,0 +1,15 @@
diff -up firefox-84.0/security/sandbox/linux/moz.build.1516803 firefox-84.0/security/sandbox/linux/moz.build
--- firefox-84.0/security/sandbox/linux/moz.build.1516803 2020-12-10 16:17:55.425139545 +0100
+++ firefox-84.0/security/sandbox/linux/moz.build 2020-12-10 16:29:21.945860841 +0100
@@ -114,9 +114,8 @@ if CONFIG["CC_TYPE"] in ("clang", "gcc")
# 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
# forcing there to be only one partition.
-for f in CONFIG["OS_CXXFLAGS"]:
- if f.startswith("-flto") and CONFIG["CC_TYPE"] != "clang":
- LDFLAGS += ["--param lto-partitions=1"]
+if CONFIG['CC_TYPE'] != 'clang':
+ LDFLAGS += ['--param', 'lto-partitions=1']
DEFINES["NS_NO_XPCOM"] = True
DisableStlWrapping()

14
mozilla-1669639.patch Normal file
View File

@ -0,0 +1,14 @@
--- firefox-81.0.1/build/mach_initialize.py.old 2020-10-06 14:16:06.212974910 +0200
+++ firefox-81.0.1/build/mach_initialize.py 2020-10-06 14:19:03.313179557 +0200
@@ -507,7 +507,10 @@ class ImportHook(object):
# doesn't happen or because it doesn't matter).
if not os.path.exists(module.__file__[:-1]):
if os.path.exists(module.__file__):
- os.remove(module.__file__)
+ try:
+ os.remove(module.__file__)
+ except:
+ pass
del sys.modules[module.__name__]
module = self(name, globals, locals, fromlist, level)

68
mozilla-1670333.patch Normal file
View File

@ -0,0 +1,68 @@
diff -up firefox-99.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-99.0/dom/media/mp4/MP4Demuxer.cpp
--- firefox-99.0/dom/media/mp4/MP4Demuxer.cpp.1670333 2022-03-31 01:24:44.000000000 +0200
+++ firefox-99.0/dom/media/mp4/MP4Demuxer.cpp 2022-04-04 09:58:35.606351546 +0200
@@ -31,6 +31,8 @@ mozilla::LogModule* GetDemuxerLog() { re
DDMOZ_LOG(gMediaDemuxerLog, mozilla::LogLevel::Debug, "::%s: " arg, \
__func__, ##__VA_ARGS__)
+extern bool gUseKeyframeFromContainer;
+
namespace mozilla {
DDLoggedTypeDeclNameAndBase(MP4TrackDemuxer, MediaTrackDemuxer);
@@ -394,6 +396,12 @@ already_AddRefed<MediaRawData> MP4TrackD
[[fallthrough]];
case H264::FrameType::OTHER: {
bool keyframe = type == H264::FrameType::I_FRAME;
+ if (gUseKeyframeFromContainer) {
+ if (sample->mKeyframe && sample->mKeyframe != keyframe) {
+ sample->mKeyframe = keyframe;
+ }
+ break;
+ }
if (sample->mKeyframe != keyframe) {
NS_WARNING(nsPrintfCString("Frame incorrectly marked as %skeyframe "
"@ pts:%" PRId64 " dur:%" PRId64
diff -up firefox-99.0/dom/media/platforms/PDMFactory.cpp.1670333 firefox-99.0/dom/media/platforms/PDMFactory.cpp
--- firefox-99.0/dom/media/platforms/PDMFactory.cpp.1670333 2022-03-31 01:24:44.000000000 +0200
+++ firefox-99.0/dom/media/platforms/PDMFactory.cpp 2022-04-04 10:09:57.383419125 +0200
@@ -58,6 +58,8 @@
#include <functional>
+bool gUseKeyframeFromContainer = false;
+
namespace mozilla {
#define PDM_INIT_LOG(msg, ...) \
@@ -495,7 +497,7 @@ void PDMFactory::CreateRddPDMs() {
#ifdef MOZ_FFMPEG
if (StaticPrefs::media_ffmpeg_enabled() &&
StaticPrefs::media_rdd_ffmpeg_enabled() &&
- !CreateAndStartupPDM<FFmpegRuntimeLinker>()) {
+ !(mFFmpegUsed = CreateAndStartupPDM<FFmpegRuntimeLinker>())) {
mFailureFlags += GetFailureFlagBasedOnFFmpegStatus(
FFmpegRuntimeLinker::LinkStatusCode());
}
@@ -602,8 +604,9 @@ void PDMFactory::CreateDefaultPDMs() {
CreateAndStartupPDM<AgnosticDecoderModule>();
- if (StaticPrefs::media_gmp_decoder_enabled() &&
+ if (StaticPrefs::media_gmp_decoder_enabled() && !mFFmpegUsed &&
!CreateAndStartupPDM<GMPDecoderModule>()) {
+ gUseKeyframeFromContainer = true;
mFailureFlags += DecoderDoctorDiagnostics::Flags::GMPPDMFailedToStartup;
}
}
diff -up firefox-99.0/dom/media/platforms/PDMFactory.h.1670333 firefox-99.0/dom/media/platforms/PDMFactory.h
--- firefox-99.0/dom/media/platforms/PDMFactory.h.1670333 2022-03-31 01:24:44.000000000 +0200
+++ firefox-99.0/dom/media/platforms/PDMFactory.h 2022-04-04 09:58:35.606351546 +0200
@@ -121,6 +121,7 @@ class PDMFactory final {
RefPtr<PlatformDecoderModule> mNullPDM;
DecoderDoctorDiagnostics::FlagsSet mFailureFlags;
+ bool mFFmpegUsed = false;
friend class RemoteVideoDecoderParent;
static void EnsureInit();

17
mozilla-1775202.patch Normal file
View File

@ -0,0 +1,17 @@
diff --git a/third_party/libwebrtc/moz.build b/third_party/libwebrtc/moz.build
index 8579f8bb3622..d9ca79d4fcb8 100644
--- a/third_party/libwebrtc/moz.build
+++ b/third_party/libwebrtc/moz.build
@@ -520,7 +520,10 @@ if CONFIG["CPU_ARCH"] == "ppc64" and CONFIG["OS_TARGET"] == "Linux":
"/third_party/libwebrtc/api/audio_codecs/isac/audio_decoder_isac_float_gn",
"/third_party/libwebrtc/api/audio_codecs/isac/audio_encoder_isac_float_gn",
"/third_party/libwebrtc/modules/audio_coding/isac_c_gn",
- "/third_party/libwebrtc/modules/audio_coding/isac_gn"
+ "/third_party/libwebrtc/modules/audio_coding/isac_gn",
+ "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_generic_gn",
+ "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn",
+ "/third_party/libwebrtc/modules/desktop_capture/primitives_gn"
]
if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux":

View File

@ -1,7 +1,20 @@
diff -up firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h.mozilla.bmo1005535 firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h # HG changeset patch
--- firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h.mozilla.bmo1005535 2020-06-25 16:16:34.459083304 +0200 # User Steve Singer <steve@ssinger.info>
+++ firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h 2020-06-25 16:17:00.968174743 +0200 # Date 1558451540 -7200
@@ -64,7 +64,7 @@ static inline GrColor GrColorPackRGBA(un # Tue May 21 17:12:20 2019 +0200
# Node ID 433beec63e6b5f409683af20a0c1ab137cc7bfad
# Parent c0fdccc716e80a6d289c94f5d507ae141c62a3bf
Bug 1005535 - Get skia GPU building on big endian.
diff --git a/gfx/skia/skia/src/gpu/GrColor.h b/gfx/skia/skia/src/gpu/GrColor.h
--- a/gfx/skia/skia/src/gpu/GrColor.h
+++ b/gfx/skia/skia/src/gpu/GrColor.h
@@ -59,17 +59,17 @@ static inline GrColor GrColorPackRGBA(un
#define GrColorUnpackG(color) (((color) >> GrColor_SHIFT_G) & 0xFF)
#define GrColorUnpackB(color) (((color) >> GrColor_SHIFT_B) & 0xFF)
#define GrColorUnpackA(color) (((color) >> GrColor_SHIFT_A) & 0xFF)
/**
* Since premultiplied means that alpha >= color, we construct a color with * Since premultiplied means that alpha >= color, we construct a color with
* each component==255 and alpha == 0 to be "illegal" * each component==255 and alpha == 0 to be "illegal"
*/ */
@ -10,3 +23,8 @@ diff -up firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h.mozilla.bmo1005535 firefox
/** Normalizes and coverts an uint8_t to a float. [0, 255] -> [0.0, 1.0] */ /** Normalizes and coverts an uint8_t to a float. [0, 255] -> [0.0, 1.0] */
static inline float GrNormalizeByteToFloat(uint8_t value) { static inline float GrNormalizeByteToFloat(uint8_t value) {
static const float ONE_OVER_255 = 1.f / 255.f;
return value * ONE_OVER_255;
}
/** Used to pick vertex attribute types. */

View File

@ -1,7 +1,16 @@
diff -up firefox-78.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 firefox-78.0/gfx/2d/DrawTargetSkia.cpp # HG changeset patch
--- firefox-78.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 2020-06-17 04:18:58.000000000 +0200 # Parent b5471d23321d16a0bacc25b7afd27d2e16adba1a
+++ firefox-78.0/gfx/2d/DrawTargetSkia.cpp 2020-06-25 16:52:29.824532769 +0200 Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834
@@ -135,8 +135,7 @@ static IntRect CalculateSurfaceBounds(co
diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
--- a/gfx/2d/DrawTargetSkia.cpp
+++ b/gfx/2d/DrawTargetSkia.cpp
@@ -130,18 +130,17 @@ static IntRect CalculateSurfaceBounds(co
Rect sampledBounds = inverse.TransformBounds(*aBounds);
if (!sampledBounds.ToIntRect(&bounds)) {
return surfaceBounds;
}
return surfaceBounds.Intersect(bounds); return surfaceBounds.Intersect(bounds);
} }
@ -11,10 +20,20 @@ diff -up firefox-78.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 firefox
static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize, static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
const int32_t aStride, SurfaceFormat aFormat) { const int32_t aStride, SurfaceFormat aFormat) {
diff -up firefox-78.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 firefox-78.0/gfx/2d/Types.h if (aFormat != SurfaceFormat::B8G8R8X8 || aSize.IsEmpty()) {
--- firefox-78.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 2020-06-25 16:52:29.826532776 +0200 return true;
+++ firefox-78.0/gfx/2d/Types.h 2020-06-25 16:55:02.942063616 +0200 }
@@ -90,15 +90,8 @@ enum class SurfaceFormat : int8_t { // 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
@@ -84,25 +84,18 @@ enum class SurfaceFormat : int8_t {
Depth,
// This represents the unknown format.
UNKNOWN,
// The following values are endian-independent synonyms. The _UINT32 suffix // The following values are endian-independent synonyms. The _UINT32 suffix
// indicates that the name reflects the layout when viewed as a uint32_t // indicates that the name reflects the layout when viewed as a uint32_t
// value. // value.
@ -30,10 +49,20 @@ diff -up firefox-78.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 firefox-78.0/gfx/2
// The following values are OS and endian-independent synonyms. // The following values are OS and endian-independent synonyms.
// //
diff -up firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc.mozilla-bmo1504834-part1 firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc // TODO(aosmond): When everything blocking bug 1581828 has been resolved, we
--- firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc.mozilla-bmo1504834-part1 2020-06-17 04:18:58.000000000 +0200 // can make this use R8B8G8A8 and R8B8G8X8 for non-Windows platforms.
+++ firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc 2020-06-25 16:54:02.993855444 +0200 OS_RGBA = A8R8G8B8_UINT32,
@@ -30,6 +30,8 @@ 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 <avx512fintrin.h>
#include <avx512dqintrin.h> #include <avx512dqintrin.h>
#endif #endif
@ -42,17 +71,27 @@ diff -up firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc.mozilla-bmo150483
#endif #endif
// sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others. // sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others.
@@ -280,20 +282,28 @@ enum { // 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) { static uint16_t read_big_u16(const uint8_t* ptr) {
uint16_t be; uint16_t be;
memcpy(&be, ptr, sizeof(be)); memcpy(&be, ptr, sizeof(be));
-#if defined(_MSC_VER) -#if defined(_MSC_VER)
- return _byteswap_ushort(be);
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+ return be; + return be;
#else +#else
+ #if defined(_MSC_VER) + #if defined(_MSC_VER)
+ return _byteswap_ushort(be); return _byteswap_ushort(be);
-#else
+ #else + #else
return __builtin_bswap16(be); return __builtin_bswap16(be);
+ #endif + #endif
@ -63,15 +102,20 @@ diff -up firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc.mozilla-bmo150483
uint32_t be; uint32_t be;
memcpy(&be, ptr, sizeof(be)); memcpy(&be, ptr, sizeof(be));
-#if defined(_MSC_VER) -#if defined(_MSC_VER)
- return _byteswap_ulong(be);
+#if __BYTE_ORDER == __ORDER_BIG_ENDIAN__ +#if __BYTE_ORDER == __ORDER_BIG_ENDIAN__
+ return be; + return be;
#else +#else
+ #if defined(_MSC_VER) + #if defined(_MSC_VER)
+ return _byteswap_ulong(be); return _byteswap_ulong(be);
-#else
+ #else + #else
return __builtin_bswap32(be); return __builtin_bswap32(be);
+ #endif + #endif
#endif #endif
} }
static int32_t read_big_i32(const uint8_t* ptr) {
return (int32_t)read_big_u32(ptr);
}
static float read_big_fixed(const uint8_t* ptr) {

View File

@ -1,12 +1,17 @@
# HG changeset patch # HG changeset patch
# Parent aecb4600e5da17443b224c79eee178c1d8e155e3 # Parent d1d66f7e4d0e7fd45e91e4fcee07555e72046d48
For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text and icons of the sandwich-menu to the 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). 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 diff --git a/gfx/skia/skia/include/private/SkNx.h b/gfx/skia/skia/include/private/SkNx.h
--- a/gfx/skia/skia/include/private/SkNx.h Tue Aug 20 09:46:55 2019 +0200 --- a/gfx/skia/skia/include/private/SkNx.h
+++ b/gfx/skia/skia/include/private/SkNx.h Mon Sep 09 10:04:06 2019 +0200 +++ b/gfx/skia/skia/include/private/SkNx.h
@@ -238,7 +238,18 @@ @@ -233,17 +233,28 @@ struct SkNx<1,T> {
AI SkNx operator<<(int bits) const { return fVal << bits; }
AI SkNx operator>>(int bits) const { return fVal >> bits; }
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 fVal * y.fVal; } 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 fVal / y.fVal; }
@ -25,10 +30,20 @@ diff -r aecb4600e5da gfx/skia/skia/include/private/SkNx.h
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)); }
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 AI SkNx operator==(const SkNx& y) const { return FromBits(fVal == y.fVal ? ~0 : 0); }
--- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h Tue Aug 20 09:46:55 2019 +0200 AI SkNx operator!=(const SkNx& y) const { return FromBits(fVal != y.fVal ? ~0 : 0); }
+++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h Mon Sep 09 10:04:06 2019 +0200 AI SkNx operator<=(const SkNx& y) const { return FromBits(fVal <= y.fVal ? ~0 : 0); }
@@ -203,7 +203,13 @@ AI SkNx operator>=(const SkNx& y) const { return FromBits(fVal >= y.fVal ? ~0 : 0); }
AI SkNx operator< (const SkNx& y) const { return FromBits(fVal < y.fVal ? ~0 : 0); }
diff --git a/gfx/skia/skia/src/opts/SkBlitMask_opts.h b/gfx/skia/skia/src/opts/SkBlitMask_opts.h
--- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h
+++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h
@@ -198,17 +198,23 @@ namespace SK_OPTS_NS {
const SkAlpha* mask, size_t maskRB,
int w, int h) {
auto fn = [](const Sk4px& d, const Sk4px& aa) {
// = (s + d(1-sa))aa + d(1-aa)
// = s*aa + d(1-sa*aa)
// ~~~> // ~~~>
// a = 1*aa + d(1-1*aa) = aa + d(1-aa) // a = 1*aa + d(1-1*aa) = aa + d(1-aa)
// c = 0*aa + d(1-1*aa) = d(1-aa) // c = 0*aa + d(1-1*aa) = d(1-aa)
@ -42,3 +57,8 @@ diff -r aecb4600e5da gfx/skia/skia/src/opts/SkBlitMask_opts.h
+ d.approxMulDiv255(aa.inv()); + d.approxMulDiv255(aa.inv());
}; };
while (h --> 0) { while (h --> 0) {
Sk4px::MapDstAlpha(w, dst, mask, fn);
dst += dstRB / sizeof(*dst);
mask += maskRB / sizeof(*mask);
}
}

View File

@ -1,16 +1,24 @@
# HG changeset patch
# Parent 3de59fe1b8708c01e134ce698c4232b8a854f617
Problem: webGL sites are displayed in the wrong color (usually blue-ish) 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 Solution: Problem is with skia once again. Output of webgl seems endian-correct, but skia only
knows how to deal with little endian. knows how to deal with little endian.
So we swizzle the output of webgl after reading it from readpixels() 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 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 diff --git a/gfx/gl/GLContext.h b/gfx/gl/GLContext.h
+++ b/gfx/gl/GLContext.h Wed Nov 13 17:13:04 2019 +0100 --- a/gfx/gl/GLContext.h
@@ -1551,6 +1551,13 @@ +++ b/gfx/gl/GLContext.h
@@ -1548,16 +1548,23 @@ class GLContext : public GenericAtomicRe
AFTER_GL_CALL;
}
void raw_fReadPixels(GLint x, GLint y, GLsizei width, GLsizei height,
GLenum format, GLenum type, GLvoid* pixels) {
BEFORE_GL_CALL; BEFORE_GL_CALL;
mSymbols.fReadPixels(x, y, width, height, format, type, pixels); mSymbols.fReadPixels(x, y, width, height, format, type, pixels);
OnSyncCall(); OnSyncCall();
+#if MOZ_BIG_ENDIAN +#if MOZ_BIG_ENDIAN()
+ uint8_t* itr = (uint8_t*)pixels; + uint8_t* itr = (uint8_t*)pixels;
+ for (GLsizei i = 0; i < width * height; i++) { + for (GLsizei i = 0; i < width * height; i++) {
+ NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1); + NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1);
@ -21,3 +29,7 @@ diff -r 6b017d3e9733 gfx/gl/GLContext.h
mHeavyGLCallsSinceLastFlush = true; mHeavyGLCallsSinceLastFlush = true;
} }
void fReadPixels(GLint x, GLint y, GLsizei width, GLsizei height,
GLenum format, GLenum type, GLvoid* pixels);
public:

View File

@ -27,4 +27,3 @@ diff -r 506857dace0a -r 34676feac1a5 gfx/2d/FilterProcessing.h
class FilterProcessing { class FilterProcessing {
public: public:

14
mozilla-build-arm.patch Normal file
View File

@ -0,0 +1,14 @@
diff -up firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h.arm firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h
--- firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h.arm 2017-03-03 13:53:52.480754536 +0100
+++ firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h 2017-03-03 13:56:01.476018102 +0100
@@ -203,6 +203,10 @@
#define SK_ARM_HAS_CRC32
#endif
+#if defined(__aarch64__)
+ #undef SK_ARM_HAS_NEON
+#endif
+
//////////////////////////////////////////////////////////////////////
#if !defined(SKIA_IMPLEMENTATION)

View File

@ -49,4 +49,3 @@ diff -r acf59ea86dd1 gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp
} }
} }

View File

@ -1,3 +1,2 @@
#!/bin/sh #!/bin/sh
#exec /usr/bin/node "$@" 2>&1 | cat - exec node "$@" 2>&1 | cat -
exec $MOZ_NODEJS "$@" 2>&1 | cat -

View File

@ -0,0 +1,34 @@
# HG changeset patch
# User M. Sirringhaus <msirringhaus@suse.de>
# Date 1645518286 -3600
# Tue Feb 22 09:24:46 2022 +0100
# Node ID 494640792b4677f6462e95b90a54a4e22aeb738b
# Parent 81832d035e101471dcf52dd91de287268add7a91
imported patch one_swizzle_to_rule_them_all.patch
Index: firefox-102.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp
===================================================================
--- firefox-102.0.orig/gfx/webrender_bindings/RenderCompositorSWGL.cpp
+++ firefox-102.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp
@@ -7,6 +7,7 @@
#include "RenderCompositorSWGL.h"
#include "mozilla/gfx/Logging.h"
+#include "mozilla/gfx/Swizzle.h"
#include "mozilla/widget/CompositorWidget.h"
#ifdef MOZ_WIDGET_GTK
@@ -235,6 +237,13 @@ void RenderCompositorSWGL::CommitMappedB
}
mDT->Flush();
+#if MOZ_BIG_ENDIAN()
+ // One swizzle to rule them all.
+ gfx::SwizzleData(mMappedData, mMappedStride, gfx::SurfaceFormat::B8G8R8A8,
+ mMappedData, mMappedStride, gfx::SurfaceFormat::A8R8G8B8,
+ mDT->GetSize());
+#endif
+
// Done with the DT. Hand it back to the widget and clear out any trace of it.
mWidget->EndRemoteDrawingInRegion(mDT, mDirtyRegion);
mDirtyRegion.SetEmpty();

115
pgo.patch Normal file
View File

@ -0,0 +1,115 @@
diff -up firefox-99.0/build/moz.configure/lto-pgo.configure.pgo firefox-99.0/build/moz.configure/lto-pgo.configure
--- firefox-99.0/build/moz.configure/lto-pgo.configure.pgo 2022-03-31 01:24:38.000000000 +0200
+++ firefox-99.0/build/moz.configure/lto-pgo.configure 2022-04-04 10:15:45.387694143 +0200
@@ -247,8 +247,8 @@ def lto(
cflags.append("-flto")
ldflags.append("-flto")
else:
- cflags.append("-flto=thin")
- ldflags.append("-flto=thin")
+ cflags.append("-flto")
+ ldflags.append("-flto")
if target.os == "Android" and value == "cross":
# Work around https://github.com/rust-lang/rust/issues/90088
@@ -264,7 +264,7 @@ def lto(
if value == "full":
cflags.append("-flto")
else:
- cflags.append("-flto=thin")
+ cflags.append("-flto")
# With clang-cl, -flto can only be used with -c or -fuse-ld=lld.
# AC_TRY_LINKs during configure don't have -c, so pass -fuse-ld=lld.
cflags.append("-fuse-ld=lld")
diff -up firefox-99.0/build/pgo/profileserver.py.pgo firefox-99.0/build/pgo/profileserver.py
--- firefox-99.0/build/pgo/profileserver.py.pgo 2022-03-31 01:24:38.000000000 +0200
+++ firefox-99.0/build/pgo/profileserver.py 2022-04-04 10:15:45.387694143 +0200
@@ -11,7 +11,7 @@ import glob
import subprocess
import mozcrash
-from mozbuild.base import MozbuildObject, BinaryNotFoundException
+from mozbuild.base import MozbuildObject, BinaryNotFoundException, BuildEnvironmentNotFoundException
from mozfile import TemporaryDirectory
from mozhttpd import MozHttpd
from mozprofile import FirefoxProfile, Preferences
@@ -87,9 +87,22 @@ if __name__ == "__main__":
locations = ServerLocations()
locations.add_host(host="127.0.0.1", port=PORT, options="primary,privileged")
- old_profraw_files = glob.glob("*.profraw")
- for f in old_profraw_files:
- os.remove(f)
+ using_gcc = False
+ try:
+ if build.config_environment.substs.get('CC_TYPE') == 'gcc':
+ using_gcc = True
+ except BuildEnvironmentNotFoundException:
+ pass
+
+ if using_gcc:
+ for dirpath, _, filenames in os.walk('.'):
+ for f in filenames:
+ if f.endswith('.gcda'):
+ os.remove(os.path.join(dirpath, f))
+ else:
+ old_profraw_files = glob.glob('*.profraw')
+ for f in old_profraw_files:
+ os.remove(f)
with TemporaryDirectory() as profilePath:
# TODO: refactor this into mozprofile
@@ -212,6 +225,10 @@ if __name__ == "__main__":
print("Firefox exited successfully, but produced a crashreport")
sys.exit(1)
+ print('Copying profile data....')
+ os.system('pwd');
+ os.system('tar cf profdata.tar.gz `find . -name "*.gcda"`; cd ..; tar xf instrumented/profdata.tar.gz;');
+
llvm_profdata = env.get("LLVM_PROFDATA")
if llvm_profdata:
profraw_files = glob.glob("*.profraw")
diff -up firefox-99.0/build/unix/mozconfig.unix.pgo firefox-99.0/build/unix/mozconfig.unix
--- firefox-99.0/build/unix/mozconfig.unix.pgo 2022-03-31 01:24:38.000000000 +0200
+++ firefox-99.0/build/unix/mozconfig.unix 2022-04-04 10:15:45.387694143 +0200
@@ -4,6 +4,15 @@ if [ -n "$FORCE_GCC" ]; then
CC="$MOZ_FETCHES_DIR/gcc/bin/gcc"
CXX="$MOZ_FETCHES_DIR/gcc/bin/g++"
+ if [ -n "$MOZ_PGO" ]; then
+ if [ -z "$USE_ARTIFACT" ]; then
+ ac_add_options --enable-lto
+ fi
+ export AR="$topsrcdir/gcc/bin/gcc-ar"
+ export NM="$topsrcdir/gcc/bin/gcc-nm"
+ export RANLIB="$topsrcdir/gcc/bin/gcc-ranlib"
+ fi
+
# We want to make sure we use binutils and other binaries in the tooltool
# package.
mk_add_options "export PATH=$MOZ_FETCHES_DIR/gcc/bin:$PATH"
diff -up firefox-99.0/extensions/spellcheck/src/moz.build.pgo firefox-99.0/extensions/spellcheck/src/moz.build
--- firefox-99.0/extensions/spellcheck/src/moz.build.pgo 2022-03-31 01:24:50.000000000 +0200
+++ firefox-99.0/extensions/spellcheck/src/moz.build 2022-04-04 10:15:45.387694143 +0200
@@ -28,3 +28,5 @@ EXPORTS.mozilla += [
"mozInlineSpellChecker.h",
"mozSpellChecker.h",
]
+
+CXXFLAGS += ['-fno-devirtualize']
diff -up firefox-99.0/toolkit/components/terminator/nsTerminator.cpp.pgo firefox-99.0/toolkit/components/terminator/nsTerminator.cpp
--- firefox-99.0/toolkit/components/terminator/nsTerminator.cpp.pgo 2022-04-04 10:15:45.387694143 +0200
+++ firefox-99.0/toolkit/components/terminator/nsTerminator.cpp 2022-04-04 10:19:07.022239556 +0200
@@ -466,6 +466,11 @@ void nsTerminator::StartWatchdog() {
}
#endif
+ // Disable watchdog for PGO train builds - writting profile information at
+ // exit may take time and it is better to make build hang rather than
+ // silently produce poorly performing binary.
+ crashAfterMS = INT32_MAX;
+
UniquePtr<Options> options(new Options());
// crashAfterTicks is guaranteed to be > 0 as
// crashAfterMS >= ADDITIONAL_WAIT_BEFORE_CRASH_MS >> HEARTBEAT_INTERVAL_MS

13
print-error-reftest Executable file
View File

@ -0,0 +1,13 @@
#!/usr/bin/bash
# Print reftest failures and compose them to html
TEST_DIR="$1"
TEST_FLAVOUR="$2"
OUTPUT_FILE="failures-reftest$TEST_FLAVOUR.html"
grep --text -e "REFTEST TEST-UNEXPECTED-PASS" -e "REFTEST TEST-UNEXPECTED-FAIL" -e "IMAGE 1 (TEST):" -e "IMAGE 2 (REFERENCE):" $TEST_DIR/reftest$TEST_FLAVOUR 2>&1 > $OUTPUT_FILE
sed -i '/REFTEST IMAGE 1/a ">' $OUTPUT_FILE
sed -i '/REFTEST IMAGE 2/a "><BR><BR>' $OUTPUT_FILE
sed -i '/REFTEST TEST/a <BR>' $OUTPUT_FILE
sed -i -e 's/^REFTEST IMAGE 1 (TEST): /<img border=2 src="/' $OUTPUT_FILE
sed -i -e 's/^REFTEST IMAGE 2 (REFERENCE): /<img border=2 src="/' $OUTPUT_FILE

9
print-errors Executable file
View File

@ -0,0 +1,9 @@
#!/usr/bin/bash
# Print failed tests
TEST_DIR=$1
TEST_FLAVOUR=$2
grep "TEST-UNEXPECTED-FAIL" $TEST_DIR/mochitest$TEST_FLAVOUR 2>&1 > failures-mochitest$TEST_FLAVOUR.txt
grep --text -e " FAIL " -e " TIMEOUT " $TEST_DIR/xpcshell$TEST_FLAVOUR 2>&1 > failures-xpcshell$TEST_FLAVOUR.txt
grep --text -e "REFTEST TEST-UNEXPECTED-PASS" -e "REFTEST TEST-UNEXPECTED-FAIL" $TEST_DIR/reftest$TEST_FLAVOUR 2>&1 > failures-reftest$TEST_FLAVOUR.txt

9
print_failures Executable file
View File

@ -0,0 +1,9 @@
#!/usr/bin/bash
# Analyze and print test failures
export TEST_DIR="test_results"
#./print-errors $TEST_DIR ""
./print-errors $TEST_DIR "-wr"
#./print-error-reftest $TEST_DIR ""
./print-error-reftest $TEST_DIR "-wr"

10
print_results Executable file
View File

@ -0,0 +1,10 @@
#!/usr/bin/bash
# Analyze and print general test results
export TEST_DIR="test_results"
echo "Test results"
#echo "Basic compositor"
#./psummary $TEST_DIR ""
echo "WebRender"
./psummary $TEST_DIR "-wr"

23
psummary Executable file
View File

@ -0,0 +1,23 @@
#!/usr/bin/bash
# Analyze and print specialized (basic/webrender) test results
TEST_DIR=$1
TEST_FLAVOUR=$2
MPASS=`grep "TEST_END: Test OK" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l`
MERR=`grep "TEST_END: Test ERROR" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l`
MUNEX=`grep "TEST-UNEXPECTED-FAIL" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l`
echo "Mochitest PASSED: $MPASS FAILED: $MERR UNEXPECTED-FAILURES: $MUNEX"
XPCPASS=`grep --text "Expected results:" $TEST_DIR/xpcshell$TEST_FLAVOUR | cut -d ' ' -f 3`
XPCFAIL=`grep --text "Unexpected results:" $TEST_DIR/xpcshell$TEST_FLAVOUR | cut -d ' ' -f 3`
echo "XPCShell: PASSED: $XPCPASS FAILED: $XPCFAIL"
CRPASS=`grep "REFTEST INFO | Successful:" $TEST_DIR/crashtest$TEST_FLAVOUR | cut -d ' ' -f 5`
CRFAIL=`grep "^REFTEST INFO | Unexpected:" $TEST_DIR/crashtest$TEST_FLAVOUR | cut -d ' ' -f 5`
echo "Crashtest: PASSED: $CRPASS FAILED: $CRFAIL"
RFPASS=`grep --text "REFTEST INFO | Successful:" $TEST_DIR/reftest$TEST_FLAVOUR | cut -d ' ' -f 5`
RFUN=`grep --text "^REFTEST INFO | Unexpected:" $TEST_DIR/reftest$TEST_FLAVOUR | cut -d ' ' -f 5`
RFKNOWN=`grep --text "REFTEST INFO | Known problems:" $TEST_DIR/reftest$TEST_FLAVOUR | cut -d ' ' -f 6`
echo "Reftest: PASSED: $RFPASS FAILED: $RFUN Known issues: $RFKNOWN"

View File

@ -0,0 +1,23 @@
diff -up firefox-55.0/js/src/old-configure.in.rhbz-1219542-s390 firefox-55.0/js/src/old-configure.in
--- firefox-55.0/js/src/old-configure.in.rhbz-1219542-s390 2017-07-31 18:20:48.000000000 +0200
+++ firefox-55.0/js/src/old-configure.in 2017-08-02 14:31:32.190243669 +0200
@@ -541,7 +541,7 @@ case "$host" in
*-linux*|*-kfreebsd*-gnu|*-gnu*)
HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
+ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O1}"
;;
*)
@@ -617,8 +617,8 @@ case "$target" in
*-*linux*)
if test "$GNU_CC" -o "$GNU_CXX"; then
- MOZ_PGO_OPTIMIZE_FLAGS="-O3"
- MOZ_OPTIMIZE_FLAGS="-O3"
+ MOZ_PGO_OPTIMIZE_FLAGS="-O1"
+ MOZ_OPTIMIZE_FLAGS="-O1"
if test -z "$CLANG_CC"; then
MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS"
fi

12
rhbz-1354671.patch Normal file
View File

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

80
run-tests-wayland Executable file
View File

@ -0,0 +1,80 @@
#!/usr/bin/bash
# usage: run-tests-wayland [test flavour]
set -x
RUN_XPCSHELL_TEST=1
RUN_REFTEST=1
RUN_MOCHITEST=1
RUN_CRASHTEST=1
while (( "$#" )); do
SELECTED_TEST=$1
if [ "$SELECTED_TEST" = "xpcshell" ] ; then
RUN_XPCSHELL_TEST=1
elif [ "$SELECTED_TEST" = "reftest" ] ; then
RUN_REFTEST=1
elif [ "$SELECTED_TEST" = "mochitest" ] ; then
RUN_MOCHITEST=1
elif [ "$SELECTED_TEST" = "crashtest" ] ; then
RUN_CRASHTEST=1
fi
shift
done
export MACH_USE_SYSTEM_PYTHON=1
export MOZ_NODE_PATH=/usr/bin/node
MOCHITEST_PARAMS="--timeout 1 --chunk-by-dir 4"
TEST_DIR="test_results"
mkdir $TEST_DIR
env | grep "DISPLAY"
# Fix for system nss
ln -s /usr/bin/certutil objdir/dist/bin/certutil
ln -s /usr/bin/pk12util objdir/dist/bin/pk12util
NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
export MOZ_ENABLE_WAYLAND=1
if [ $RUN_XPCSHELL_TEST -ne 0 ] ; then
# ./mach xpcshell-test 2>&1 | cat - | tee $TEST_DIR/xpcshell
./mach xpcshell-test --enable-webrender 2>&1 | cat - | tee $TEST_DIR/xpcshell-wr
sleep 60
fi
# Basic render testing
export TEST_PARAMS="--setpref reftest.ignoreWindowSize=true --setpref widget.wayland.test-workarounds.enabled=true"
#export TEST_FLAVOUR=""
#if [ $RUN_REFTEST -ne 0 ] ; then
# ./mach reftest --marionette localhost:$(($(($RANDOM))+2000)) $TEST_PARAMS 2>&1 | tee $TEST_DIR/reftest$TEST_FLAVOUR
#fi
#if [ $RUN_CRASHTEST -ne 0 ] ; then
# ./mach crashtest --marionette localhost:$(($(($RANDOM))+2000)) $TEST_PARAMS 2>&1 | tee $TEST_DIR/crashtest$TEST_FLAVOUR
#fi
#if [ $RUN_MOCHITEST -ne 0 ] ; then
# ./mach mochitest --marionette localhost:$(($(($RANDOM))+2000)) $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR
#fi
# WebRender testing
export TEST_PARAMS="--enable-webrender $TEST_PARAMS"
export TEST_FLAVOUR="-wr"
# Use dom/base/test or dom/base/test/chrome for short version
export MOCHITEST_DIR='dom'
if [ $RUN_REFTEST -ne 0 ] ; then
./mach reftest $TEST_PARAMS 2>&1 | tee $TEST_DIR/reftest$TEST_FLAVOUR
sleep 60
fi
if [ $RUN_CRASHTEST -ne 0 ] ; then
./mach crashtest $TEST_PARAMS 2>&1 | tee $TEST_DIR/crashtest$TEST_FLAVOUR
sleep 60
fi
if [ $RUN_MOCHITEST -ne 0 ] ; then
./mach mochitest $MOCHITEST_DIR $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR
sleep 60
fi
rm -f objdir/dist/bin/certutil
rm -f objdir/dist/bin/pk12util

39
run-tests-x11 Executable file
View File

@ -0,0 +1,39 @@
#!/usr/bin/bash
set -x
export MACH_USE_SYSTEM_PYTHON=1
export MOZ_NODE_PATH=/usr/bin/node
export X_PARAMS="-screen 0 1600x1200x24"
export MOCHITEST_PARAMS="--timeout 1 --chunk-by-dir 4"
export TEST_DIR="test_results"
# Fix for system nss
ln -s /usr/bin/certutil objdir/dist/bin/certutil
ln -s /usr/bin/pk12util objdir/dist/bin/pk12util
NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
# Basic render testing
export TEST_PARAMS=""
export TEST_FLAVOUR=""
#xvfb-run -s "$X_PARAMS" -n 91 ./mach xpcshell-test --sequential $TEST_PARAMS 2>&1 | cat - | tee $TEST_DIR/xpcshell
#xvfb-run -s "$X_PARAMS" -n 92 ./mach reftest --marionette localhost:$(($(($RANDOM))+2000)) $TEST_PARAMS 2>&1 | tee $TEST_DIR/reftest$TEST_FLAVOUR
#xvfb-run -s "$X_PARAMS" -n 93 ./mach crashtest --marionette localhost:$(($(($RANDOM))+2000)) $TEST_PARAMS 2>&1 | tee $TEST_DIR/crashtest$TEST_FLAVOUR
#xvfb-run -s "$X_PARAMS" -n 94 ./mach mochitest --marionette localhost:$(($(($RANDOM))+2000)) $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR
# WebRender testing
export TEST_PARAMS="--enable-webrender $TEST_PARAMS"
export TEST_FLAVOUR="-wr"
#xvfb-run -s "$X_PARAMS" -n 95 ./mach xpcshell-test --sequential $TEST_PARAMS 2>&1 | cat - | tee $TEST_DIR/xpcshell-wr
#sleep 60
#xvfb-run -s "$X_PARAMS" -n 96 ./mach reftest $TEST_PARAMS 2>&1 | tee $TEST_DIR/reftest$TEST_FLAVOUR
#sleep 60
#xvfb-run -s "$X_PARAMS" -n 97 ./mach crashtest $TEST_PARAMS 2>&1 | tee $TEST_DIR/crashtest$TEST_FLAVOUR
#sleep 60
#export DISPLAY=:0
#./mach mochitest dom/base/test/ $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR
export DISPLAY=:98
xvfb-run -s "$X_PARAMS" -n 98 ./mach mochitest dom/base/test/ $MOCHITEST_PARAMS $TEST_PARAMS 2>&1 | tee $TEST_DIR/mochitest$TEST_FLAVOUR
rm -f objdir/dist/bin/certutil
rm -f objdir/dist/bin/pk12util

50
run-wayland-compositor Executable file
View File

@ -0,0 +1,50 @@
#!/usr/bin/bash
# Run wayland compositor and set WAYLAND_DISPLAY env variable
set -x
echo export DESKTOP_SESSION=gnome > $HOME/.xsessionrc
echo export XDG_CURRENT_DESKTOP=GNOME > $HOME/.xsessionrc
echo export XDG_SESSION_TYPE=wayland >> $HOME/.xsessionrc
# Turn off the screen saver and screen locking
gsettings set org.gnome.desktop.screensaver idle-activation-enabled false
gsettings set org.gnome.desktop.screensaver lock-enabled false
gsettings set org.gnome.desktop.screensaver lock-delay 3600
# Disable the screen saver
# This starts the gnome-keyring-daemon with an unlocked login keyring. libsecret uses this to
# store secrets. Firefox uses libsecret to store a key that protects sensitive information like
# credit card numbers.
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
# if not found, launch a new one
eval `dbus-launch --sh-syntax`
fi
eval `echo '' | /usr/bin/gnome-keyring-daemon -r -d --unlock --components=secrets`
if [ -z "$XDG_RUNTIME_DIR" ]; then
export XDG_RUNTIME_DIR=$HOME
fi
. xvfb-run -s "-screen 0 1600x1200x24" -n 80 mutter --display=:80 --wayland --nested &
export DISPLAY=:80
if [ -z "$WAYLAND_DISPLAY" ] ; then
export WAYLAND_DISPLAY=wayland-0
else
export WAYLAND_DISPLAY=wayland-1
fi
sleep 10
retry_count=0
max_retries=5
until [ $retry_count -gt $max_retries ]; do
if [ -S "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" ]; then
retry_count=$(($max_retries + 1))
else
retry_count=$(($retry_count + 1))
echo "Waiting for Mutter, retry: $retry_count"
sleep 2
fi
done
env | grep "DISPLAY"

12
sources
View File

@ -1,5 +1,7 @@
SHA512 (cbindgen-vendor.tar.xz) = 9cb4a590584c53386a14deb1f1faf7b67ff8f312eff4a8dccab710738183c504387d69fa660021b495ed61603f4df1db689f35234c61e2e886962e40aab20c95 SHA512 (cbindgen-vendor.tar.xz) = ba8967007c7545fcf62a392e745b19188d883428adb5e9abd102cc6ad5d50891e9d38a7a20ee7a91e99d6340e9490a6b8bcc4c7175f3bb3a698841b816966385
SHA512 (firefox-91.2.0esr.processed-source.tar.xz) = 5e6b1b550eacd12a06efc2b52ff71b313dfea411202d1c61e6b8abb0a441e444eeb7e8dcbf5e6b30638cfb92e9aec59092f0bb36c0a7a224fa631e81aa6991d4 SHA512 (firefox-102.8.0esr.b2.processed-source.tar.xz) = 650f865130d75121ed9bec7679dc73cdb18d18bcf6919585c4188ba2448679c3ffb8ce9adc971f158f9e81d62187ba62dc8dea35d5ec83bc2d9ce28e53987bb4
SHA512 (firefox-langpacks-91.2.0esr-20210929.tar.xz) = e865fee858f3ff4fd0b18e5c09e227062a21307b8cd99a5f5c1e375fd5009c93f29b797c09b9653138075aa6c3c4fae07998476335955cae8cb80fd738441758 SHA512 (firefox-langpacks-102.8.0esr-20230214.tar.xz) = 44867a3b67e7b4303c3198250b3dcaaa917d30af15d0cdbf8b69da47d26eaa592a85b28d1fbd43949a36f99a6df240516311c2614bd8dff10ce2f6c27a186902
SHA512 (nspr-4.32.0-1.el8_1.src.rpm) = c181a19bc24aeb62aed1745a6a43ae8aa2ee0d903aa16cb6ec7d385286e60f6426049cc9669459434377a215f329502ffe6fc48a1edc52d5b3283ebc259e9dca SHA512 (firefox-symbolic.svg) = ba6ea4354ed9848db06cb9c0d63052d8f851aaaa8c040359569712e549f43d4fb1f402cb178367abdc8af7f98b571be5705fde791d73a62025c1a69b269a35da
SHA512 (nss-3.67.0-6.el8_1.src.rpm) = 6697fef5517c8c1d8c881243d60e35494fb6c11537467a38ce281d49fade5780764e81f5c044fe11dd020bc6c5655b77e65105c677a7812718cbc42061b3b5da SHA512 (mochitest-python.tar.gz) = cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
SHA512 (nspr-4.34.0-3.el8_1.src.rpm) = fe4715694c297cd8cefa577946358a90103bde73e78a3fdf13d202a3791736e8a48fbece09ee3d15f6d81ae051e26d96400b03bb6bf8630715746c5e1a643543
SHA512 (nss-3.79.0-6.el8_1.src.rpm) = 5887d0f306045adf7c6f3389840fff2e2732e5a15ec5e22cf885e578105b54d9e753c237e7730c2d3f0990728b10123c653e8d18a8b8dd0174bfb5b443eab7ef

29
svg-rendering.patch Normal file
View File

@ -0,0 +1,29 @@
# HG changeset patch
# User M. Sirringhaus <msirringhaus@suse.de>
# Date 1645518286 -3600
# Tue Feb 22 09:24:46 2022 +0100
# Node ID 81832d035e101471dcf52dd91de287268add7a91
# Parent 66f7ce16eb4965108687280e5443edd610631efb
imported patch svg-rendering.patch
diff --git a/image/imgFrame.cpp b/image/imgFrame.cpp
--- a/image/imgFrame.cpp
+++ b/image/imgFrame.cpp
@@ -372,6 +372,17 @@ nsresult imgFrame::InitWithDrawable(gfxD
return NS_ERROR_OUT_OF_MEMORY;
}
+#if MOZ_BIG_ENDIAN()
+ if (aBackend == gfx::BackendType::SKIA && canUseDataSurface) {
+ // SKIA is lying about what format it returns on big endian
+ for (int ii=0; ii < mRawSurface->GetSize().Height()*mRawSurface->Stride() / 4; ++ii) {
+ uint32_t *vals = (uint32_t*)(mRawSurface->GetData());
+ uint32_t val = ((vals[ii] << 8) & 0xFF00FF00 ) | ((vals[ii] >> 8) & 0xFF00FF );
+ vals[ii] = (val << 16) | (val >> 16);
+ }
+ }
+#endif
+
if (!canUseDataSurface) {
// We used an offscreen surface, which is an "optimized" surface from
// imgFrame's perspective.

25
webrtc-nss-fix.patch Normal file
View File

@ -0,0 +1,25 @@
diff -up firefox-102.3.0/third_party/libsrtp/src/crypto/cipher/aes_gcm_nss.c.webrtc-fix firefox-102.3.0/third_party/libsrtp/src/crypto/cipher/aes_gcm_nss.c
--- firefox-102.3.0/third_party/libsrtp/src/crypto/cipher/aes_gcm_nss.c.webrtc-fix 2022-10-04 18:58:30.563683229 +0200
+++ firefox-102.3.0/third_party/libsrtp/src/crypto/cipher/aes_gcm_nss.c 2022-10-04 18:58:44.583652963 +0200
@@ -293,7 +293,7 @@ static srtp_err_status_t srtp_aes_gcm_ns
int rv;
SECItem param = { siBuffer, (unsigned char *)&c->params,
- sizeof(CK_GCM_PARAMS) };
+ sizeof(CK_NSS_GCM_PARAMS) };
if (encrypt) {
rv = PK11_Encrypt(c->key, CKM_AES_GCM, &param, buf, enc_len,
*enc_len + 16, buf, *enc_len);
diff -up firefox-102.3.0/third_party/libsrtp/src/crypto/include/aes_gcm.h.webrtc-fix firefox-102.3.0/third_party/libsrtp/src/crypto/include/aes_gcm.h
--- firefox-102.3.0/third_party/libsrtp/src/crypto/include/aes_gcm.h.webrtc-fix 2022-10-04 18:59:16.635583764 +0200
+++ firefox-102.3.0/third_party/libsrtp/src/crypto/include/aes_gcm.h 2022-10-04 18:59:31.848550924 +0200
@@ -101,7 +101,7 @@ typedef struct {
uint8_t iv[12];
uint8_t aad[MAX_AD_SIZE];
int aad_size;
- CK_GCM_PARAMS params;
+ CK_NSS_GCM_PARAMS params;
uint8_t tag[16];
} srtp_aes_gcm_ctx_t;
diff -up firefox-102.3.0/third_party/prio/prio/encrypt.c.webrtc-fix firefox-102.3.0/third_party/prio/prio/encrypt.c