summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firefox.spec7
-rw-r--r--mozilla-1681107.patch47
2 files changed, 53 insertions, 1 deletions
diff --git a/firefox.spec b/firefox.spec
index 8993c6c..238b9df 100644
--- a/firefox.spec
+++ b/firefox.spec
@@ -147,7 +147,7 @@ ExcludeArch: s390x
Summary: Mozilla Firefox Web browser
Name: firefox
Version: 84.0.2
-Release: 5%{?pre_tag}%{?dist}
+Release: 6%{?pre_tag}%{?dist}
URL: https://www.mozilla.org/firefox/
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
@@ -223,6 +223,7 @@ Patch418: mozilla-1556931-s390x-hidden-syms.patch
Patch420: mozilla-1678680.patch
Patch421: mozilla-1680505.patch
Patch422: mozilla-1631061.patch
+Patch423: mozilla-1681107.patch
# Upstream patches from mozbz#1672944
Patch450: pw1.patch
@@ -451,6 +452,7 @@ This package contains results of tests executed during build.
%patch420 -p1 -b .1678680
%patch421 -p1 -b .1680505
#%patch422 -p1 -b .1631061
+%patch423 -p1 -b .1681107
%patch500 -p1 -b .ffvpx
@@ -1033,6 +1035,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#---------------------------------------------------------------------
%changelog
+* Thu Jan 15 2021 Martin Stransky <stransky@redhat.com> - 84.0.2-6
+- Added WebRender fix (mozbz#1681107).
+
* Thu Jan 14 2021 Martin Stransky <stransky@redhat.com> - 84.0.2-5
- Removed some failing tests.
- Spec file tweaks.
diff --git a/mozilla-1681107.patch b/mozilla-1681107.patch
new file mode 100644
index 0000000..e228e35
--- /dev/null
+++ b/mozilla-1681107.patch
@@ -0,0 +1,47 @@
+
+# HG changeset patch
+# User sotaro <sotaro.ikeda.g@gmail.com>
+# Date 1610634595 0
+# Node ID c989e16ae8d0801b76efe712658abcbf3704a486
+# Parent dc0d1d98e111aa781333980c2561f534ea1ebb0b
+Bug 1681107 - Fix race condition of calling CompositorBridgeChild::SendPause() r=rmader,stransky
+
+Differential Revision: https://phabricator.services.mozilla.com/D101693
+
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -5085,23 +5085,29 @@ void nsWindow::NativeMoveResize() {
+ if (mNeedsShow && mIsShown) {
+ NativeShow(true);
+ }
+ }
+
+ void nsWindow::PauseRemoteRenderer() {
+ #ifdef MOZ_WAYLAND
+ if (!mIsDestroyed) {
+- if (mContainer && moz_container_wayland_has_egl_window(mContainer)) {
++ if (mContainer) {
+ // Because wl_egl_window is destroyed on moz_container_unmap(),
+ // the current compositor cannot use it anymore. To avoid crash,
+ // pause the compositor and destroy EGLSurface & resume the compositor
+ // and re-create EGLSurface on next expose event.
+- MOZ_ASSERT(GetRemoteRenderer());
+- if (CompositorBridgeChild* remoteRenderer = GetRemoteRenderer()) {
++
++ // moz_container_wayland_has_egl_window() could not be used here, since
++ // there is a case that resume compositor is not completed yet.
++
++ CompositorBridgeChild* remoteRenderer = GetRemoteRenderer();
++ bool needsCompositorPause = !mNeedsCompositorResume && !!remoteRenderer &&
++ mCompositorWidgetDelegate;
++ if (needsCompositorPause) {
+ // XXX slow sync IPC
+ remoteRenderer->SendPause();
+ // Re-request initial draw callback
+ RefPtr<nsWindow> self(this);
+ moz_container_wayland_add_initial_draw_callback(
+ mContainer, [self]() -> void {
+ self->mNeedsCompositorResume = true;
+ self->MaybeResumeCompositor();
+
bgstack15