This commit is contained in:
Martin Stransky 2022-02-08 12:42:36 +01:00
parent be5c6d4f08
commit 16e6b6b266
14 changed files with 51 additions and 2244 deletions

2
.gitignore vendored
View File

@ -491,3 +491,5 @@ firefox-3.6.4.source.tar.bz2
/firefox-96.0.1.source.tar.xz /firefox-96.0.1.source.tar.xz
/firefox-96.0.3.source.tar.xz /firefox-96.0.3.source.tar.xz
/firefox-langpacks-96.0.3-20220131.tar.xz /firefox-langpacks-96.0.3-20220131.tar.xz
/firefox-97.0.source.tar.xz
/firefox-langpacks-97.0-20220208.tar.xz

View File

@ -1,18 +0,0 @@
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -2946,7 +2946,12 @@
uint32_t timestamp = GDK_CURRENT_TIME;
nsGTKToolkit* GTKToolkit = nsGTKToolkit::GetToolkit();
- if (GTKToolkit) timestamp = GTKToolkit->GetFocusTimestamp();
+ if (GTKToolkit) {
+ timestamp = GTKToolkit->GetFocusTimestamp();
+ }
+ if (!timestamp) {
+ timestamp = GetLastUserInputTime();
+ }
LOG(" requesting toplevel activation [%p]\n", (void*)toplevelWindow);
gtk_window_present_with_time(GTK_WINDOW(toplevelWindow->mShell),

View File

@ -1,197 +0,0 @@
diff --git a/widget/gtk/nsGtkKeyUtils.h b/widget/gtk/nsGtkKeyUtils.h
--- a/widget/gtk/nsGtkKeyUtils.h
+++ b/widget/gtk/nsGtkKeyUtils.h
@@ -202,6 +202,22 @@
* from xkb_keymap. We call that from Wayland backend routines.
*/
static void SetModifierMasks(xkb_keymap* aKeymap);
+
+ /**
+ * Wayland global focus handlers
+ */
+ static void SetFocusIn(wl_surface* aFocusSurface, uint32_t aFocusSerial);
+ static void SetFocusOut(wl_surface* aFocusSurface);
+ static void GetFocusInfo(wl_surface** aFocusSurface, uint32_t* aFocusSerial);
+
+ static void SetSeat(wl_seat* aSeat);
+ static wl_seat* GetSeat();
+
+ /**
+ * EnsureInstance() is provided on Wayland to register Wayland callbacks
+ * early.
+ */
+ static void EnsureInstance();
#endif
/**
@@ -467,6 +483,12 @@
void SetModifierMask(xkb_keymap* aKeymap, ModifierIndex aModifierIndex,
const char* aModifierName);
#endif
+
+#ifdef MOZ_WAYLAND
+ wl_seat* mSeat = nullptr;
+ wl_surface* mFocusSurface = nullptr;
+ uint32_t mFocusSerial = 0;
+#endif
};
} // namespace widget
diff --git a/widget/gtk/nsGtkKeyUtils.cpp b/widget/gtk/nsGtkKeyUtils.cpp
--- a/widget/gtk/nsGtkKeyUtils.cpp
+++ b/widget/gtk/nsGtkKeyUtils.cpp
@@ -331,6 +331,10 @@
return sInstance;
}
+#ifdef MOZ_WAYLAND
+void KeymapWrapper::EnsureInstance() { (void)GetInstance(); }
+#endif
+
/* static */
void KeymapWrapper::Shutdown() {
if (sInstance) {
@@ -720,10 +724,15 @@
static void keyboard_handle_enter(void* data, struct wl_keyboard* keyboard,
uint32_t serial, struct wl_surface* surface,
- struct wl_array* keys) {}
+ struct wl_array* keys) {
+ KeymapWrapper::SetFocusIn(surface, serial);
+}
+
static void keyboard_handle_leave(void* data, struct wl_keyboard* keyboard,
uint32_t serial, struct wl_surface* surface) {
+ KeymapWrapper::SetFocusOut(surface);
}
+
static void keyboard_handle_key(void* data, struct wl_keyboard* keyboard,
uint32_t serial, uint32_t time, uint32_t key,
uint32_t state) {}
@@ -760,6 +769,7 @@
if (strcmp(interface, "wl_seat") == 0) {
auto* seat =
WaylandRegistryBind<wl_seat>(registry, id, &wl_seat_interface, 1);
+ KeymapWrapper::SetSeat(seat);
wl_seat_add_listener(seat, &seat_listener, data);
}
}
@@ -2411,5 +2421,40 @@
altLatinCharCodes.mShiftedCharCode));
}
+#ifdef MOZ_WAYLAND
+void KeymapWrapper::SetFocusIn(wl_surface* aFocusSurface,
+ uint32_t aFocusSerial) {
+ KeymapWrapper* keymapWrapper = KeymapWrapper::GetInstance();
+ keymapWrapper->mFocusSurface = aFocusSurface;
+ keymapWrapper->mFocusSerial = aFocusSerial;
+}
+
+void KeymapWrapper::SetFocusOut(wl_surface* aFocusSurface) {
+ KeymapWrapper* keymapWrapper = KeymapWrapper::GetInstance();
+ if (aFocusSurface == keymapWrapper->mFocusSurface) {
+ keymapWrapper->mFocusSurface = nullptr;
+ keymapWrapper->mFocusSerial = 0;
+ }
+}
+
+void KeymapWrapper::GetFocusInfo(wl_surface** aFocusSurface,
+ uint32_t* aFocusSerial) {
+ KeymapWrapper* keymapWrapper = KeymapWrapper::GetInstance();
+ *aFocusSurface = keymapWrapper->mFocusSurface;
+ *aFocusSerial = keymapWrapper->mFocusSerial;
+}
+
+void KeymapWrapper::SetSeat(wl_seat* aSeat) {
+ KeymapWrapper* keymapWrapper = KeymapWrapper::GetInstance();
+ keymapWrapper->mSeat = aSeat;
+}
+
+wl_seat* KeymapWrapper::GetSeat() {
+ KeymapWrapper* keymapWrapper = KeymapWrapper::GetInstance();
+ return keymapWrapper->mSeat;
+}
+
+#endif
+
} // namespace widget
} // namespace mozilla
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -2862,8 +2862,7 @@
};
void nsWindow::RequestFocusWaylandWindow(RefPtr<nsWindow> aWindow) {
- LOG("nsWindow::RequestWindowFocusWayland(%p) gFocusWindow [%p]",
- (void*)aWindow, gFocusWindow);
+ LOG("nsWindow::RequestWindowFocusWayland(%p)", (void*)aWindow);
RefPtr<nsWaylandDisplay> display = WaylandDisplayGet();
xdg_activation_v1* xdg_activation = display->GetXdgActivation();
@@ -2872,17 +2871,11 @@
return;
}
- // We use xdg-activation protocol to transfer focus from gFocusWindow to
- // aWindow. Quit if no window is focused.
- if (gFocusWindow != this) {
- LOG(" there isn't any focused window to transfer focus from, quit.");
- return;
- }
-
- wl_surface* surface =
- mGdkWindow ? gdk_wayland_window_get_wl_surface(mGdkWindow) : nullptr;
- if (!surface) {
- LOG(" requesting window is hidden/unmapped, quit.");
+ wl_surface* focusSurface;
+ uint32_t focusSerial;
+ KeymapWrapper::GetFocusInfo(&focusSurface, &focusSerial);
+ if (!focusSurface) {
+ LOG(" We're missing focused window, quit.");
return;
}
@@ -2894,9 +2887,9 @@
// callback.
xdg_activation_token_v1_add_listener(aWindow->mXdgToken, &token_listener,
do_AddRef(aWindow).take());
- xdg_activation_token_v1_set_serial(aWindow->mXdgToken, GetLastUserInputTime(),
- display->GetSeat());
- xdg_activation_token_v1_set_surface(aWindow->mXdgToken, surface);
+ xdg_activation_token_v1_set_serial(aWindow->mXdgToken, focusSerial,
+ KeymapWrapper::GetSeat());
+ xdg_activation_token_v1_set_surface(aWindow->mXdgToken, focusSurface);
xdg_activation_token_v1_commit(aWindow->mXdgToken);
}
#endif
@@ -2959,11 +2952,7 @@
#ifdef MOZ_WAYLAND
if (GdkIsWaylandDisplay()) {
- if (gFocusWindow) {
- gFocusWindow->RequestFocusWaylandWindow(toplevelWindow);
- } else {
- LOG(" RequestFocusWaylandWindow(): we're missing focused window!");
- }
+ RequestFocusWaylandWindow(toplevelWindow);
}
#endif
if (GTKToolkit) GTKToolkit->SetFocusTimestamp(0);
@@ -5359,6 +5348,14 @@
a11y::PreInit();
#endif
+#ifdef MOZ_WAYLAND
+ // Ensure that KeymapWrapper is created on Wayland as we need it for
+ // keyboard focus tracking.
+ if (GdkIsWaylandDisplay()) {
+ KeymapWrapper::EnsureInstance();
+ }
+#endif
+
// Ensure that the toolkit is created.
nsGTKToolkit::GetToolkit();

