mirror of
https://github.com/void-linux/void-packages.git
synced 2025-07-29 08:52:56 +02:00
firefox: update to 79.0
This commit is contained in:
parent
5e89e99d46
commit
680b27fd8e
9 changed files with 267 additions and 107 deletions
15
srcpkgs/firefox/patches/avoid-redefinition.patch
Normal file
15
srcpkgs/firefox/patches/avoid-redefinition.patch
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
Author: Rasmus Thomsen <oss@cogitri.dev>
|
||||||
|
Reason: FF is mixing userspace net headers (net/if.h) and kernelspace ones
|
||||||
|
(linux/if.h), leading to redefinitions. We need to include net/if.h before
|
||||||
|
linux/if.h because linux/if.h has redifinition guards whereas net/if.h doesnt
|
||||||
|
Upstream: No
|
||||||
|
--- media/mtransport/third_party/nICEr/src/stun/addrs-netlink.c.orig 2020-07-28 19:24:32.359751046 +0200
|
||||||
|
+++ media/mtransport/third_party/nICEr/src/stun/addrs-netlink.c 2020-07-28 19:24:37.856343751 +0200
|
||||||
|
@@ -31,6 +31,7 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(LINUX)
|
||||||
|
+#include <net/if.h>
|
||||||
|
#include "addrs-netlink.h"
|
||||||
|
#include <csi_platform.h>
|
||||||
|
#include <assert.h>
|
88
srcpkgs/firefox/patches/big-endian-image-decoders.patch
Normal file
88
srcpkgs/firefox/patches/big-endian-image-decoders.patch
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
https://bugzilla.mozilla.org/show_bug.cgi?id=1626236
|
||||||
|
https://bug1626236.bmoattachments.org/attachment.cgi?id=9137096
|
||||||
|
|
||||||
|
# HG changeset patch
|
||||||
|
# User msirringhaus@suse.de
|
||||||
|
# Date 1582805876 -3600
|
||||||
|
# Thu Feb 27 13:17:56 2020 +0100
|
||||||
|
# Node ID cc3d09abea31068e57f1ab918782f9f86fc6a158
|
||||||
|
# Parent 9cd90914846f667f18babc491a74c164ae5d6e9f
|
||||||
|
imported patch decoder_workaround.patch
|
||||||
|
|
||||||
|
diff -r 9cd90914846f image/decoders/nsGIFDecoder2.cpp
|
||||||
|
--- image/decoders/nsGIFDecoder2.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||||
|
+++ image/decoders/nsGIFDecoder2.cpp Fri Mar 27 13:06:18 2020 +0100
|
||||||
|
@@ -422,6 +422,9 @@
|
||||||
|
MOZ_ASSERT(mSwizzleFn);
|
||||||
|
uint8_t* data = reinterpret_cast<uint8_t*>(aColormap);
|
||||||
|
mSwizzleFn(data, data, aColors);
|
||||||
|
+#if MOZ_BIG_ENDIAN()
|
||||||
|
+ SwizzleRow(SurfaceFormat::A8R8G8B8, SurfaceFormat::B8G8R8A8)(data, data, aColors);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
LexerResult nsGIFDecoder2::DoDecode(SourceBufferIterator& aIterator,
|
||||||
|
diff -r 9cd90914846f image/decoders/nsJPEGDecoder.cpp
|
||||||
|
--- image/decoders/nsJPEGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||||
|
+++ image/decoders/nsJPEGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
|
||||||
|
@@ -263,6 +263,9 @@
|
||||||
|
case JCS_YCbCr:
|
||||||
|
// By default, we will output directly to BGRA. If we need to apply
|
||||||
|
// special color transforms, this may change.
|
||||||
|
+#if MOZ_BIG_ENDIAN()
|
||||||
|
+ mInfo.out_color_space = MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB;
|
||||||
|
+#else
|
||||||
|
switch (SurfaceFormat::OS_RGBX) {
|
||||||
|
case SurfaceFormat::B8G8R8X8:
|
||||||
|
mInfo.out_color_space = JCS_EXT_BGRX;
|
||||||
|
@@ -277,6 +280,7 @@
|
||||||
|
mState = JPEG_ERROR;
|
||||||
|
return Transition::TerminateFailure();
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
break;
|
||||||
|
case JCS_CMYK:
|
||||||
|
case JCS_YCCK:
|
||||||
|
diff -r 9cd90914846f image/decoders/nsPNGDecoder.cpp
|
||||||
|
--- image/decoders/nsPNGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||||
|
+++ image/decoders/nsPNGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
|
||||||
|
@@ -361,7 +361,7 @@
|
||||||
|
IResumable* aOnResume) {
|
||||||
|
MOZ_ASSERT(!HasError(), "Shouldn't call DoDecode after error!");
|
||||||
|
|
||||||
|
- return mLexer.Lex(aIterator, aOnResume,
|
||||||
|
+ LexerResult res = mLexer.Lex(aIterator, aOnResume,
|
||||||
|
[=](State aState, const char* aData, size_t aLength) {
|
||||||
|
switch (aState) {
|
||||||
|
case State::PNG_DATA:
|
||||||
|
@@ -371,6 +371,14 @@
|
||||||
|
}
|
||||||
|
MOZ_CRASH("Unknown State");
|
||||||
|
});
|
||||||
|
+
|
||||||
|
+#if MOZ_BIG_ENDIAN()
|
||||||
|
+ if(res.is<TerminalState>() && res.as<TerminalState>() == TerminalState::SUCCESS) {
|
||||||
|
+ NativeEndian::swapToLittleEndianInPlace<uint32_t>((uint32_t*)(mImageData), mImageDataLength / 4);
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
LexerTransition<nsPNGDecoder::State> nsPNGDecoder::ReadPNGData(
|
||||||
|
diff -r 9cd90914846f image/decoders/nsWebPDecoder.cpp
|
||||||
|
--- image/decoders/nsWebPDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||||
|
+++ image/decoders/nsWebPDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
|
||||||
|
@@ -237,7 +237,12 @@
|
||||||
|
// WebP doesn't guarantee that the alpha generated matches the hint in the
|
||||||
|
// header, so we always need to claim the input is BGRA. If the output is
|
||||||
|
// BGRX, swizzling will mask off the alpha channel.
|
||||||
|
+#if MOZ_BIG_ENDIAN()
|
||||||
|
+ mBuffer.colorspace = MODE_ARGB;
|
||||||
|
+ SurfaceFormat inFormat = mFormat;
|
||||||
|
+#else
|
||||||
|
SurfaceFormat inFormat = SurfaceFormat::OS_RGBA;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
SurfacePipeFlags pipeFlags = SurfacePipeFlags();
|
||||||
|
if (mFormat == SurfaceFormat::OS_RGBA &&
|
|
@ -1,15 +0,0 @@
|
||||||
Imported from Adélie. Firefox is prone to this warning on BE and
|
|
||||||
it leads to huge .xsession-errors, and the warning is not very
|
|
||||||
important or meaningful, so just disable it.
|
|
||||||
|
|
||||||
--- gfx/2d/HelpersCairo.h
|
|
||||||
+++ gfx/2d/HelpersCairo.h
|
|
||||||
@@ -147,7 +147,7 @@
|
|
||||||
case SurfaceFormat::R5G6B5_UINT16:
|
|
||||||
return CAIRO_FORMAT_RGB16_565;
|
|
||||||
default:
|
|
||||||
- gfxCriticalError() << "Unknown image format " << (int)format;
|
|
||||||
+ //gfxCriticalError() << "Unknown image format " << (int)format;
|
|
||||||
return CAIRO_FORMAT_ARGB32;
|
|
||||||
}
|
|
||||||
}
|
|
39
srcpkgs/firefox/patches/fix-image-format-warning.patch
Normal file
39
srcpkgs/firefox/patches/fix-image-format-warning.patch
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
# HG changeset patch
|
||||||
|
# User Lee Salzman <lsalzman@mozilla.com>
|
||||||
|
# Date 1462463631 14400
|
||||||
|
# Thu May 05 11:53:51 2016 -0400
|
||||||
|
# Node ID 8da374804a09977c8f89af5e6e0cb37cb074595d
|
||||||
|
# Parent 29662e28a9c93ac67ee0b8ddfb65a9f29bbf73f5
|
||||||
|
handle big-endian formats in Cairo format conversions
|
||||||
|
|
||||||
|
--- gfx/2d/HelpersCairo.h
|
||||||
|
+++ gfx/2d/HelpersCairo.h
|
||||||
|
@@ -147,7 +147,14 @@ static inline cairo_format_t GfxFormatToCairoFormat(Su
|
||||||
|
case SurfaceFormat::R5G6B5_UINT16:
|
||||||
|
return CAIRO_FORMAT_RGB16_565;
|
||||||
|
default:
|
||||||
|
- gfxCriticalError() << "Unknown image format " << (int)format;
|
||||||
|
+ // _UINT32 formats don't match B8G8R8[AX]8 on big-endian platforms,
|
||||||
|
+ // and Moz2d uses B8G8R8[AX]8 as if it was _UINT32.
|
||||||
|
+ // See bug 1269654
|
||||||
|
+ if (format == SurfaceFormat::B8G8R8X8) {
|
||||||
|
+ return CAIRO_FORMAT_RGB24;
|
||||||
|
+ } else if (format != SurfaceFormat::B8G8R8A8) {
|
||||||
|
+ gfxCriticalError() << "Unknown image format " << (int)format;
|
||||||
|
+ }
|
||||||
|
return CAIRO_FORMAT_ARGB32;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -177,7 +184,11 @@ static inline cairo_content_t GfxFormatToCairoContent(
|
||||||
|
case SurfaceFormat::A8:
|
||||||
|
return CAIRO_CONTENT_ALPHA;
|
||||||
|
default:
|
||||||
|
- gfxCriticalError() << "Unknown image content format " << (int)format;
|
||||||
|
+ if (format == SurfaceFormat::B8G8R8X8) {
|
||||||
|
+ return CAIRO_CONTENT_COLOR;
|
||||||
|
+ } else if (format != SurfaceFormat::B8G8R8A8) {
|
||||||
|
+ gfxCriticalError() << "Unknown image content format " << (int)format;
|
||||||
|
+ }
|
||||||
|
return CAIRO_CONTENT_COLOR_ALPHA;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,17 +1,5 @@
|
||||||
--- tools/profiler/core/platform-linux-android.cpp.orig 2019-01-29 12:09:40.980448579 +0100
|
--- tools/profiler/core/platform-linux-android.cpp.orig 2019-01-29 12:09:40.980448579 +0100
|
||||||
+++ tools/profiler/core/platform-linux-android.cpp 2019-01-29 12:11:09.689590967 +0100
|
+++ tools/profiler/core/platform-linux-android.cpp 2019-01-29 12:11:09.689590967 +0100
|
||||||
@@ -253,7 +253,11 @@
|
|
||||||
|
|
||||||
// Request profiling signals.
|
|
||||||
struct sigaction sa;
|
|
||||||
+#if defined(GP_ARCH_arm)
|
|
||||||
+ sa.sa_sigaction = SigprofHandler;
|
|
||||||
+#else
|
|
||||||
sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler);
|
|
||||||
+#endif
|
|
||||||
sigemptyset(&sa.sa_mask);
|
|
||||||
sa.sa_flags = SA_RESTART | SA_SIGINFO;
|
|
||||||
if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
|
|
||||||
@@ -497,8 +501,10 @@
|
@@ -497,8 +501,10 @@
|
||||||
ucontext_t sSyncUContext;
|
ucontext_t sSyncUContext;
|
||||||
|
|
||||||
|
|
26
srcpkgs/firefox/patches/flac-no-ffvpx.patch
Normal file
26
srcpkgs/firefox/patches/flac-no-ffvpx.patch
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
Enable FLAC on platforms without ffvpx like powerpc*
|
||||||
|
|
||||||
|
diff --git dom/media/flac/FlacDecoder.cpp dom/media/flac/FlacDecoder.cpp
|
||||||
|
index 53fc3c9937f7..b23771ab80fa 100644
|
||||||
|
--- dom/media/flac/FlacDecoder.cpp
|
||||||
|
+++ dom/media/flac/FlacDecoder.cpp
|
||||||
|
@@ -7,6 +7,7 @@
|
||||||
|
#include "FlacDecoder.h"
|
||||||
|
#include "MediaContainerType.h"
|
||||||
|
#include "mozilla/StaticPrefs_media.h"
|
||||||
|
+#include "PDMFactory.h"
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
|
||||||
|
@@ -14,6 +15,11 @@ namespace mozilla {
|
||||||
|
bool FlacDecoder::IsEnabled() {
|
||||||
|
#ifdef MOZ_FFVPX
|
||||||
|
return StaticPrefs::media_flac_enabled();
|
||||||
|
+#elif defined(MOZ_FFMPEG)
|
||||||
|
+ RefPtr<PDMFactory> platform = new PDMFactory();
|
||||||
|
+ return StaticPrefs::media_flac_enabled() &&
|
||||||
|
+ platform->SupportsMimeType(NS_LITERAL_CSTRING("audio/flac"),
|
||||||
|
+ /* DecoderDoctorDiagnostics* */ nullptr);
|
||||||
|
#else
|
||||||
|
// Until bug 1295886 is fixed.
|
||||||
|
return false;
|
|
@ -1,84 +1,77 @@
|
||||||
# HG changeset patch
|
https://bugzilla.mozilla.org/show_bug.cgi?id=1504834#c5
|
||||||
# Parent 548d0a2f3a22bfac32ec0c3921c6c969c8bf32a9
|
https://bugzilla.mozilla.org/attachment.cgi?id=9028600
|
||||||
|
|
||||||
diff -r 548d0a2f3a22 gfx/2d/ConvolutionFilter.cpp
|
--- gfx/skia/skia/third_party/skcms/skcms.cc
|
||||||
--- gfx/2d/ConvolutionFilter.cpp Mon Jul 22 16:57:54 2019 +0200
|
+++ gfx/skia/skia/third_party/skcms/skcms.cc
|
||||||
+++ gfx/2d/ConvolutionFilter.cpp Thu Jul 25 14:27:59 2019 +0200
|
@@ -30,6 +30,8 @@
|
||||||
@@ -35,9 +35,38 @@
|
#include <avx512fintrin.h>
|
||||||
return true;
|
#include <avx512dqintrin.h>
|
||||||
|
#endif
|
||||||
|
+#elif defined(__BIG_ENDIAN__)
|
||||||
|
+ #define SKCMS_PORTABLE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others.
|
||||||
|
@@ -280,20 +282,28 @@ enum {
|
||||||
|
static uint16_t read_big_u16(const uint8_t* ptr) {
|
||||||
|
uint16_t be;
|
||||||
|
memcpy(&be, ptr, sizeof(be));
|
||||||
|
-#if defined(_MSC_VER)
|
||||||
|
- return _byteswap_ushort(be);
|
||||||
|
+#if defined(__BIG_ENDIAN__)
|
||||||
|
+ return be;
|
||||||
|
#else
|
||||||
|
+ #if defined(_MSC_VER)
|
||||||
|
+ return _byteswap_ushort(be);
|
||||||
|
+ #else
|
||||||
|
return __builtin_bswap16(be);
|
||||||
|
+ #endif
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
+static void ByteSwapArray(uint8_t *u8Array, int32_t size) {
|
static uint32_t read_big_u32(const uint8_t* ptr) {
|
||||||
+ uint32_t *array = reinterpret_cast<uint32_t*>(u8Array);
|
uint32_t be;
|
||||||
+ for (int pxl = 0; pxl < size; ++pxl) {
|
memcpy(&be, ptr, sizeof(be));
|
||||||
+ // Use an endian swap to move the bytes, i.e. BGRA -> ARGB.
|
-#if defined(_MSC_VER)
|
||||||
+ uint32_t rgba = array[pxl];
|
- return _byteswap_ulong(be);
|
||||||
+ array[pxl] = NativeEndian::swapToLittleEndian(rgba);
|
+#if defined(__BIG_ENDIAN__)
|
||||||
+ }
|
+ return be;
|
||||||
+}
|
#else
|
||||||
+
|
+ #if defined(_MSC_VER)
|
||||||
void ConvolutionFilter::ConvolveHorizontally(const uint8_t* aSrc, uint8_t* aDst,
|
+ return _byteswap_ulong(be);
|
||||||
bool aHasAlpha) {
|
+ #else
|
||||||
+#ifdef MOZ_BIG_ENDIAN
|
return __builtin_bswap32(be);
|
||||||
+ int outputSize = mFilter->numValues();
|
+ #endif
|
||||||
+
|
#endif
|
||||||
+ // Input size isn't handed in, so we have to calculate it quickly
|
|
||||||
+ int inputSize = 0;
|
|
||||||
+ for (int xx = 0; xx < outputSize; ++xx) {
|
|
||||||
+ // Get the filter that determines the current output pixel.
|
|
||||||
+ int filterOffset, filterLength;
|
|
||||||
+ mFilter->FilterForValue(xx, &filterOffset, &filterLength);
|
|
||||||
+ inputSize = std::max(inputSize, filterOffset + filterLength);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
SkOpts::convolve_horizontally(aSrc, *mFilter, aDst, aHasAlpha);
|
|
||||||
+
|
|
||||||
+#ifdef MOZ_BIG_ENDIAN
|
|
||||||
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
|
|
||||||
+ ByteSwapArray(aDst, outputSize);
|
|
||||||
+#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConvolutionFilter::ConvolveVertically(uint8_t* const* aSrc, uint8_t* aDst,
|
--- gfx/2d/DrawTargetSkia.cpp
|
||||||
@@ -49,8 +78,26 @@
|
+++ gfx/2d/DrawTargetSkia.cpp
|
||||||
int32_t filterLength;
|
@@ -138,8 +138,7 @@ static IntRect CalculateSurfaceBounds(const IntSize& a
|
||||||
auto filterValues =
|
return surfaceBounds.Intersect(bounds);
|
||||||
mFilter->FilterForValue(aRowIndex, &filterOffset, &filterLength);
|
|
||||||
+
|
|
||||||
+#ifdef MOZ_BIG_ENDIAN
|
|
||||||
+ for (int filterY = 0; filterY < filterLength; filterY++) {
|
|
||||||
+ // Skia only knows LE, so we have to swizzle the input
|
|
||||||
+ ByteSwapArray(aSrc[filterY], aRowSize);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
SkOpts::convolve_vertically(filterValues, filterLength, aSrc, aRowSize, aDst,
|
|
||||||
aHasAlpha);
|
|
||||||
+
|
|
||||||
+#ifdef MOZ_BIG_ENDIAN
|
|
||||||
+ // After skia is finished, we swizzle back to BE, in case
|
|
||||||
+ // the input is used again somewhere else
|
|
||||||
+ for (int filterY = 0; filterY < filterLength; filterY++) {
|
|
||||||
+ ByteSwapArray(aSrc[filterY], aRowSize);
|
|
||||||
+ }
|
|
||||||
+ // The destination array as well
|
|
||||||
+ ByteSwapArray(aDst, aRowSize);
|
|
||||||
+#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ConvolutionFilter::ComputeResizeFactor is derived from Skia's
|
-static const int kARGBAlphaOffset =
|
||||||
diff -r 548d0a2f3a22 gfx/skia/skia/include/core/SkPreConfig.h
|
- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
|
||||||
--- gfx/skia/skia/include/core/SkPreConfig.h Mon Jul 22 16:57:54 2019 +0200
|
+static const int kARGBAlphaOffset = 0;
|
||||||
+++ gfx/skia/skia/include/core/SkPreConfig.h Thu Jul 25 14:27:59 2019 +0200
|
|
||||||
@@ -73,7 +73,7 @@
|
static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
|
||||||
defined(__ppc__) || defined(__hppa) || \
|
const int32_t aStride, SurfaceFormat aFormat) {
|
||||||
defined(__PPC__) || defined(__PPC64__) || \
|
--- gfx/2d/Types.h
|
||||||
defined(_MIPSEB) || defined(__ARMEB__) || \
|
+++ gfx/2d/Types.h
|
||||||
- defined(__s390__) || \
|
@@ -87,15 +87,8 @@ enum class SurfaceFormat : int8_t {
|
||||||
+ defined(__s390__) || defined(__s390x__) || \
|
// The following values are endian-independent synonyms. The _UINT32 suffix
|
||||||
(defined(__sh__) && defined(__BIG_ENDIAN__)) || \
|
// indicates that the name reflects the layout when viewed as a uint32_t
|
||||||
(defined(__ia64) && defined(__BIG_ENDIAN__))
|
// value.
|
||||||
#define SK_CPU_BENDIAN
|
-#if MOZ_LITTLE_ENDIAN()
|
||||||
|
A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB
|
||||||
|
X8R8G8B8_UINT32 = B8G8R8X8, // 0x00RRGGBB
|
||||||
|
-#elif MOZ_BIG_ENDIAN()
|
||||||
|
- A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB
|
||||||
|
- X8R8G8B8_UINT32 = X8R8G8B8, // 0x00RRGGBB
|
||||||
|
-#else
|
||||||
|
-# error "bad endianness"
|
||||||
|
-#endif
|
||||||
|
|
||||||
|
// The following values are OS and endian-independent synonyms.
|
||||||
|
//
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
CompositableHost.cpp patch added by @q66, based on patch in issue 1602730.
|
||||||
|
|
||||||
# HG changeset patch
|
# HG changeset patch
|
||||||
# Parent 46ea866ca3acb8bb5e1709ceb799b9c94f591dec
|
# Parent 46ea866ca3acb8bb5e1709ceb799b9c94f591dec
|
||||||
Problem description: Tab-titles that are too long to fit into a tab get faded out.
|
Problem description: Tab-titles that are too long to fit into a tab get faded out.
|
||||||
|
@ -17,7 +19,7 @@ diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
|
||||||
SkCanvas::kPreserveLCDText_SaveLayerFlag |
|
SkCanvas::kPreserveLCDText_SaveLayerFlag |
|
||||||
(aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
|
(aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
|
||||||
|
|
||||||
+#if MOZ_BIG_ENDIAN
|
+#if MOZ_BIG_ENDIAN()
|
||||||
+ // Pushing a layer where an aMask is defined produces wrong output.
|
+ // Pushing a layer where an aMask is defined produces wrong output.
|
||||||
+ // We _should_ endian swap the data, but I couldn't find a workable way to do so
|
+ // We _should_ endian swap the data, but I couldn't find a workable way to do so
|
||||||
+ // Therefore I deactivate those layers in the meantime.
|
+ // Therefore I deactivate those layers in the meantime.
|
||||||
|
@ -28,3 +30,27 @@ diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
|
||||||
mCanvas->saveLayer(saveRec);
|
mCanvas->saveLayer(saveRec);
|
||||||
|
|
||||||
SetPermitSubpixelAA(aOpaque);
|
SetPermitSubpixelAA(aOpaque);
|
||||||
|
--- gfx/layers/composite/CompositableHost.cpp
|
||||||
|
+++ gfx/layers/composite/CompositableHost.cpp
|
||||||
|
@@ -13,6 +13,7 @@
|
||||||
|
#include "ImageHost.h" // for ImageHostBuffered, etc
|
||||||
|
#include "Layers.h"
|
||||||
|
#include "TiledContentHost.h" // for TiledContentHost
|
||||||
|
+#include "mozilla/EndianUtils.h"
|
||||||
|
#include "mozilla/gfx/gfxVars.h"
|
||||||
|
#include "mozilla/layers/LayersSurfaces.h" // for SurfaceDescriptor
|
||||||
|
#include "mozilla/layers/TextureHost.h" // for TextureHost, etc
|
||||||
|
@@ -92,9 +93,13 @@ bool CompositableHost::AddMaskEffect(EffectChain& aEffects,
|
||||||
|
}
|
||||||
|
MOZ_ASSERT(source);
|
||||||
|
|
||||||
|
+ // Setting an alpha-mask here breaks the URL-bar on big endian (s390x)
|
||||||
|
+ // if the typed URL is too long for the textbox (automatic scrolling needed)
|
||||||
|
+#if MOZ_LITTLE_ENDIAN()
|
||||||
|
RefPtr<EffectMask> effect =
|
||||||
|
new EffectMask(source, source->GetSize(), aTransform);
|
||||||
|
aEffects.mSecondaryEffects[EffectTypes::MASK] = effect;
|
||||||
|
+#endif
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
# THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-i18n".
|
# THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-i18n".
|
||||||
#
|
#
|
||||||
pkgname=firefox
|
pkgname=firefox
|
||||||
version=78.0.2
|
version=79.0
|
||||||
revision=1
|
revision=1
|
||||||
build_helper="rust"
|
build_helper="rust"
|
||||||
short_desc="Mozilla Firefox web browser"
|
short_desc="Mozilla Firefox web browser"
|
||||||
|
@ -11,7 +11,7 @@ maintainer="Johannes <johannes.brechtmann@gmail.com>"
|
||||||
license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
|
license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
|
||||||
homepage="https://www.mozilla.org/firefox/"
|
homepage="https://www.mozilla.org/firefox/"
|
||||||
distfiles="${MOZILLA_SITE}/${pkgname}/releases/${version}/source/${pkgname}-${version}.source.tar.xz"
|
distfiles="${MOZILLA_SITE}/${pkgname}/releases/${version}/source/${pkgname}-${version}.source.tar.xz"
|
||||||
checksum=1aa00ec6d40a771d525b867b175be28eda096becc745875bcceb133a985750fc
|
checksum=12a922855914ec6b4d4f06a4ac58bc549aca6bdafd3722d68a3d709a935e5713
|
||||||
|
|
||||||
lib32disabled=yes
|
lib32disabled=yes
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue