import firefox-102.3.0-6.el8_6
This commit is contained in:
		
							parent
							
								
									37679c76ac
								
							
						
					
					
						commit
						9813914f37
					
				| @ -1,5 +1,6 @@ | |||||||
| c822547dbc12e2baebdfdfb38b665e23f0c2513a SOURCES/cbindgen-vendor.tar.xz | 52f2d51d0e17d137571bf3a766f514d34e28e556 SOURCES/cbindgen-vendor.tar.xz | ||||||
| 0693b8482089631c9c1c2b3c521aa701013e8a06 SOURCES/firefox-91.13.0esr.processed-source.tar.xz | 8161b83c675a6a598a89e377bc50c675cb0bf43c SOURCES/firefox-102.3.0esr.processed-source.tar.xz | ||||||
| 3ad70d1bac601289f0355fed936bfd61e2fbbfd5 SOURCES/firefox-langpacks-91.13.0esr-20220817.tar.xz | e7f01e90e3d0ca5dfa84d44e9e8b9a0770585d72 SOURCES/firefox-langpacks-102.3.0esr-20220913.tar.xz | ||||||
| b5fd1332d8e0d37339ae170c7bebcb63a40b22e0 SOURCES/nspr-4.32.0-1.el8_1.src.rpm | da39a3ee5e6b4b0d3255bfef95601890afd80709 SOURCES/mochitest-python.tar.gz | ||||||
| 8fff814901e03c2518ede2f8992d898f5ba61ed9 SOURCES/nss-3.67.0-7.el8_1.src.rpm | af58b3c87a8b5491dde63b07efaeb3d7f1ec56c1 SOURCES/nspr-4.34.0-3.el8_1.src.rpm | ||||||
|  | fc5297c6830f0a1e88f84b94b0b066487664061b SOURCES/nss-3.79.0-6.el8_1.src.rpm | ||||||
|  | |||||||
							
								
								
									
										9
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,5 +1,6 @@ | |||||||
| SOURCES/cbindgen-vendor.tar.xz | SOURCES/cbindgen-vendor.tar.xz | ||||||
| SOURCES/firefox-91.13.0esr.processed-source.tar.xz | SOURCES/firefox-102.3.0esr.processed-source.tar.xz | ||||||
| SOURCES/firefox-langpacks-91.13.0esr-20220817.tar.xz | SOURCES/firefox-langpacks-102.3.0esr-20220913.tar.xz | ||||||
| SOURCES/nspr-4.32.0-1.el8_1.src.rpm | SOURCES/mochitest-python.tar.gz | ||||||
| SOURCES/nss-3.67.0-7.el8_1.src.rpm | SOURCES/nspr-4.34.0-3.el8_1.src.rpm | ||||||
|  | SOURCES/nss-3.79.0-6.el8_1.src.rpm | ||||||
|  | |||||||
							
								
								
									
										44
									
								
								SOURCES/0001-GLIBCXX-fix-for-GCC-12.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								SOURCES/0001-GLIBCXX-fix-for-GCC-12.patch
									
									
									
									
									
										Normal 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 | ||||||
|  | 
 | ||||||
| @ -1,22 +1,35 @@ | |||||||
| --- firefox-91.11.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff	2022-06-20 21:18:51.000000000 +0200
 | diff -up firefox-102.2.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-102.2.0/widget/gtk/nsWindow.cpp
 | ||||||
| +++ firefox-91.11.0/widget/gtk/nsWindow.cpp	2022-06-21 12:21:44.892706641 +0200
 | --- firefox-102.2.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff	2022-08-18 21:54:09.000000000 +0200
 | ||||||
| @@ -91,6 +91,7 @@
 | +++ firefox-102.2.0/widget/gtk/nsWindow.cpp	2022-09-02 15:55:18.023843940 +0200
 | ||||||
|  | @@ -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), |   | ||||||
| @@ -4618,6 +4620,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(); | ||||||
|      } |      } | ||||||
|    } |    } | ||||||
| @ -26,17 +39,17 @@ | |||||||
| +  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() { | ||||||
| @@ -6860,6 +6875,19 @@ nsresult nsWindow::MakeFullScreen(bool a
 | @@ -7042,6 +7058,19 @@ nsresult nsWindow::MakeFullScreen(bool a
 | ||||||
|        } |        } | ||||||
|      } |      } | ||||||
|   |   | ||||||
| @ -47,22 +60,23 @@ | |||||||
| +      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; | ||||||
| --- firefox-91.11.0/widget/gtk/nsWindow.h.D110204-fscreen.diff	2022-06-21 12:21:44.894706636 +0200
 | diff -up firefox-102.2.0/widget/gtk/nsWindow.h.D110204-fscreen.diff firefox-102.2.0/widget/gtk/nsWindow.h
 | ||||||
| +++ firefox-91.11.0/widget/gtk/nsWindow.h	2022-06-21 12:25:20.985209461 +0200
 | --- firefox-102.2.0/widget/gtk/nsWindow.h.D110204-fscreen.diff	2022-08-18 21:53:52.000000000 +0200
 | ||||||
| @@ -767,6 +767,7 @@ class nsWindow final : public nsBaseWidg
 | +++ firefox-102.2.0/widget/gtk/nsWindow.h	2022-09-02 08:17:07.606010905 +0200
 | ||||||
|     * move-to-rect callback we set mResizedAfterMoveToRect. | @@ -712,6 +712,7 @@ class nsWindow final : public nsBaseWidg
 | ||||||
|  |     * move-to-rect callback we set mMovedAfterMoveToRect/mResizedAfterMoveToRect. | ||||||
|     */ |     */ | ||||||
|    bool mWaitingForMoveToRectCallback; |    bool mWaitingForMoveToRectCallback : 1; | ||||||
| +  bool mPendingFullscreen;
 | +  bool mPendingFullscreen : 1;
 | ||||||
|    bool mResizedAfterMoveToRect; |    bool mMovedAfterMoveToRect : 1; | ||||||
|  |    bool mResizedAfterMoveToRect : 1; | ||||||
|   |   | ||||||
|    /** |  | ||||||
|  | |||||||
							
								
								
									
										45
									
								
								SOURCES/build-aarch64-skia.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								SOURCES/build-aarch64-skia.patch
									
									
									
									
									
										Normal 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
									
								
								SOURCES/build-arm-libaom.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								SOURCES/build-arm-libaom.patch
									
									
									
									
									
										Normal 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
									
								
								SOURCES/build-arm-libopus.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								SOURCES/build-arm-libopus.patch
									
									
									
									
									
										Normal 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" | ||||||
|  |   | ||||||
							
								
								
									
										45
									
								
								SOURCES/build-ascii-decode-fail-rhel7.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								SOURCES/build-ascii-decode-fail-rhel7.patch
									
									
									
									
									
										Normal 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: | ||||||
							
								
								
									
										57
									
								
								SOURCES/build-big-endian-errors.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								SOURCES/build-big-endian-errors.patch
									
									
									
									
									
										Normal 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; | ||||||
| @ -1,24 +0,0 @@ | |||||||
| diff -up firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc.debuginfo-fix firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc
 |  | ||||||
| --- firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc.debuginfo-fix	2021-09-01 11:11:46.738285751 +0200
 |  | ||||||
| +++ firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc	2021-09-01 11:11:56.127319530 +0200
 |  | ||||||
| @@ -21,7 +21,7 @@
 |  | ||||||
|   *  be found in the AUTHORS file in the root of the source tree. |  | ||||||
|   */ |  | ||||||
|   |  | ||||||
| -#include "modules/audio_processing//utility/ooura_fft.h"
 |  | ||||||
| +#include "modules/audio_processing/utility/ooura_fft.h"
 |  | ||||||
|   |  | ||||||
|  #include <math.h> |  | ||||||
|   |  | ||||||
| diff -up firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc.debuginfo-fix firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc
 |  | ||||||
| --- firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc.debuginfo-fix	2021-09-01 11:12:26.513428847 +0200
 |  | ||||||
| +++ firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc	2021-09-01 11:12:32.117449009 +0200
 |  | ||||||
| @@ -8,7 +8,7 @@
 |  | ||||||
|   *  be found in the AUTHORS file in the root of the source tree. |  | ||||||
|   */ |  | ||||||
|   |  | ||||||
| -#include "modules/audio_processing//utility/ooura_fft.h"
 |  | ||||||
| +#include "modules/audio_processing/utility/ooura_fft.h"
 |  | ||||||
|   |  | ||||||
|  #include <emmintrin.h> |  | ||||||
|   |  | ||||||
							
								
								
									
										12
									
								
								SOURCES/build-disable-elfhack.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								SOURCES/build-disable-elfhack.patch
									
									
									
									
									
										Normal 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) | ||||||
| @ -1,12 +0,0 @@ | |||||||
| diff -up mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py.mozconfig-fix mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py
 |  | ||||||
| --- mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py.mozconfig-fix	2018-03-13 17:22:19.018466884 +0100
 |  | ||||||
| +++ mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py	2018-03-13 17:23:57.379559640 +0100
 |  | ||||||
| @@ -446,7 +446,7 @@ class MozconfigLoader(object):
 |  | ||||||
|                              value = value[1:] |  | ||||||
|   |  | ||||||
|                          # Lines with a quote not ending in a quote are multi-line. |  | ||||||
| -                        if has_quote and not value.endswith("'"):
 |  | ||||||
| +                        if has_quote and not value.endswith(("'", ";")):
 |  | ||||||
|                              in_variable = name |  | ||||||
|                              current.append(value) |  | ||||||
|                              continue |  | ||||||
| @ -1,24 +0,0 @@ | |||||||
| diff -up firefox-91.0.1/build/moz.configure/nspr.configure.nss-nspr-downgrade firefox-91.0.1/build/moz.configure/nspr.configure
 |  | ||||||
| --- firefox-91.0.1/build/moz.configure/nspr.configure.nss-nspr-downgrade	2021-08-25 13:17:26.265307060 +0200
 |  | ||||||
| +++ firefox-91.0.1/build/moz.configure/nspr.configure	2021-08-25 13:17:28.161313632 +0200
 |  | ||||||
| @@ -50,7 +50,7 @@ set_define("JS_WITHOUT_NSPR", True, when
 |  | ||||||
|  def nspr_minver(js_standalone): |  | ||||||
|      if js_standalone: |  | ||||||
|          return "nspr >= 4.10" |  | ||||||
| -    return "nspr >= 4.32"
 |  | ||||||
| +    return "nspr >= 4.31"
 |  | ||||||
|   |  | ||||||
|   |  | ||||||
|  nspr_pkg = pkg_check_modules("NSPR", nspr_minver, when="--with-system-nspr") |  | ||||||
| diff -up firefox-91.0.1/build/moz.configure/nss.configure.nss-nspr-downgrade firefox-91.0.1/build/moz.configure/nss.configure
 |  | ||||||
| --- firefox-91.0.1/build/moz.configure/nss.configure.nss-nspr-downgrade	2021-08-25 13:17:45.049372175 +0200
 |  | ||||||
| +++ firefox-91.0.1/build/moz.configure/nss.configure	2021-08-25 13:17:37.763346918 +0200
 |  | ||||||
| @@ -9,7 +9,7 @@ option("--with-system-nss", help="Use sy
 |  | ||||||
|  imply_option("--with-system-nspr", True, when="--with-system-nss") |  | ||||||
|   |  | ||||||
|  nss_pkg = pkg_check_modules( |  | ||||||
| -    "NSS", "nss >= 3.68", when="--with-system-nss", config=False
 |  | ||||||
| +    "NSS", "nss >= 3.67", when="--with-system-nss", config=False
 |  | ||||||
|  ) |  | ||||||
|   |  | ||||||
|  set_config("MOZ_SYSTEM_NSS", True, when="--with-system-nss") |  | ||||||
| @ -1,27 +0,0 @@ | |||||||
| diff -up firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp.ppc64le-inline firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp
 |  | ||||||
| --- firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp.ppc64le-inline	2019-08-26 18:52:28.000000000 +0200
 |  | ||||||
| +++ firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp	2019-08-29 08:49:57.695687874 +0200
 |  | ||||||
| @@ -1092,7 +1092,11 @@ class MOZ_STACK_CLASS CallMethodHelper f
 |  | ||||||
|    MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex, |  | ||||||
|                                             MutableHandleValue srcp) const; |  | ||||||
|   |  | ||||||
| +#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
 |  | ||||||
| +  bool GatherAndConvertResults();
 |  | ||||||
| +#else
 |  | ||||||
|    MOZ_ALWAYS_INLINE bool GatherAndConvertResults(); |  | ||||||
| +#endif
 |  | ||||||
|   |  | ||||||
|    MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath(); |  | ||||||
|   |  | ||||||
| @@ -1139,7 +1143,11 @@ class MOZ_STACK_CLASS CallMethodHelper f
 |  | ||||||
|   |  | ||||||
|    ~CallMethodHelper(); |  | ||||||
|   |  | ||||||
| +#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
 |  | ||||||
| +  bool Call();
 |  | ||||||
| +#else
 |  | ||||||
|    MOZ_ALWAYS_INLINE bool Call(); |  | ||||||
| +#endif
 |  | ||||||
|   |  | ||||||
|    // Trace implementation so we can put our CallMethodHelper in a Rooted<T>. |  | ||||||
|    void trace(JSTracer* aTrc); |  | ||||||
							
								
								
									
										49
									
								
								SOURCES/build-remove-dav1d-from-wayland-dep.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								SOURCES/build-remove-dav1d-from-wayland-dep.patch
									
									
									
									
									
										Normal 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' | ||||||
|  |          ] | ||||||
|  |   | ||||||
							
								
								
									
										39
									
								
								SOURCES/disable-openh264-download.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								SOURCES/disable-openh264-download.patch
									
									
									
									
									
										Normal 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"); | ||||||
|  | 
 | ||||||
| @ -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 | ||||||
|  | |||||||
| @ -1,49 +0,0 @@ | |||||||
| diff -up firefox-91.7.0/parser/expat/lib/xmltok.c.expat-CVE-2022-25235 firefox-91.7.0/parser/expat/lib/xmltok.c
 |  | ||||||
| --- firefox-91.7.0/parser/expat/lib/xmltok.c.expat-CVE-2022-25235	2022-03-02 17:57:38.364361168 +0100
 |  | ||||||
| +++ firefox-91.7.0/parser/expat/lib/xmltok.c	2022-03-02 17:58:22.235512399 +0100
 |  | ||||||
| @@ -65,13 +65,6 @@
 |  | ||||||
|                        + ((((byte)[2]) >> 5) & 1)] \ |  | ||||||
|           & (1u << (((byte)[2]) & 0x1F))) |  | ||||||
|   |  | ||||||
| -#define UTF8_GET_NAMING(pages, p, n) \
 |  | ||||||
| -  ((n) == 2 \
 |  | ||||||
| -  ? UTF8_GET_NAMING2(pages, (const unsigned char *)(p)) \
 |  | ||||||
| -  : ((n) == 3 \
 |  | ||||||
| -     ? UTF8_GET_NAMING3(pages, (const unsigned char *)(p)) \
 |  | ||||||
| -     : 0))
 |  | ||||||
| -
 |  | ||||||