View File

@ -1,31 +0,0 @@
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -2879,6 +2879,10 @@
return;
}
+ LOG(" requesting xdg-activation token, surface ID %d serial %d seat ID %d",
+ wl_proxy_get_id((struct wl_proxy*)focusSurface), focusSerial,
+ wl_proxy_get_id((struct wl_proxy*)KeymapWrapper::GetSeat()));
+
// Store activation token at activated window for further release.
g_clear_pointer(&aWindow->mXdgToken, xdg_activation_token_v1_destroy);
aWindow->mXdgToken = xdg_activation_v1_get_activation_token(xdg_activation);
@@ -2941,6 +2945,7 @@
nsGTKToolkit* GTKToolkit = nsGTKToolkit::GetToolkit();
if (GTKToolkit) {
timestamp = GTKToolkit->GetFocusTimestamp();
+ GTKToolkit->SetFocusTimestamp(0);
}
if (!timestamp) {
timestamp = GetLastUserInputTime();
@@ -2955,7 +2960,6 @@
RequestFocusWaylandWindow(toplevelWindow);
}
#endif
- if (GTKToolkit) GTKToolkit->SetFocusTimestamp(0);
}
return;
}

View File

@ -1,119 +0,0 @@
diff --git a/widget/gtk/nsGtkKeyUtils.cpp b/widget/gtk/nsGtkKeyUtils.cpp
--- a/widget/gtk/nsGtkKeyUtils.cpp
+++ b/widget/gtk/nsGtkKeyUtils.cpp
@@ -2424,17 +2424,23 @@
#ifdef MOZ_WAYLAND
void KeymapWrapper::SetFocusIn(wl_surface* aFocusSurface,
uint32_t aFocusSerial) {
+ LOGW("KeymapWrapper::SetFocusIn() surface %p ID %d serial %d", aFocusSurface,
+ aFocusSurface ? wl_proxy_get_id((struct wl_proxy*)aFocusSurface) : 0,
+ aFocusSerial);
+
KeymapWrapper* keymapWrapper = KeymapWrapper::GetInstance();
keymapWrapper->mFocusSurface = aFocusSurface;
keymapWrapper->mFocusSerial = aFocusSerial;
}
+// aFocusSurface can be null in case that focused surface is already destroyed.
void KeymapWrapper::SetFocusOut(wl_surface* aFocusSurface) {
KeymapWrapper* keymapWrapper = KeymapWrapper::GetInstance();
- if (aFocusSurface == keymapWrapper->mFocusSurface) {
- keymapWrapper->mFocusSurface = nullptr;
- keymapWrapper->mFocusSerial = 0;
- }
+ LOGW("KeymapWrapper::SetFocusOut surface %p ID %d", aFocusSurface,
+ aFocusSurface ? wl_proxy_get_id((struct wl_proxy*)aFocusSurface) : 0);
+
+ keymapWrapper->mFocusSurface = nullptr;
+ keymapWrapper->mFocusSerial = 0;
}
void KeymapWrapper::GetFocusInfo(wl_surface** aFocusSurface,
@@ -2453,7 +2459,6 @@
KeymapWrapper* keymapWrapper = KeymapWrapper::GetInstance();
return keymapWrapper->mSeat;
}
-
#endif
} // namespace widget
diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
--- a/widget/gtk/nsWindow.h
+++ b/widget/gtk/nsWindow.h
@@ -386,8 +386,7 @@
#ifdef MOZ_WAYLAND
// Use xdg-activation protocol to transfer focus from gFocusWindow to aWindow.
- // RequestFocusWaylandWindow needs to be called on focused window only.
- void RequestFocusWaylandWindow(RefPtr<nsWindow> aWindow);
+ static void RequestFocusWaylandWindow(RefPtr<nsWindow> aWindow);
void FocusWaylandWindow(const char* aTokenID);
bool GetCSDDecorationOffset(int* aDx, int* aDy);
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -2845,6 +2845,9 @@
return;
}
+ LOG(" requesting xdg-activation, surface ID %d",
+ wl_proxy_get_id((struct wl_proxy*)surface));
+
xdg_activation_v1* xdg_activation = WaylandDisplayGet()->GetXdgActivation();
xdg_activation_v1_activate(xdg_activation, aTokenID, surface);
}
@@ -2862,12 +2865,17 @@
};
void nsWindow::RequestFocusWaylandWindow(RefPtr<nsWindow> aWindow) {
- LOG("nsWindow::RequestWindowFocusWayland(%p)", (void*)aWindow);
+ LOGW("nsWindow::RequestFocusWaylandWindow(%p) gFocusWindow %p",
+ (void*)aWindow, gFocusWindow);
+
+ if (!gFocusWindow) {
+ LOGW(" missing gFocusWindow, quit.");
+ }
RefPtr<nsWaylandDisplay> display = WaylandDisplayGet();
xdg_activation_v1* xdg_activation = display->GetXdgActivation();
if (!xdg_activation) {
- LOG(" xdg-activation is missing, quit.");
+ LOGW(" xdg-activation is missing, quit.");
return;
}
@@ -2875,13 +2883,25 @@
uint32_t focusSerial;
KeymapWrapper::GetFocusInfo(&focusSurface, &focusSerial);
if (!focusSurface) {
- LOG(" We're missing focused window, quit.");
- return;
- }
-
- LOG(" requesting xdg-activation token, surface ID %d serial %d seat ID %d",
- wl_proxy_get_id((struct wl_proxy*)focusSurface), focusSerial,
- wl_proxy_get_id((struct wl_proxy*)KeymapWrapper::GetSeat()));
+ LOGW(" We're missing focused window, quit.");
+ return;
+ }
+
+ GdkWindow* gdkWindow = gtk_widget_get_window(gFocusWindow->mShell);
+ wl_surface* surface =
+ gdkWindow ? gdk_wayland_window_get_wl_surface(gdkWindow) : nullptr;
+ if (focusSurface != surface) {
+ LOGW(" focused surface %p and gFocusWindow surface %p don't match, quit.",
+ focusSurface, surface);
+ return;
+ }
+
+ LOGW(
+ " requesting xdg-activation token, surface %p ID %d serial %d seat ID "
+ "%d",
+ focusSurface,
+ focusSurface ? wl_proxy_get_id((struct wl_proxy*)focusSurface) : 0,
+ focusSerial, wl_proxy_get_id((struct wl_proxy*)KeymapWrapper::GetSeat()));
// Store activation token at activated window for further release.
g_clear_pointer(&aWindow->mXdgToken, xdg_activation_token_v1_destroy);

View File

@ -1,33 +0,0 @@
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -2868,7 +2868,7 @@
LOGW("nsWindow::RequestFocusWaylandWindow(%p) gFocusWindow %p",
(void*)aWindow, gFocusWindow);
- if (!gFocusWindow) {
+ if (!gFocusWindow || gFocusWindow->IsDestroyed()) {
LOGW(" missing gFocusWindow, quit.");
}
@@ -2883,13 +2883,16 @@
uint32_t focusSerial;
KeymapWrapper::GetFocusInfo(&focusSurface, &focusSerial);
if (!focusSurface) {
- LOGW(" We're missing focused window, quit.");
+ LOGW(" We're missing KeymapWrapper focused window, quit.");
return;
}
GdkWindow* gdkWindow = gtk_widget_get_window(gFocusWindow->mShell);
- wl_surface* surface =
- gdkWindow ? gdk_wayland_window_get_wl_surface(gdkWindow) : nullptr;
+ if (!gdkWindow) {
+ LOGW(" gFocusWindow is not mapped, quit.");
+ return;
+ }
+ wl_surface* surface = gdk_wayland_window_get_wl_surface(gdkWindow);
if (focusSurface != surface) {
LOGW(" focused surface %p and gFocusWindow surface %p don't match, quit.",
focusSurface, surface);

View File

@ -1,12 +0,0 @@
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -2870,6 +2870,7 @@
if (!gFocusWindow || gFocusWindow->IsDestroyed()) {
LOGW(" missing gFocusWindow, quit.");
+ return;
}
RefPtr<nsWaylandDisplay> display = WaylandDisplayGet();

View File

@ -1,21 +0,0 @@
diff -up firefox-72.0.2/js/src/wasm/WasmSignalHandlers.cpp.old firefox-72.0.2/js/src/wasm/WasmSignalHandlers.cpp
--- firefox-72.0.2/js/src/wasm/WasmSignalHandlers.cpp.old 2020-01-17 23:34:41.000000000 +0200
+++ firefox-72.0.2/js/src/wasm/WasmSignalHandlers.cpp 2020-02-02 08:07:54.670341986 +0200
@@ -249,7 +249,16 @@ using mozilla::DebugOnly;
#endif
#ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
-# include <sys/user.h>
+struct user_vfp {
+ unsigned long long fpregs[32];
+ unsigned long fpscr;
+};
+
+struct user_vfp_exc {
+ unsigned long fpexc;
+ unsigned long fpinst;
+ unsigned long fpinst2;
+};
#endif
#if defined(ANDROID)

View File

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

File diff suppressed because one or more lines are too long

View File

@ -126,7 +126,7 @@ ExcludeArch: aarch64
%if %{?system_nss} %if %{?system_nss}
%global nspr_version 4.26 %global nspr_version 4.26
%global nspr_build_version %{nspr_version} %global nspr_build_version %{nspr_version}
%global nss_version 3.73 %global nss_version 3.74
%global nss_build_version %{nss_version} %global nss_build_version %{nss_version}
%endif %endif
@ -162,13 +162,13 @@ ExcludeArch: aarch64
Summary: Mozilla Firefox Web browser Summary: Mozilla Firefox Web browser
Name: firefox Name: firefox
Version: 96.0.3 Version: 97.0
Release: 1%{?pre_tag}%{?dist} Release: 1%{?pre_tag}%{?dist}
URL: https://www.mozilla.org/firefox/ URL: https://www.mozilla.org/firefox/
License: MPLv1.1 or GPLv2+ or LGPLv2+ License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
%if %{with langpacks} %if %{with langpacks}
Source1: firefox-langpacks-%{version}%{?pre_version}-20220131.tar.xz Source1: firefox-langpacks-%{version}%{?pre_version}-20220208.tar.xz
%endif %endif
Source2: cbindgen-vendor.tar.xz Source2: cbindgen-vendor.tar.xz
Source10: firefox-mozconfig Source10: firefox-mozconfig
@ -210,16 +210,14 @@ Patch41: build-disable-elfhack.patch
Patch44: build-arm-libopus.patch Patch44: build-arm-libopus.patch
Patch46: firefox-nss-version.patch Patch46: firefox-nss-version.patch
Patch47: fedora-shebang-build.patch Patch47: fedora-shebang-build.patch
#Patch48: build-arm-wasm.patch
Patch49: build-arm-libaom.patch Patch49: build-arm-libaom.patch
Patch53: firefox-gcc-build.patch Patch53: firefox-gcc-build.patch
# This should be fixed in Firefox 83
Patch54: mozilla-1669639.patch Patch54: mozilla-1669639.patch
Patch55: firefox-testing.patch Patch55: firefox-testing.patch
Patch57: firefox-disable-ffvpx-with-vapi.patch Patch57: firefox-disable-ffvpx-with-vapi.patch
Patch61: firefox-glibc-dynstack.patch Patch61: firefox-glibc-dynstack.patch
Patch62: build-python.patch Patch62: build-python.patch
Patch63: build-python-glean.patch Patch64: mozilla-1753402.patch
# Test patches # Test patches
# Generate without context by # Generate without context by
@ -244,13 +242,6 @@ Patch402: mozilla-1196777.patch
Patch407: mozilla-1667096.patch Patch407: mozilla-1667096.patch
Patch408: mozilla-1663844.patch Patch408: mozilla-1663844.patch
Patch415: mozilla-1670333.patch Patch415: mozilla-1670333.patch
# xdg-activation backports from 97.0
Patch421: D132929.diff
Patch422: D133209.diff
Patch423: D133485.diff
Patch424: D133634.diff
Patch425: D133885.diff
Patch426: D134141.diff
# PGO/LTO patches # PGO/LTO patches
Patch600: pgo.patch Patch600: pgo.patch
@ -465,8 +456,7 @@ This package contains results of tests executed during build.
%patch54 -p1 -b .1669639 %patch54 -p1 -b .1669639
%patch55 -p1 -b .testing %patch55 -p1 -b .testing
%patch57 -p1 -b .ffvpx-with-vapi %patch57 -p1 -b .ffvpx-with-vapi
%patch63 -p1 -b .build-python-glean.patch %patch64 -p1 -b .1753402
#%patch62 -p1 -b .build-python
# Test patches # Test patches
%patch100 -p1 -b .firefox-tests-xpcshell %patch100 -p1 -b .firefox-tests-xpcshell
@ -490,14 +480,6 @@ This package contains results of tests executed during build.
%patch408 -p1 -b .1663844 %patch408 -p1 -b .1663844
%patch415 -p1 -b .1670333 %patch415 -p1 -b .1670333
# xdg-activation backports from 97.0
%patch421 -p1 -b .D132929
%patch422 -p1 -b .D133209
%patch423 -p1 -b .D133485
%patch424 -p1 -b .D133634
%patch425 -p1 -b .D133885
%patch426 -p1 -b .D134141
# PGO patches # PGO patches
%if %{build_with_pgo} %if %{build_with_pgo}
%if !%{build_with_clang} %if !%{build_with_clang}
@ -1061,6 +1043,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#--------------------------------------------------------------------- #---------------------------------------------------------------------
%changelog %changelog
* Tue Feb 8 2022 Martin Stransky <stransky@redhat.com> - 97.0-1
- Updated to 97.0
* Mon Jan 31 2022 Martin Stransky <stransky@redhat.com> - 96.0.3-1 * Mon Jan 31 2022 Martin Stransky <stransky@redhat.com> - 96.0.3-1
- Updated to 96.0.3 - Updated to 96.0.3

View File

@ -1,18 +1,19 @@
diff -up firefox-94.0/media/ffvpx/libavcodec/codec_list.c.1667096 firefox-94.0/media/ffvpx/libavcodec/codec_list.c diff -up firefox-97.0/media/ffvpx/libavcodec/codec_list.c.1667096 firefox-97.0/media/ffvpx/libavcodec/codec_list.c
--- firefox-94.0/media/ffvpx/libavcodec/codec_list.c.1667096 2021-10-28 20:03:38.000000000 +0200 --- firefox-97.0/media/ffvpx/libavcodec/codec_list.c.1667096 2022-02-08 10:21:17.151809054 +0100
+++ firefox-94.0/media/ffvpx/libavcodec/codec_list.c 2021-11-01 11:02:50.898723802 +0100 +++ firefox-97.0/media/ffvpx/libavcodec/codec_list.c 2022-02-08 10:25:11.374078784 +0100
@@ -11,4 +11,8 @@ static const AVCodec * const codec_list[ @@ -11,6 +11,9 @@ static const AVCodec * const codec_list[
#if CONFIG_MP3_DECODER #if CONFIG_MP3_DECODER
&ff_mp3_decoder, &ff_mp3_decoder,
#endif #endif
+#ifdef CONFIG_LIBFDK_AAC +#ifdef CONFIG_LIBFDK_AAC
+ &ff_libfdk_aac_decoder, + &ff_libfdk_aac_decoder,
+#endif +#endif
+ #if CONFIG_AV1_DECODER
NULL }; &ff_av1_decoder,
diff -up firefox-94.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-94.0/media/ffvpx/libavcodec/libfdk-aacdec.c #endif
--- firefox-94.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 2021-11-01 11:02:50.899723835 +0100 diff -up firefox-97.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-97.0/media/ffvpx/libavcodec/libfdk-aacdec.c
+++ firefox-94.0/media/ffvpx/libavcodec/libfdk-aacdec.c 2021-11-01 11:02:50.899723835 +0100 --- firefox-97.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 2022-02-08 10:21:17.151809054 +0100
+++ firefox-97.0/media/ffvpx/libavcodec/libfdk-aacdec.c 2022-02-08 10:21:17.151809054 +0100
@@ -0,0 +1,409 @@ @@ -0,0 +1,409 @@
+/* +/*
+ * AAC decoder wrapper + * AAC decoder wrapper
@ -423,10 +424,10 @@ diff -up firefox-94.0/media/ffvpx/libavcodec/libfdk-aacdec.c.1667096 firefox-94.
+ FF_CODEC_CAP_INIT_CLEANUP, + FF_CODEC_CAP_INIT_CLEANUP,
+ .wrapper_name = "libfdk", + .wrapper_name = "libfdk",
+}; +};
diff -up firefox-94.0/media/ffvpx/libavcodec/moz.build.1667096 firefox-94.0/media/ffvpx/libavcodec/moz.build diff -up firefox-97.0/media/ffvpx/libavcodec/moz.build.1667096 firefox-97.0/media/ffvpx/libavcodec/moz.build
--- firefox-94.0/media/ffvpx/libavcodec/moz.build.1667096 2021-10-28 20:03:43.000000000 +0200 --- firefox-97.0/media/ffvpx/libavcodec/moz.build.1667096 2022-02-02 22:01:47.000000000 +0100
+++ firefox-94.0/media/ffvpx/libavcodec/moz.build 2021-11-01 11:02:50.899723835 +0100 +++ firefox-97.0/media/ffvpx/libavcodec/moz.build 2022-02-08 10:21:17.151809054 +0100
@@ -104,6 +104,12 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: @@ -111,6 +111,12 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']:
] ]
USE_LIBS += ['mozva'] USE_LIBS += ['mozva']
@ -439,14 +440,15 @@ diff -up firefox-94.0/media/ffvpx/libavcodec/moz.build.1667096 firefox-94.0/medi
if CONFIG['MOZ_LIBAV_FFT']: if CONFIG['MOZ_LIBAV_FFT']:
SOURCES += [ SOURCES += [
'avfft.c', 'avfft.c',
diff -up firefox-94.0/toolkit/moz.configure.1667096 firefox-94.0/toolkit/moz.configure diff -up firefox-97.0/toolkit/moz.configure.1667096 firefox-97.0/toolkit/moz.configure
--- firefox-94.0/toolkit/moz.configure.1667096 2021-11-01 11:02:50.899723835 +0100 --- firefox-97.0/toolkit/moz.configure.1667096 2022-02-08 10:21:17.152809035 +0100
+++ firefox-94.0/toolkit/moz.configure 2021-11-01 11:04:28.545873853 +0100 +++ firefox-97.0/toolkit/moz.configure 2022-02-08 10:24:31.734885827 +0100
@@ -1878,6 +1878,14 @@ with only_when(compile_environment): @@ -1969,6 +1969,15 @@ with only_when(compile_environment):
& jpeg_arm_neon_vld1q_u8_x4,
)
+# fdk aac support set_config("MOZ_SYSTEM_PNG", True, when="--with-system-png")
+# FDK AAC support
+# ==============================================================
+option('--with-system-fdk-aac', +option('--with-system-fdk-aac',
+ help='Use system libfdk-aac (located with pkgconfig)') + help='Use system libfdk-aac (located with pkgconfig)')
+ +

12
mozilla-1753402.patch Normal file
View File

@ -0,0 +1,12 @@
diff --git a/tools/profiler/rust-api/build.rs b/tools/profiler/rust-api/build.rs
--- a/tools/profiler/rust-api/build.rs
+++ b/tools/profiler/rust-api/build.rs
@@ -61,6 +61,7 @@
let mut builder = Builder::default()
.enable_cxx_namespaces()
.with_codegen_config(CodegenConfig::TYPES | CodegenConfig::VARS | CodegenConfig::FUNCTIONS)
+ .disable_untagged_union()
.size_t_is_usize(true);
for dir in SEARCH_PATHS.iter() {

View File

@ -1,4 +1,4 @@
SHA512 (cbindgen-vendor.tar.xz) = b9ab1498be90ecf60822df7021f8812f124550d97f8cd687c69d3ab56fc5fb714bfe88c78c978a1794d211724909a9a5cad6a4b483fa05f762909c45d5075520 SHA512 (cbindgen-vendor.tar.xz) = b9ab1498be90ecf60822df7021f8812f124550d97f8cd687c69d3ab56fc5fb714bfe88c78c978a1794d211724909a9a5cad6a4b483fa05f762909c45d5075520
SHA512 (mochitest-python.tar.gz) = 18e1aeb475df5fbf1fe3838897d5ac2f3114aa349030713fc2be27af087b1b12f57642621b87bd052f324a7cb7fbae5f36b21502191d85692f62c8cdd69c8bf2 SHA512 (mochitest-python.tar.gz) = 18e1aeb475df5fbf1fe3838897d5ac2f3114aa349030713fc2be27af087b1b12f57642621b87bd052f324a7cb7fbae5f36b21502191d85692f62c8cdd69c8bf2
SHA512 (firefox-96.0.3.source.tar.xz) = 3dd5fbc96e369d5f4fb3eca778c2bd3e2313d089f867de9fac3556810a797e9b5629ef1b8840fb2f22a18df7de95ea1993eee052f691d861a555cea544b05966 SHA512 (firefox-97.0.source.tar.xz) = a913695a42cb06ee9bda2a20e65cc573e40ca93e9f75b7ee0a43ebd1935b371e7e80d5fc8d5f126ad0712ab848635a8624bbeed43807e5c179537aa32c884186
SHA512 (firefox-langpacks-96.0.3-20220131.tar.xz) = 2c44690ed3ba6a0ba0ccb621598f8d6c619308b9a24cc6b39317603450e33b356b73d5c6ec41a34765c749067f7cd3c842ff0688b9d921377284671dc008de8a SHA512 (firefox-langpacks-97.0-20220208.tar.xz) = 40c15f6c30566268fbc9c148d70f48bbf9f029b5d13c263e8e97917c96823d6bda552b1fd18e3f778117187c7fe44da0343dfd228bf66648a259e13cb1f94f28