summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firefox.spec7
-rw-r--r--mozilla-1668771.patch41
2 files changed, 47 insertions, 1 deletions
diff --git a/firefox.spec b/firefox.spec
index 05c4dd0..e4a2d18 100644
--- a/firefox.spec
+++ b/firefox.spec
@@ -110,7 +110,7 @@ ExcludeArch: s390x
Summary: Mozilla Firefox Web browser
Name: firefox
Version: 81.0.1
-Release: 3%{?dist}
+Release: 4%{?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
@@ -178,6 +178,7 @@ Patch407: mozilla-1667096.patch
Patch408: mozilla-1663844.patch
Patch409: mozilla-1640567.patch
Patch410: mozilla-1661192.patch
+Patch411: mozilla-1668771.patch
# Wayland specific upstream patches
Patch574: firefox-pipewire-0-2.patch
@@ -389,6 +390,7 @@ This package contains results of tests executed during build.
%patch408 -p1 -b .1663844
%patch409 -p1 -b .1640567
%patch410 -p1 -b .1661192
+%patch411 -p1 -b .1668771
# Wayland specific upstream patches
%if 0%{?fedora} < 32
@@ -978,6 +980,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#---------------------------------------------------------------------
%changelog
+* Thu Oct 2 2020 Martin Stransky <stransky@redhat.com> - 81.0.1-4
+- Added fix for mozbz#1668771
+
* Thu Oct 1 2020 Martin Stransky <stransky@redhat.com> - 81.0.1-3
- Added fix for mozbz#1661192
diff --git a/mozilla-1668771.patch b/mozilla-1668771.patch
new file mode 100644
index 0000000..4b3cb3e
--- /dev/null
+++ b/mozilla-1668771.patch
@@ -0,0 +1,41 @@
+changeset: 552978:b50cb0696eef
+tag: tip
+parent: 552976:2ce12e3e063c
+user: stransky <stransky@redhat.com>
+date: Fri Oct 02 12:19:53 2020 +0200
+files: widget/gtk/WindowSurfaceWayland.cpp
+description:
+Bug 1668771 [Wayland] Use timeout for frame callbacks for basic compositor, r?jhorak
+
+Differential Revision: https://phabricator.services.mozilla.com/D92200
+
+
+diff --git a/widget/gtk/WindowSurfaceWayland.cpp b/widget/gtk/WindowSurfaceWayland.cpp
+--- a/widget/gtk/WindowSurfaceWayland.cpp
++++ b/widget/gtk/WindowSurfaceWayland.cpp
+@@ -37,6 +37,9 @@ extern mozilla::LazyLogModule gWidgetWay
+ // Maximal compositing timeout it miliseconds
+ #define COMPOSITING_TIMEOUT 200
+
++// Maximal timeout between frame callbacks
++#define FRAME_CALLBACK_TIMEOUT 20
++
+ namespace mozilla {
+ namespace widget {
+
+@@ -941,8 +944,12 @@ void WindowSurfaceWayland::CommitWayland
+ if (waylandSurface == mLastCommittedSurface) {
+ LOGWAYLAND((" [%p] wait for frame callback.\n", (void*)this));
+ // We have an active frame callback pending from our recent surface.
+- // It means we should defer the commit to FrameCallbackHandler().
+- return;
++ // It means we should defer the commit to FrameCallbackHandler(),
++ // but only if we're under frame callback timeout range.
++ if (mLastCommitTime && (g_get_monotonic_time() / 1000) - mLastCommitTime <
++ FRAME_CALLBACK_TIMEOUT) {
++ return;
++ }
+ }
+ // If our stored wl_surface does not match the actual one it means the frame
+ // callback is no longer active and we should release it.
+
bgstack15