|  /* Detection of invalid UTF-8 sequences is based on Table 3.1B |  | ||||||
|     of Unicode 3.2: http://www.unicode.org/unicode/reports/tr28/ |  | ||||||
|     with the additional restriction of not allowing the Unicode |  | ||||||
| diff -up firefox-91.7.0/parser/expat/lib/xmltok_impl.c.expat-CVE-2022-25235 firefox-91.7.0/parser/expat/lib/xmltok_impl.c
 |  | ||||||
| --- firefox-91.7.0/parser/expat/lib/xmltok_impl.c.expat-CVE-2022-25235	2022-03-02 17:57:38.365361172 +0100
 |  | ||||||
| +++ firefox-91.7.0/parser/expat/lib/xmltok_impl.c	2022-03-02 18:04:51.240853247 +0100
 |  | ||||||
| @@ -34,7 +34,7 @@
 |  | ||||||
|     case BT_LEAD ## n: \ |  | ||||||
|       if (end - ptr < n) \ |  | ||||||
|         return XML_TOK_PARTIAL_CHAR; \ |  | ||||||
| -     if (!IS_NAME_CHAR(enc, ptr, n)) { \
 |  | ||||||
| +     if (IS_INVALID_CHAR(enc, ptr, n) || ! IS_NAME_CHAR(enc, ptr, n)) { \
 |  | ||||||
|         *nextTokPtr = ptr; \ |  | ||||||
|         return XML_TOK_INVALID; \ |  | ||||||
|       } \ |  | ||||||
| @@ -62,7 +62,7 @@
 |  | ||||||
|     case BT_LEAD ## n: \ |  | ||||||
|       if (end - ptr < n) \ |  | ||||||
|         return XML_TOK_PARTIAL_CHAR; \ |  | ||||||
| -     if (!IS_NMSTRT_CHAR(enc, ptr, n)) { \
 |  | ||||||
| +     if (IS_INVALID_CHAR(enc, ptr, n) || ! IS_NMSTRT_CHAR(enc, ptr, n)) { \
 |  | ||||||
|         *nextTokPtr = ptr; \ |  | ||||||
|         return XML_TOK_INVALID; \ |  | ||||||
|       } \ |  | ||||||
| @@ -1090,6 +1090,10 @@ PREFIX(prologTok)(const ENCODING *enc, c
 |  | ||||||
|    case BT_LEAD ## n: \ |  | ||||||
|      if (end - ptr < n) \ |  | ||||||
|        return XML_TOK_PARTIAL_CHAR; \ |  | ||||||
| +    if (IS_INVALID_CHAR(enc, ptr, n)) {                                        \
 |  | ||||||
| +      *nextTokPtr = ptr;                                                       \
 |  | ||||||
| +      return XML_TOK_INVALID;                                                  \
 |  | ||||||
| +    }                                                                          \
 |  | ||||||
|      if (IS_NMSTRT_CHAR(enc, ptr, n)) { \ |  | ||||||
|        ptr += n; \ |  | ||||||
|        tok = XML_TOK_NAME; \ |  | ||||||
| @ -1,40 +0,0 @@ | |||||||
| diff -up firefox-91.7.0/parser/expat/lib/xmlparse.c.expat-CVE-2022-25236 firefox-91.7.0/parser/expat/lib/xmlparse.c
 |  | ||||||
| --- firefox-91.7.0/parser/expat/lib/xmlparse.c.expat-CVE-2022-25236	2022-03-02 18:08:40.085642028 +0100
 |  | ||||||
| +++ firefox-91.7.0/parser/expat/lib/xmlparse.c	2022-03-02 18:13:31.838667958 +0100
 |  | ||||||
| @@ -700,8 +700,7 @@ XML_ParserCreate(const XML_Char *encodin
 |  | ||||||
|  XML_Parser XMLCALL |  | ||||||
|  XML_ParserCreateNS(const XML_Char *encodingName, XML_Char nsSep) |  | ||||||
|  { |  | ||||||
| -  XML_Char tmp[2];
 |  | ||||||
| -  *tmp = nsSep;
 |  | ||||||
| +  XML_Char tmp[2] = {nsSep, 0};
 |  | ||||||
|    return XML_ParserCreate_MM(encodingName, NULL, tmp); |  | ||||||
|  } |  | ||||||
|  #endif |  | ||||||
| @@ -1276,8 +1275,7 @@ XML_ExternalEntityParserCreate(XML_Parse
 |  | ||||||
|       would be otherwise. |  | ||||||
|    */ |  | ||||||
|    if (ns) { |  | ||||||
| -    XML_Char tmp[2];
 |  | ||||||
| -    *tmp = namespaceSeparator;
 |  | ||||||
| +    XML_Char tmp[2] = {parser->m_namespaceSeparator, 0};
 |  | ||||||
|      parser = parserCreate(encodingName, &parser->m_mem, tmp, newDtd); |  | ||||||
|    } |  | ||||||
|    else { |  | ||||||
| @@ -3667,6 +3665,16 @@ addBinding(XML_Parser parser, PREFIX *pr
 |  | ||||||
|      if (!mustBeXML && isXMLNS |  | ||||||
|          && (len > xmlnsLen || uri[len] != xmlnsNamespace[len])) |  | ||||||
|        isXMLNS = XML_FALSE; |  | ||||||
| +    // NOTE: While Expat does not validate namespace URIs against RFC 3986,
 |  | ||||||
| +    //       we have to at least make sure that the XML processor on top of
 |  | ||||||
| +    //       Expat (that is splitting tag names by namespace separator into
 |  | ||||||
| +    //       2- or 3-tuples (uri-local or uri-local-prefix)) cannot be confused
 |  | ||||||
| +    //       by an attacker putting additional namespace separator characters
 |  | ||||||
| +    //       into namespace declarations.  That would be ambiguous and not to
 |  | ||||||
| +    //       be expected.
 |  | ||||||
| +    if (parser->m_ns && (uri[len] == parser->m_namespaceSeparator)) {
 |  | ||||||
| +      return XML_ERROR_SYNTAX;
 |  | ||||||
| +    }
 |  | ||||||
|    } |  | ||||||
|    isXML = isXML && len == xmlLen; |  | ||||||
|    isXMLNS = isXMLNS && len == xmlnsLen; |  | ||||||
| @ -1,24 +0,0 @@ | |||||||
| diff -up firefox-91.7.0/parser/expat/lib/xmlparse.c.expat-CVE-2022-25315 firefox-91.7.0/parser/expat/lib/xmlparse.c
 |  | ||||||
| --- firefox-91.7.0/parser/expat/lib/xmlparse.c.expat-CVE-2022-25315	2022-03-02 18:17:50.966583254 +0100
 |  | ||||||
| +++ firefox-91.7.0/parser/expat/lib/xmlparse.c	2022-03-02 18:19:27.636924735 +0100
 |  | ||||||
| @@ -2479,6 +2479,7 @@ storeRawNames(XML_Parser parser)
 |  | ||||||
|    while (tag) { |  | ||||||
|      int bufSize; |  | ||||||
|      int nameLen = sizeof(XML_Char) * (tag->name.strLen + 1); |  | ||||||
| +    size_t rawNameLen;
 |  | ||||||
|      char *rawNameBuf = tag->buf + nameLen; |  | ||||||
|      /* Stop if already stored.  Since tagStack is a stack, we can stop |  | ||||||
|         at the first entry that has already been copied; everything |  | ||||||
| @@ -2490,7 +2491,11 @@ storeRawNames(XML_Parser parser)
 |  | ||||||
|      /* For re-use purposes we need to ensure that the |  | ||||||
|         size of tag->buf is a multiple of sizeof(XML_Char). |  | ||||||
|      */ |  | ||||||
| -    bufSize = nameLen + ROUND_UP(tag->rawNameLength, sizeof(XML_Char));
 |  | ||||||
| +    rawNameLen = ROUND_UP(tag->rawNameLength, sizeof(XML_Char));
 |  | ||||||
| +    /* Detect and prevent integer overflow. */
 |  | ||||||
| +    if (rawNameLen > (size_t)INT_MAX - nameLen)
 |  | ||||||
| +      return XML_FALSE;
 |  | ||||||
| +    bufSize = nameLen + (int)rawNameLen;
 |  | ||||||
|      if (bufSize > tag->bufEnd - tag->buf) { |  | ||||||
|        char *temp = (char *)REALLOC(tag->buf, bufSize); |  | ||||||
|        if (temp == NULL) |  | ||||||
							
								
								
									
										9
									
								
								SOURCES/fedora-shebang-build.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								SOURCES/fedora-shebang-build.patch
									
									
									
									
									
										Normal 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
									
								
								SOURCES/firefox-gcc-build.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								SOURCES/firefox-gcc-build.patch
									
									
									
									
									
										Normal 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); | ||||||
|  |      } | ||||||
|  | 
 | ||||||
| @ -1,30 +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 --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 | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								SOURCES/firefox-nss-version.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								SOURCES/firefox-nss-version.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | |||||||
|  | diff -up firefox-102.2.0/build/moz.configure/nss.configure.nss-version firefox-102.2.0/build/moz.configure/nss.configure
 | ||||||
|  | --- firefox-102.2.0/build/moz.configure/nss.configure.nss-version	2022-08-23 18:17:14.699869558 +0200
 | ||||||
|  | +++ firefox-102.2.0/build/moz.configure/nss.configure	2022-08-23 18:15:33.790051448 +0200
 | ||||||
|  | @@ -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.1", 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") | ||||||
|  | diff -up firefox-102.2.0/.nss-version firefox-102.2.0/
 | ||||||
| @ -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); | ||||||
							
								
								
									
										5
									
								
								SOURCES/firefox-search-provider.ini
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								SOURCES/firefox-search-provider.ini
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | [Shell Search Provider] | ||||||
|  | DesktopId=firefox.desktop | ||||||
|  | BusName=org.mozilla.Firefox.SearchProvider | ||||||
|  | ObjectPath=/org/mozilla/Firefox/SearchProvider | ||||||
|  | Version=2 | ||||||
| @ -1,30 +1,3 @@ | |||||||
| <?xml version='1.0' encoding='UTF-8' standalone='no'?> | <svg id="Assets" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"> | ||||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> |   <path d="M190.368 150.591c0.157 0.009 0.079 0.003 0 0zm-57.874-28.933c0.158 0.008 0.079 0.003 0 0zm346.228 44.674c-10.445-25.123-31.6-52.248-48.211-60.82 13.52 26.5 21.345 53.093 24.335 72.935 0 0.04 0.015 0.136 0.047 0.4-27.175-67.732-73.254-95.047-110.886-154.512-1.9-3.008-3.805-6.022-5.661-9.2a73.237 73.237 0 0 1-2.646-4.972 43.757 43.757 0 0 1-3.585-9.5 0.625 0.625 0 0 0-0.546-0.644 0.8 0.8 0 0 0-0.451 0c-0.033 0.011-0.084 0.051-0.119 0.065-0.053 0.02-0.12 0.069-0.176 0.095 0.026-0.036 0.083-0.117 0.1-0.135-53.437 31.3-75.587 86.093-81.282 120.97a128.057 128.057 0 0 0-47.624 12.153 6.144 6.144 0 0 0-3.041 7.63 6.034 6.034 0 0 0 8.192 3.525 116.175 116.175 0 0 1 41.481-10.826c0.468-0.033 0.937-0.062 1.405-0.1a117.624 117.624 0 0 1 5.932-0.211 120.831 120.831 0 0 1 34.491 4.777c0.654 0.192 1.295 0.414 1.946 0.616a120.15 120.15 0 0 1 5.539 1.842 121.852 121.852 0 0 1 3.992 1.564c1.074 0.434 2.148 0.868 3.206 1.331a118.453 118.453 0 0 1 4.9 2.307c0.743 0.368 1.485 0.735 2.217 1.117a120.535 120.535 0 0 1 4.675 2.587 107.785 107.785 0 0 1 2.952 1.776 123.018 123.018 0 0 1 42.028 43.477c-12.833-9.015-35.81-17.918-57.947-14.068 86.441 43.214 63.234 192.027-56.545 186.408a106.7 106.7 0 0 1-31.271-6.031 132.461 132.461 0 0 1-7.059-2.886c-1.356-0.618-2.711-1.243-4.051-1.935-29.349-15.168-53.583-43.833-56.611-78.643 0 0 11.093-41.335 79.433-41.335 7.388 0 28.508-20.614 28.9-26.593-0.09-1.953-41.917-18.59-58.223-34.656-8.714-8.585-12.851-12.723-16.514-15.829a71.7 71.7 0 0 0-6.225-4.7 111.335 111.335 0 0 1-0.675-58.733c-24.687 11.242-43.89 29.011-57.849 44.7h-0.111c-9.528-12.067-8.855-51.873-8.312-60.184-0.114-0.516-7.107 3.63-8.024 4.254a175.21 175.21 0 0 0-23.486 20.12 210.5 210.5 0 0 0-22.443 26.913c0 0.012-0.007 0.025-0.011 0.037 0-0.012 0.007-0.025 0.011-0.038a202.837 202.837 0 0 0-32.244 72.81c-0.058 0.265-2.29 10.054-3.92 22.147a265.794 265.794 0 0 0-0.769 5.651c-0.558 3.636-0.992 7.6-1.42 13.767-0.019 0.239-0.031 0.474-0.048 0.712a591.152 591.152 0 0 0-0.481 7.995c0 0.411-0.025 0.816-0.025 1.227 0 132.709 107.6 240.29 240.324 240.29 118.865 0 217.559-86.288 236.882-199.63 0.407-3.075 0.732-6.168 1.092-9.27 4.777-41.21-0.53-84.525-15.588-120.747zm-164.068 72.1z" fill="#fff"/> | ||||||
| 
 |  | ||||||
| <svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='firefox-symbolic.svg' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:osb='http://www.openswatchbook.org/uri/2009/osb' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:svg='http://www.w3.org/2000/svg' version='1.1' inkscape:version='0.91 r13725' width='16' xmlns='http://www.w3.org/2000/svg'> |  | ||||||
|   <metadata id='metadata90'> |  | ||||||
|     <rdf:RDF> |  | ||||||
|       <cc:Work rdf:about=''> |  | ||||||
|         <dc:format>image/svg+xml</dc:format> |  | ||||||
|         <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/> |  | ||||||
|         <dc:title>Gnome Symbolic Icon Theme</dc:title> |  | ||||||
|       </cc:Work> |  | ||||||
|     </rdf:RDF> |  | ||||||
|   </metadata> |  | ||||||
|   <sodipodi:namedview inkscape:bbox-paths='true' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer9' inkscape:cx='-10.975734' inkscape:cy='233.73843' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#555753' inkscape:pageopacity='1' inkscape:pageshadow='2' showborder='false' showgrid='false' showguides='true' inkscape:snap-bbox='true' inkscape:snap-bbox-midpoints='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-nodes='true' inkscape:snap-others='false' inkscape:snap-to-guides='true' inkscape:window-height='1403' inkscape:window-maximized='1' inkscape:window-width='2560' inkscape:window-x='2560' inkscape:window-y='0' inkscape:zoom='1'> |  | ||||||
|     <inkscape:grid empspacing='2' enabled='true' id='grid4866' originx='-222.00001' originy='-381.99852' snapvisiblegridlinesonly='true' spacingx='1px' spacingy='1px' type='xygrid' visible='true'/> |  | ||||||
|   </sodipodi:namedview> |  | ||||||
|   <title id='title9167'>Gnome Symbolic Icon Theme</title> |  | ||||||
|   <defs id='defs7386'> |  | ||||||
|     <linearGradient id='linearGradient7212' osb:paint='solid'> |  | ||||||
|       <stop id='stop7214' offset='0' style='stop-color:#000000;stop-opacity:1;'/> |  | ||||||
|     </linearGradient> |  | ||||||
|   </defs> |  | ||||||
|   <g inkscape:groupmode='layer' id='layer9' inkscape:label='apps' style='display:inline' transform='translate(-463.00021,164.99852)'> |  | ||||||
|      |  | ||||||
|     <path inkscape:connector-curvature='0' d='M 469.05437,-154.9679 Z' id='path17747' style='fill:none;stroke:#000000;stroke-width:0.99851286px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1'/> |  | ||||||
|     <path inkscape:connector-curvature='0' d='M 469.08553,-154.9054 Z' id='path17749' style='fill:none;stroke:#000000;stroke-width:0.99851286px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1'/> |  | ||||||
|     <path inkscape:connector-curvature='0' d='m 473.0627,-162.9375 c -0.41568,-0.0182 -0.62813,0.0274 -0.625,0.0312 0.006,0.008 1.72988,0.32697 2.03125,0.75 0,0 -0.71915,0.007 -1.4375,0.21875 -0.0325,0.01 2.64053,0.33122 3.1875,3.0625 0,0 -0.29354,-0.64386 -0.65625,-0.75 0.23852,0.74134 0.16466,2.17583 -0.0625,2.875 -0.0292,0.0899 -0.0525,-0.38762 -0.5,-0.59375 0.14332,1.04923 -0.006,2.6978 -0.71875,3.15625 -0.0555,0.0357 0.43942,-1.64894 0.0937,-1 -2.06368,3.2325 -4.50486,1.31102 -5.5,0.625 0.79871,0.19996 1.80035,0.0704 2.125,-0.15625 0.49572,-0.34615 0.79916,-0.59107 1.0625,-0.53125 0.26322,0.0601 0.42318,-0.22934 0.21875,-0.46875 -0.20466,-0.23989 -0.70268,-0.55471 -1.375,-0.375 -0.47415,0.12687 -1.04057,0.54268 -1.9375,0 -0.7652,-0.46319 -0.67076,-0.69942 -0.67076,-0.93907 0,-0.23977 0.21387,-0.59107 0.59375,-0.53125 0.0851,0.0134 0.15074,0.009 0.1875,0 0.18483,0.0422 0.35743,0.0964 0.53125,0.1875 0.008,-0.2241 -0.0292,-0.87345 -0.15625,-1.23012 0.0106,0.004 0.0289,0.011 0.0312,0 0.0384,-0.17687 1.05477,-0.18386 1.37388,-0.59643 0.20404,-0.26362 0.14073,-0.79683 0.14073,-0.79683 l -1,0 c -0.52354,0.002 -0.97244,-0.75086 -1.01451,-0.85669 0.11444,-0.62597 0.48612,-0.83952 1.01451,-1.14331 -0.39748,-0.003 -0.18871,0 -1,0 -0.52875,0 -0.84718,0.36158 -1.01451,0.54956 -0.70058,-0.16587 -1.38144,-0.25227 -1.86049,-0.0609 -0.22125,-0.22941 -0.39604,-0.80055 -0.42188,-1.48863 0,0 -1.20486,0.73864 -1.07812,2.55113 -0.002,0.14904 -0.0499,0.21348 -0.0625,0.3125 -0.13061,0.22845 -0.1553,0.40492 -0.125,0.375 -0.0656,0.13627 -0.15391,0.28402 -0.21875,0.46875 -0.0149,0.0362 -0.0495,0.0463 -0.0625,0.0937 -0.009,0.0322 0.002,0.0638 0,0.0937 -0.11512,0.36099 -0.21516,0.98244 -0.3125,1.54262 0,0 0.12424,-0.51425 0.3125,-0.88637 -0.15639,0.54353 -0.26211,1.54974 -0.1875,2.73012 0,0 0.015,-0.20429 0.0625,-0.5 0.0465,0.80102 0.25925,1.72737 0.84375,2.75 1.46152,2.5575 3.89248,3.68885 6.4375,3.46875 0.44516,-0.0296 0.89639,-0.10834 1.34375,-0.21875 5.92923,-1.46449 5.28125,-8.78118 5.28125,-8.78118 l -0.15625,1.09375 c 0,0 -0.24147,-1.99977 -0.53125,-2.75 -0.44412,-1.14957 -0.62372,-1.15791 -0.625,-1.15625 0.29743,0.77226 0.21875,1.1875 0.21875,1.1875 0,0 -0.51279,-1.43939 -1.90625,-1.90625 -0.82515,-0.27632 -1.45932,-0.38807 -1.875,-0.40625 z' id='path159-6' sodipodi:nodetypes='sccccccccccsccccscccccscccccccccccccccccccccccccccs' style='fill:#bebebe;fill-opacity:1;stroke:none'/> |  | ||||||
|     <path inkscape:connector-curvature='0' d='m 470.87695,-164.01953 c -0.83043,0.0139 -1.67042,0.17659 -2.48047,0.5 l -0.46289,0.18359 c 0.66083,0.79767 1.84339,0.43951 1.84339,0.43951 2.50802,-0.52344 5.12427,0.6034 6.44177,2.89252 1.49591,2.59908 0.85463,5.89258 -1.50586,7.74219 -2.36049,1.84961 -5.71108,1.68349 -7.87695,-0.39062 -2.16588,-2.07412 -2.47623,-5.41522 -0.73047,-7.85352 l 0.29101,-0.40625 -0.81445,-0.58203 -0.29101,0.40625 c -2.03104,2.83673 -1.66628,6.74516 0.85351,9.1582 2.5198,2.41305 6.43934,2.60693 9.18555,0.45508 2.74621,-2.15185 3.49621,-6.00355 1.75586,-9.02734 -1.30527,-2.26785 -3.7177,-3.55935 -6.20899,-3.51758 z' id='path22109' sodipodi:nodetypes='ccccsssccccsssc' style='color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate'/> |  | ||||||
|   </g> |  | ||||||
| </svg> | </svg> | ||||||
|  | |||||||
| Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 2.2 KiB | 
							
								
								
									
										14
									
								
								SOURCES/firefox-tests-xpcshell-freeze.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								SOURCES/firefox-tests-xpcshell-freeze.patch
									
									
									
									
									
										Normal 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): | ||||||
| @ -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
									
								
								SOURCES/firefox.appdata.xml.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								SOURCES/firefox.appdata.xml.in
									
									
									
									
									
										Normal 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 don’t 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> | ||||||
| @ -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]=Cửa sổ mới | Name[vi]=Cửa sổ mới | ||||||
| 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]=Cửa sổ riêng tư mới | Name[vi]=Cửa sổ riêng tư mới | ||||||
| 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 | ||||||
|  | |||||||
| @ -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 | ||||||
| 
 | 
 | ||||||
| @ -61,14 +61,40 @@ if [ ! -r $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then | |||||||
|     MOZ_LIB_DIR="$SECONDARY_LIB_DIR" |     MOZ_LIB_DIR="$SECONDARY_LIB_DIR" | ||||||
| fi | fi | ||||||
| MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox" | MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox" | ||||||
|  | MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks" | ||||||
|  | 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 | ||||||
| @ -96,7 +122,18 @@ 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 | ||||||
|  | ## | ||||||
|  | FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft" | ||||||
|  | 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  | ||||||
| @ -127,6 +164,85 @@ export G_SLICE=always-malloc | |||||||
| ## | ## | ||||||
| export MOZ_USE_XINPUT2=1 | export MOZ_USE_XINPUT2=1 | ||||||
| 
 | 
 | ||||||
|  | # OK, here's where all the real work gets done | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ## | ||||||
|  | ## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1 | ||||||
|  | ## in your environment before launching Firefox. | ||||||
|  | ## | ||||||
|  | # | ||||||
|  | # MOZ_DISABLE_LANGPACKS=1 | ||||||
|  | # export MOZ_DISABLE_LANGPACKS | ||||||
|  | # | ||||||
|  | 
 | ||||||
|  | ## | ||||||
|  | ## Automatically installed langpacks are tracked by .fedora-langpack-install | ||||||
|  | ## config file. | ||||||
|  | ## | ||||||
|  | FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install" | ||||||
|  | 
 | ||||||
|  | # MOZ_DISABLE_LANGPACKS disables language packs completely | ||||||
|  | MOZILLA_DOWN=0 | ||||||
|  | if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then | ||||||
|  |     if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then | ||||||
|  |         # Is firefox running? | ||||||
|  |         /__PREFIX__/bin/pidof $MOZ_PROGRAM > /dev/null 2>&1 | ||||||
|  |         MOZILLA_DOWN=$? | ||||||
|  |     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  | ||||||
|  | # and language packs are not disabled | ||||||
|  | if [ $MOZILLA_DOWN -ne 0 ]; then | ||||||
|  | 
 | ||||||
|  |     # Clear already installed langpacks | ||||||
|  |     mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR | ||||||
|  |     if [ -f $FEDORA_LANGPACK_CONFIG ]; then | ||||||
|  |         rm `cat $FEDORA_LANGPACK_CONFIG` > /dev/null 2>&1 | ||||||
|  |         rm $FEDORA_LANGPACK_CONFIG > /dev/null 2>&1 | ||||||
|  |         # remove all empty langpacks dirs while they block installation of langpacks | ||||||
|  |         rmdir $MOZ_EXTENSIONS_PROFILE_DIR/langpack* > /dev/null 2>&1 | ||||||
|  |     fi | ||||||
|  | 
 | ||||||
|  |     # Get locale from system | ||||||
|  |     CURRENT_LOCALE=$LC_ALL | ||||||
|  |     CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES} | ||||||
|  |     CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG} | ||||||
|  | 
 | ||||||
|  |     # Try with a local variant first, then without a local variant | ||||||
|  |     SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g" | sed "s|\..*||g"` | ||||||
|  |     MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g" | sed "s|\..*||g"` | ||||||
|  | 
 | ||||||
|  |     function create_langpack_link() { | ||||||
|  |         local language=$* | ||||||
|  |         local langpack=langpack-${language}@firefox.mozilla.org.xpi | ||||||
|  |         if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then | ||||||
|  |             rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack | ||||||
|  |             # If the target file is a symlink (the fallback langpack),  | ||||||
|  |             # install the original file instead of the fallback one | ||||||
|  |             if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then | ||||||
|  |                 langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack` | ||||||
|  |             fi | ||||||
|  |             ln -s $MOZ_LANGPACKS_DIR/$langpack \ | ||||||
|  |                   $MOZ_EXTENSIONS_PROFILE_DIR/$langpack | ||||||
|  |             echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG | ||||||
|  |             return 0 | ||||||
|  |         fi | ||||||
|  |         return 1 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     create_langpack_link $MOZLOCALE || create_langpack_link $SHORTMOZLOCALE || true | ||||||
|  | fi | ||||||
|  | 
 | ||||||
| # BEAST fix (rhbz#1005611) | # BEAST fix (rhbz#1005611) | ||||||
| NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1} | NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1} | ||||||
| export NSS_SSL_CBC_RANDOM_IV | export NSS_SSL_CBC_RANDOM_IV | ||||||
| @ -160,11 +276,17 @@ 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 | ||||||
| 
 | 
 | ||||||
| # Run the browser | # Run the browser | ||||||
|  | debugging=0 | ||||||
|  | if [ $debugging = 1 ] | ||||||
|  | then | ||||||
|  |   echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" | ||||||
|  | fi | ||||||
|  | 
 | ||||||
| exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" | exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								SOURCES/google-loc-api-key
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								SOURCES/google-loc-api-key
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | AIzaSyB2h2OuRcUgy5N-5hsZqiPW6sH3n_rptiQ | ||||||
| @ -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
									
								
								SOURCES/mozilla-1516803.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								SOURCES/mozilla-1516803.patch
									
									
									
									
									
										Normal 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
									
								
								SOURCES/mozilla-1669639.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								SOURCES/mozilla-1669639.patch
									
									
									
									
									
										Normal 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
									
								
								SOURCES/mozilla-1670333.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								SOURCES/mozilla-1670333.patch
									
									
									
									
									
										Normal 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
									
								
								SOURCES/mozilla-1775202.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								SOURCES/mozilla-1775202.patch
									
									
									
									
									
										Normal 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": | ||||||
|  | 
 | ||||||
| @ -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. */ | ||||||
|  | |||||||
| @ -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) { | ||||||
|  | |||||||
| @ -1,88 +0,0 @@ | |||||||
| # HG changeset patch |  | ||||||
| # Parent  36563351309ddbc6c29559ba50a41d005f925abb |  | ||||||
| Skia does not support big endian. The places to fix are too numerous and upstream (skia, not Mozilla) |  | ||||||
| has no interest in maintaining big endian. |  | ||||||
| So here we try to swizzle the input for skia, so that skia always works on LE, and when it comes |  | ||||||
| out again, we transform back to BE. |  | ||||||
| 
 |  | ||||||
| diff -r 36563351309d gfx/2d/ConvolutionFilter.cpp
 |  | ||||||
| --- a/gfx/2d/ConvolutionFilter.cpp	Mon Sep 09 17:59:28 2019 +0200
 |  | ||||||
| +++ b/gfx/2d/ConvolutionFilter.cpp	Tue Sep 10 08:25:13 2019 +0200
 |  | ||||||
| @@ -35,9 +35,38 @@
 |  | ||||||
|    return true; |  | ||||||
|  } |  | ||||||
|   |  | ||||||
| +static void ByteSwapArray(uint8_t *u8Array, int32_t size) {
 |  | ||||||
| +    uint32_t *array = reinterpret_cast<uint32_t*>(u8Array);
 |  | ||||||
| +    for (int pxl = 0; pxl < size; ++pxl) {
 |  | ||||||
| +        // Use an endian swap to move the bytes, i.e. BGRA -> ARGB.
 |  | ||||||
| +        uint32_t rgba = array[pxl];
 |  | ||||||
| +        array[pxl] = NativeEndian::swapToLittleEndian(rgba);
 |  | ||||||
| +    }
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
|  void ConvolutionFilter::ConvolveHorizontally(const uint8_t* aSrc, uint8_t* aDst, |  | ||||||
|                                               bool aHasAlpha) { |  | ||||||
| +#if MOZ_BIG_ENDIAN
 |  | ||||||
| +    int outputSize = mFilter->numValues();
 |  | ||||||
| +
 |  | ||||||
| +    // Input size isn't handed in, so we have to calculate it quickly
 |  | ||||||
| +    int inputSize = 0;
 |  | ||||||
| +    for (int xx = 0; xx < outputSize; ++xx) {
 |  | ||||||
| +        // Get the filter that determines the current output pixel.
 |  | ||||||
| +        int filterOffset, filterLength;
 |  | ||||||
| +        mFilter->FilterForValue(xx, &filterOffset, &filterLength);
 |  | ||||||
| +        inputSize = std::max(inputSize, filterOffset + filterLength);
 |  | ||||||
| +    }
 |  | ||||||
| +
 |  | ||||||
| +    ByteSwapArray((uint8_t*)aSrc, inputSize);
 |  | ||||||
| +#endif
 |  | ||||||
| +
 |  | ||||||
|    SkOpts::convolve_horizontally(aSrc, *mFilter, aDst, aHasAlpha); |  | ||||||
| +
 |  | ||||||
| +#if MOZ_BIG_ENDIAN
 |  | ||||||
| +    ByteSwapArray((uint8_t*)aSrc, inputSize);
 |  | ||||||
| +    ByteSwapArray(aDst, outputSize);
 |  | ||||||
| +#endif
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  void ConvolutionFilter::ConvolveVertically(uint8_t* const* aSrc, uint8_t* aDst, |  | ||||||
| @@ -49,8 +78,26 @@
 |  | ||||||
|    int32_t filterLength; |  | ||||||
|    auto filterValues = |  | ||||||
|        mFilter->FilterForValue(aRowIndex, &filterOffset, &filterLength); |  | ||||||
| +
 |  | ||||||
| +#if MOZ_BIG_ENDIAN
 |  | ||||||
| +  for (int filterY = 0; filterY < filterLength; filterY++) {
 |  | ||||||
| +      // Skia only knows LE, so we have to swizzle the input
 |  | ||||||
| +    ByteSwapArray(aSrc[filterY], aRowSize);
 |  | ||||||
| +  }
 |  | ||||||
| +#endif
 |  | ||||||
| +
 |  | ||||||
|    SkOpts::convolve_vertically(filterValues, filterLength, aSrc, aRowSize, aDst, |  | ||||||
|                                aHasAlpha); |  | ||||||
| +
 |  | ||||||
| +#if MOZ_BIG_ENDIAN
 |  | ||||||
| +  // After skia is finished, we swizzle back to BE, in case
 |  | ||||||
| +  // the input is used again somewhere else
 |  | ||||||
| +  for (int filterY = 0; filterY < filterLength; filterY++) {
 |  | ||||||
| +    ByteSwapArray(aSrc[filterY], aRowSize);
 |  | ||||||
| +  }
 |  | ||||||
| +  // The destination array as well
 |  | ||||||
| +  ByteSwapArray(aDst, aRowSize);
 |  | ||||||
| +#endif
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  /* ConvolutionFilter::ComputeResizeFactor is derived from Skia's |  | ||||||
| diff -r 36563351309d gfx/skia/skia/include/core/SkPreConfig.h
 |  | ||||||
| --- a/gfx/skia/skia/include/core/SkPreConfig.h	Mon Sep 09 17:59:28 2019 +0200
 |  | ||||||
| +++ b/gfx/skia/skia/include/core/SkPreConfig.h	Tue Sep 10 08:25:13 2019 +0200
 |  | ||||||
| @@ -73,7 +73,7 @@
 |  | ||||||
|        defined(__ppc__) || defined(__hppa) || \ |  | ||||||
|        defined(__PPC__) || defined(__PPC64__) || \ |  | ||||||
|        defined(_MIPSEB) || defined(__ARMEB__) || \ |  | ||||||
| -      defined(__s390__) || \
 |  | ||||||
| +      defined(__s390__) || defined(__s390x__) || \
 |  | ||||||
|        (defined(__sh__) && defined(__BIG_ENDIAN__)) || \ |  | ||||||
|        (defined(__ia64) && defined(__BIG_ENDIAN__)) |  | ||||||
|           #define SK_CPU_BENDIAN |  | ||||||
| @ -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); | ||||||
|  |          } | ||||||
|  |      } | ||||||
|  | |||||||
| @ -1,30 +0,0 @@ | |||||||
| # HG changeset patch |  | ||||||
| # Parent  46ea866ca3acb8bb5e1709ceb799b9c94f591dec |  | ||||||
| Problem description: Tab-titles that are too long to fit into a tab get faded out. |  | ||||||
|                      On big endian this is broken and instead of fading out, the  |  | ||||||
|                      tab gets white and the font transparent, leading to an unreadable |  | ||||||
|                      tab-title |  | ||||||
| Solution: This is not a real solution, but a hack. The real solution would have been |  | ||||||
|           to byte-swap the correct buffer, but I could not find it. |  | ||||||
|           So the next best thing is to deactivate the fading-effect. Now all tab-titles |  | ||||||
|           are readable, albeit not as pretty to look at as they could be.  |  | ||||||
| Side-effects: I have not yet found an unwanted side-effect. |  | ||||||
| 
 |  | ||||||
| diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
 |  | ||||||
| --- a/gfx/2d/DrawTargetSkia.cpp	Tue Oct 22 12:27:22 2019 +0200
 |  | ||||||
| +++ b/gfx/2d/DrawTargetSkia.cpp	Thu Oct 31 09:11:56 2019 +0100
 |  | ||||||
| @@ -1861,6 +1861,14 @@
 |  | ||||||
|        SkCanvas::kPreserveLCDText_SaveLayerFlag | |  | ||||||
|            (aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0)); |  | ||||||
|   |  | ||||||
| +#if MOZ_BIG_ENDIAN
 |  | ||||||
| +  // Pushing a layer where an aMask is defined produces wrong output.
 |  | ||||||
| +  // We _should_ endian swap the data, but I couldn't find a workable way to do so
 |  | ||||||
| +  // Therefore I deactivate those layers in the meantime.
 |  | ||||||
| +  // The result is: Tab-titles that are longer than the available space should be faded out.
 |  | ||||||
| +  //                The fading doesn't work, so we deactivate the fading-effect here.
 |  | ||||||
| +  if (!aMask)
 |  | ||||||
| +#endif
 |  | ||||||
|    mCanvas->saveLayer(saveRec); |  | ||||||
|   |  | ||||||
|    SetPermitSubpixelAA(aOpaque); |  | ||||||
| @ -1,12 +0,0 @@ | |||||||
| diff -up firefox-91.0/toolkit/components/extensions/schemas/runtime.json.mozilla-bmo1554971 firefox-91.0/toolkit/components/extensions/schemas/runtime.json
 |  | ||||||
| --- firefox-91.0/toolkit/components/extensions/schemas/runtime.json.mozilla-bmo1554971	2021-07-29 17:20:08.523253193 +0200
 |  | ||||||
| +++ firefox-91.0/toolkit/components/extensions/schemas/runtime.json	2021-07-29 17:21:23.517498581 +0200
 |  | ||||||
| @@ -64,7 +64,7 @@
 |  | ||||||
|        { |  | ||||||
|          "id": "PlatformArch", |  | ||||||
|          "type": "string", |  | ||||||
| -        "enum": ["aarch64", "arm", "ppc64", "s390x", "sparc64", "x86-32", "x86-64"],
 |  | ||||||
| +        "enum": ["aarch64", "arm", "ppc64", "ppc64le", "s390x", "sparc64", "x86-32", "x86-64"],
 |  | ||||||
|          "allowedContexts": ["content", "devtools"], |  | ||||||
|          "description": "The machine's processor architecture." |  | ||||||
|        }, |  | ||||||
| @ -1,28 +0,0 @@ | |||||||
| diff -r 6ef20eee3f8f gfx/layers/basic/BasicCompositor.cpp
 |  | ||||||
| --- a/gfx/layers/basic/BasicCompositor.cpp	Thu Oct 31 09:11:56 2019 +0100
 |  | ||||||
| +++ b/gfx/layers/basic/BasicCompositor.cpp	Wed Dec 11 16:16:09 2019 +0100
 |  | ||||||
| @@ -693,9 +693,13 @@
 |  | ||||||
|   |  | ||||||
|    RefPtr<SourceSurface> sourceMask; |  | ||||||
|    Matrix maskTransform; |  | ||||||
| +  // Setting an alpha-mask here breaks the URL-bar on big endian (s390x)
 |  | ||||||
| +  // if the typed URL is too long for the textbox (automatic scrolling needed)
 |  | ||||||
| +#if MOZ_LITTLE_ENDIAN
 |  | ||||||
|    if (aTransform.Is2D()) { |  | ||||||
|      SetupMask(aEffectChain, dest, offset, sourceMask, maskTransform); |  | ||||||
|    } |  | ||||||
| +#endif
 |  | ||||||
|   |  | ||||||
|    CompositionOp blendMode = CompositionOp::OP_OVER; |  | ||||||
|    if (Effect* effect = |  | ||||||
| diff -r 6ef20eee3f8f gfx/layers/composite/CompositableHost.cpp
 |  | ||||||
| --- a/gfx/layers/composite/CompositableHost.cpp	Thu Oct 31 09:11:56 2019 +0100
 |  | ||||||
| +++ b/gfx/layers/composite/CompositableHost.cpp	Wed Dec 11 16:16:09 2019 +0100
 |  | ||||||
| @@ -91,6 +91,7 @@
 |  | ||||||
|    } |  | ||||||
|    MOZ_ASSERT(source); |  | ||||||
|   |  | ||||||
| +  // Alternatively: Comment out these lines where the alpha-mask is set
 |  | ||||||
|    RefPtr<EffectMask> effect = |  | ||||||
|        new EffectMask(source, source->GetSize(), aTransform); |  | ||||||
|    aEffects.mSecondaryEffects[EffectTypes::MASK] = effect; |  | ||||||
| @ -1,86 +0,0 @@ | |||||||
| # HG changeset patch |  | ||||||
| # User msirringhaus@suse.de |  | ||||||
| # Date 1582805876 -3600 |  | ||||||
| #      Thu Feb 27 13:17:56 2020 +0100 |  | ||||||
| # Node ID cc3d09abea31068e57f1ab918782f9f86fc6a158 |  | ||||||
| # Parent  9cd90914846f667f18babc491a74c164ae5d6e9f |  | ||||||
| imported patch decoder_workaround.patch |  | ||||||
| 
 |  | ||||||
| diff -r 9cd90914846f image/decoders/nsGIFDecoder2.cpp
 |  | ||||||
| --- a/image/decoders/nsGIFDecoder2.cpp	Thu Feb 27 12:57:14 2020 +0100
 |  | ||||||
| +++ b/image/decoders/nsGIFDecoder2.cpp	Fri Mar 27 13:06:18 2020 +0100
 |  | ||||||
| @@ -422,6 +422,9 @@
 |  | ||||||
|    MOZ_ASSERT(mSwizzleFn); |  | ||||||
|    uint8_t* data = reinterpret_cast<uint8_t*>(aColormap); |  | ||||||
|    mSwizzleFn(data, data, aColors); |  | ||||||
| +#if MOZ_BIG_ENDIAN()
 |  | ||||||
| +  SwizzleRow(SurfaceFormat::A8R8G8B8, SurfaceFormat::B8G8R8A8)(data, data, aColors);
 |  | ||||||
| +#endif
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  LexerResult nsGIFDecoder2::DoDecode(SourceBufferIterator& aIterator, |  | ||||||
| diff -r 9cd90914846f image/decoders/nsJPEGDecoder.cpp
 |  | ||||||
| --- a/image/decoders/nsJPEGDecoder.cpp	Thu Feb 27 12:57:14 2020 +0100
 |  | ||||||
| +++ b/image/decoders/nsJPEGDecoder.cpp	Fri Mar 27 13:06:18 2020 +0100
 |  | ||||||
| @@ -263,6 +263,9 @@
 |  | ||||||
|          case JCS_YCbCr: |  | ||||||
|            // By default, we will output directly to BGRA. If we need to apply |  | ||||||
|            // special color transforms, this may change. |  | ||||||
| +#if MOZ_BIG_ENDIAN()
 |  | ||||||
| +          mInfo.out_color_space = MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB;
 |  | ||||||
| +#else
 |  | ||||||
|            switch (SurfaceFormat::OS_RGBX) { |  | ||||||
|              case SurfaceFormat::B8G8R8X8: |  | ||||||
|                mInfo.out_color_space = JCS_EXT_BGRX; |  | ||||||
| @@ -277,6 +280,7 @@
 |  | ||||||
|                mState = JPEG_ERROR; |  | ||||||
|                return Transition::TerminateFailure(); |  | ||||||
|            } |  | ||||||
| +#endif
 |  | ||||||
|            break; |  | ||||||
|          case JCS_CMYK: |  | ||||||
|          case JCS_YCCK: |  | ||||||
| diff -r 9cd90914846f image/decoders/nsPNGDecoder.cpp
 |  | ||||||
| --- a/image/decoders/nsPNGDecoder.cpp	Thu Feb 27 12:57:14 2020 +0100
 |  | ||||||
| +++ b/image/decoders/nsPNGDecoder.cpp	Fri Mar 27 13:06:18 2020 +0100
 |  | ||||||
| @@ -361,7 +361,7 @@
 |  | ||||||
|                                     IResumable* aOnResume) { |  | ||||||
|    MOZ_ASSERT(!HasError(), "Shouldn't call DoDecode after error!"); |  | ||||||
|   |  | ||||||
| -  return mLexer.Lex(aIterator, aOnResume,
 |  | ||||||
| +  LexerResult res = mLexer.Lex(aIterator, aOnResume,
 |  | ||||||
|                      [=](State aState, const char* aData, size_t aLength) { |  | ||||||
|                        switch (aState) { |  | ||||||
|                          case State::PNG_DATA: |  | ||||||
| @@ -371,6 +371,14 @@
 |  | ||||||
|                        } |  | ||||||
|                        MOZ_CRASH("Unknown State"); |  | ||||||
|                      }); |  | ||||||
| +
 |  | ||||||
| +#if MOZ_BIG_ENDIAN()
 |  | ||||||
| +  if(res.is<TerminalState>() && res.as<TerminalState>() == TerminalState::SUCCESS) {
 |  | ||||||
| +      NativeEndian::swapToLittleEndianInPlace<uint32_t>((uint32_t*)(mImageData), mImageDataLength / 4);
 |  | ||||||
| +  }
 |  | ||||||
| +#endif
 |  | ||||||
| +
 |  | ||||||
| +  return res;
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  LexerTransition<nsPNGDecoder::State> nsPNGDecoder::ReadPNGData( |  | ||||||
| diff -r 9cd90914846f image/decoders/nsWebPDecoder.cpp
 |  | ||||||
| --- a/image/decoders/nsWebPDecoder.cpp	Thu Feb 27 12:57:14 2020 +0100
 |  | ||||||
| +++ b/image/decoders/nsWebPDecoder.cpp	Fri Mar 27 13:06:18 2020 +0100
 |  | ||||||
| @@ -237,7 +237,12 @@
 |  | ||||||
|    // WebP doesn't guarantee that the alpha generated matches the hint in the |  | ||||||
|    // header, so we always need to claim the input is BGRA. If the output is |  | ||||||
|    // BGRX, swizzling will mask off the alpha channel. |  | ||||||
| +#if MOZ_BIG_ENDIAN()
 |  | ||||||
| +  mBuffer.colorspace = MODE_ARGB;
 |  | ||||||
| +  SurfaceFormat inFormat = mFormat;
 |  | ||||||
| +#else
 |  | ||||||
|    SurfaceFormat inFormat = SurfaceFormat::OS_RGBA; |  | ||||||
| +#endif
 |  | ||||||
|   |  | ||||||
|    SurfacePipeFlags pipeFlags = SurfacePipeFlags(); |  | ||||||
|    if (mFormat == SurfaceFormat::OS_RGBA && |  | ||||||
| 
 |  | ||||||
| @ -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: | ||||||
|  | |||||||
| @ -27,4 +27,3 @@ diff -r 506857dace0a -r 34676feac1a5 gfx/2d/FilterProcessing.h | |||||||
|   |   | ||||||
|  class FilterProcessing { |  class FilterProcessing { | ||||||
|   public: |   public: | ||||||
| 
 |  | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								SOURCES/mozilla-build-arm.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								SOURCES/mozilla-build-arm.patch
									
									
									
									
									
										Normal 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) | ||||||
| @ -1,36 +0,0 @@ | |||||||
| # HG changeset patch |  | ||||||
| # User msirringhaus@suse.de |  | ||||||
| # Date 1558452408 -7200 |  | ||||||
| #      Tue May 21 17:26:48 2019 +0200 |  | ||||||
| # Node ID 602e92722e765a3c238d3b96b26c0c8063b5eeb4 |  | ||||||
| # Parent  a3cc550d25e3a04d906f516928cbcbe50efd585e |  | ||||||
| [mq]: mozilla-s390-context.patch |  | ||||||
| 
 |  | ||||||
| diff -r a3cc550d25e3 -r 602e92722e76 js/src/wasm/WasmSignalHandlers.cpp
 |  | ||||||
| --- a/js/src/wasm/WasmSignalHandlers.cpp	Tue May 21 17:22:06 2019 +0200
 |  | ||||||
| +++ b/js/src/wasm/WasmSignalHandlers.cpp	Tue May 21 17:26:48 2019 +0200
 |  | ||||||
| @@ -154,6 +154,10 @@
 |  | ||||||
|  #    define R01_sig(p) ((p)->uc_mcontext.gp_regs[1]) |  | ||||||
|  #    define R32_sig(p) ((p)->uc_mcontext.gp_regs[32]) |  | ||||||
|  #  endif |  | ||||||
| +#  if defined(__linux__) && defined(__s390x__)
 |  | ||||||
| +#    define GR_sig(p,x) ((p)->uc_mcontext.gregs[x])
 |  | ||||||
| +#    define PSWa_sig(p) ((p)->uc_mcontext.psw.addr)
 |  | ||||||
| +#  endif
 |  | ||||||
|  #elif defined(__NetBSD__) |  | ||||||
|  #  define EIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EIP]) |  | ||||||
|  #  define EBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EBP]) |  | ||||||
| @@ -385,8 +389,13 @@
 |  | ||||||
|  #  define PC_sig(p) R32_sig(p) |  | ||||||
|  #  define SP_sig(p) R01_sig(p) |  | ||||||
|  #  define FP_sig(p) R01_sig(p) |  | ||||||
| +#elif defined(__s390x__)
 |  | ||||||
| +# define PC_sig(p) PSWa_sig(p)
 |  | ||||||
| +# define SP_sig(p) GR_sig(p, 15)
 |  | ||||||
| +# define FP_sig(p) GR_sig(p, 11)
 |  | ||||||
|  #endif |  | ||||||
|   |  | ||||||
| +
 |  | ||||||
|  static void SetContextPC(CONTEXT* context, uint8_t* pc) { |  | ||||||
|  #ifdef PC_sig |  | ||||||
|    *reinterpret_cast<uint8_t**>(&PC_sig(context)) = pc; |  | ||||||
							
								
								
									
										51
									
								
								SOURCES/mozilla-s390x-skia-gradient.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								SOURCES/mozilla-s390x-skia-gradient.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | |||||||
|  | # HG changeset patch | ||||||
|  | # Parent  acf59ea86dd1d878b43920832093f082dcfc61c0 | ||||||
|  | 
 | ||||||
|  | diff -r acf59ea86dd1 gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp
 | ||||||
|  | --- a/gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp	Mon Mar 09 08:26:10 2020 +0100
 | ||||||
|  | +++ b/gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp	Fri Mar 27 13:30:28 2020 +0100
 | ||||||
|  | @@ -7,7 +7,7 @@
 | ||||||
|  |   | ||||||
|  |  #include "include/core/SkPaint.h" | ||||||
|  |  #include "src/shaders/gradients/Sk4fLinearGradient.h" | ||||||
|  | -
 | ||||||
|  | +#include "src/core/SkEndian.h"
 | ||||||
|  |  #include <cmath> | ||||||
|  |  #include <utility> | ||||||
|  |   | ||||||
|  | @@ -28,6 +28,9 @@
 | ||||||
|  |   | ||||||
|  |      while (n >= 4) { | ||||||
|  |          DstTraits<premul>::store4x(c0, c1, c2, c3, dst, bias0, bias1); | ||||||
|  | +#ifdef SK_CPU_BENDIAN
 | ||||||
|  | +        SkEndianSwap32s(dst, 4);
 | ||||||
|  | +#endif
 | ||||||
|  |          dst += 4; | ||||||
|  |   | ||||||
|  |          c0 = c0 + dc4; | ||||||
|  | @@ -37,12 +40,23 @@
 | ||||||
|  |          n -= 4; | ||||||
|  |      } | ||||||
|  |      if (n & 2) { | ||||||
|  | -        DstTraits<premul>::store(c0, dst++, bias0);
 | ||||||
|  | -        DstTraits<premul>::store(c1, dst++, bias1);
 | ||||||
|  | +        DstTraits<premul>::store(c0, dst, bias0);
 | ||||||
|  | +#ifdef SK_CPU_BENDIAN
 | ||||||
|  | +        *dst = SkEndianSwap32(*dst);
 | ||||||
|  | +#endif
 | ||||||
|  | +        ++dst;
 | ||||||
|  | +        DstTraits<premul>::store(c1, dst, bias1);
 | ||||||
|  | +#ifdef SK_CPU_BENDIAN
 | ||||||
|  | +        *dst = SkEndianSwap32(*dst);
 | ||||||
|  | +#endif
 | ||||||
|  | +        ++dst;
 | ||||||
|  |          c0 = c0 + dc2; | ||||||
|  |      } | ||||||
|  |      if (n & 1) { | ||||||
|  |          DstTraits<premul>::store(c0, dst, bias0); | ||||||
|  | +#ifdef SK_CPU_BENDIAN
 | ||||||
|  | +        *dst = SkEndianSwap32(*dst);
 | ||||||
|  | +#endif
 | ||||||
|  |      } | ||||||
|  |  } | ||||||
|  |   | ||||||
| @ -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 - |  | ||||||
|  | |||||||
							
								
								
									
										34
									
								
								SOURCES/one_swizzle_to_rule_them_all.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								SOURCES/one_swizzle_to_rule_them_all.patch
									
									
									
									
									
										Normal 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
									
								
								SOURCES/pgo.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								SOURCES/pgo.patch
									
									
									
									
									
										Normal 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
									
								
								SOURCES/print-error-reftest
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										13
									
								
								SOURCES/print-error-reftest
									
									
									
									
									
										Executable 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
									
								
								SOURCES/print-errors
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								SOURCES/print-errors
									
									
									
									
									
										Executable 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
									
								
								SOURCES/print_failures
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								SOURCES/print_failures
									
									
									
									
									
										Executable 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
									
								
								SOURCES/print_results
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										10
									
								
								SOURCES/print_results
									
									
									
									
									
										Executable 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
									
								
								SOURCES/psummary
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										23
									
								
								SOURCES/psummary
									
									
									
									
									
										Executable 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" | ||||||
							
								
								
									
										23
									
								
								SOURCES/rhbz-1219542-s390-build.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								SOURCES/rhbz-1219542-s390-build.patch
									
									
									
									
									
										Normal 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
									
								
								SOURCES/rhbz-1354671.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								SOURCES/rhbz-1354671.patch
									
									
									
									
									
										Normal 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
									
								
								SOURCES/run-tests-wayland
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										80
									
								
								SOURCES/run-tests-wayland
									
									
									
									
									
										Executable 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
									
								
								SOURCES/run-tests-x11
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										39
									
								
								SOURCES/run-tests-x11
									
									
									
									
									
										Executable 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
									
								
								SOURCES/run-wayland-compositor
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										50
									
								
								SOURCES/run-wayland-compositor
									
									
									
									
									
										Executable 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" | ||||||
							
								
								
									
										29
									
								
								SOURCES/svg-rendering.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								SOURCES/svg-rendering.patch
									
									
									
									
									
										Normal 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. | ||||||
							
								
								
									
										1101
									
								
								SPECS/firefox.spec
									
									
									
									
									
								
							
							
						
						
									
										1101
									
								
								SPECS/firefox.spec
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user