Updated to 112.0.1

This commit is contained in:
Martin Stransky 2023-04-18 00:22:47 +02:00
parent 9f85dc3c25
commit 33aaf8942f
4 changed files with 104 additions and 5 deletions

2
.gitignore vendored
View File

@ -567,3 +567,5 @@ firefox-3.6.4.source.tar.bz2
/firefox-112.0.source.tar.xz
/firefox-langpacks-112.0-20230405.tar.xz
/firefox-langpacks-112.0-20230406.tar.xz
/firefox-langpacks-112.0.1-20230417.tar.xz
/firefox-112.0.1.source.tar.xz

82
D173814.diff Normal file
View File

@ -0,0 +1,82 @@
diff --git a/widget/gtk/MozContainerWayland.h b/widget/gtk/MozContainerWayland.h
--- a/widget/gtk/MozContainerWayland.h
+++ b/widget/gtk/MozContainerWayland.h
@@ -83,10 +83,13 @@
nsIntSize aSize,
int scale);
void moz_container_wayland_set_scale_factor(MozContainer* container);
void moz_container_wayland_set_scale_factor_locked(
const mozilla::MutexAutoLock& aProofOfLock, MozContainer* container);
+bool moz_container_wayland_size_matches_scale_factor_locked(
+ const mozilla::MutexAutoLock& aProofOfLock, MozContainer* container,
+ int aWidth, int aHeight);
void moz_container_wayland_add_initial_draw_callback_locked(
MozContainer* container, const std::function<void(void)>& initial_draw_cb);
void moz_container_wayland_add_or_fire_initial_draw_callback(
MozContainer* container, const std::function<void(void)>& initial_draw_cb);
diff --git a/widget/gtk/MozContainerWayland.cpp b/widget/gtk/MozContainerWayland.cpp
--- a/widget/gtk/MozContainerWayland.cpp
+++ b/widget/gtk/MozContainerWayland.cpp
@@ -595,10 +595,17 @@
if (container->wl_container.surface) {
moz_container_wayland_set_scale_factor_locked(lock, container);
}
}
+bool moz_container_wayland_size_matches_scale_factor_locked(
+ const MutexAutoLock& aProofOfLock, MozContainer* container, int aWidth,
+ int aHeight) {
+ return aWidth % container->wl_container.buffer_scale == 0 &&
+ aHeight % container->wl_container.buffer_scale == 0;
+}
+
static bool moz_container_wayland_surface_create_locked(
const MutexAutoLock& aProofOfLock, MozContainer* container) {
MozContainerWayland* wl_container = &container->wl_container;
LOGWAYLAND("%s [%p]\n", __FUNCTION__,
diff --git a/widget/gtk/WindowSurfaceWaylandMultiBuffer.cpp b/widget/gtk/WindowSurfaceWaylandMultiBuffer.cpp
--- a/widget/gtk/WindowSurfaceWaylandMultiBuffer.cpp
+++ b/widget/gtk/WindowSurfaceWaylandMultiBuffer.cpp
@@ -283,12 +283,12 @@
return;
}
mFrameInProcess = false;
MozContainer* container = mWindow->GetMozContainer();
- MozContainerSurfaceLock lock(container);
- struct wl_surface* waylandSurface = lock.GetSurface();
+ MozContainerSurfaceLock MozContainerLock(container);
+ struct wl_surface* waylandSurface = MozContainerLock.GetSurface();
if (!waylandSurface) {
LOGWAYLAND(
"WindowSurfaceWaylandMB::Commit [%p] frame queued: can't lock "
"wl_surface\n",
(void*)mWindow.get());
@@ -317,12 +317,23 @@
LayoutDeviceIntRect r = iter.Get();
wl_surface_damage_buffer(waylandSurface, r.x, r.y, r.width, r.height);
}
}
+ // aProofOfLock is a kind of substitution of MozContainerSurfaceLock.
+ // MozContainer is locked but MozContainerSurfaceLock doen't convert to
+ // MutexAutoLock& so we use aProofOfLock here.
moz_container_wayland_set_scale_factor_locked(aProofOfLock, container);
- mInProgressBuffer->AttachAndCommit(waylandSurface);
+
+ // It's possible that scale factor changed between Lock() and Commit()
+ // but window size is the same.
+ // Don't attach such buffer as it may have incorrect size,
+ // we'll paint new content soon.
+ if (moz_container_wayland_size_matches_scale_factor_locked(
+ aProofOfLock, container, mWindowSize.width, mWindowSize.height)) {
+ mInProgressBuffer->AttachAndCommit(waylandSurface);
+ }
mInProgressBuffer->ResetBufferAge();
mFrontBuffer = mInProgressBuffer;
mFrontBufferInvalidRegion = aInvalidRegion;
mInProgressBuffer = nullptr;

View File

@ -73,6 +73,7 @@ ExcludeArch: i686
%global system_libvpx 0
%endif
%global system_jpeg 1
%global system_pixman 1
%global use_bundled_cbindgen 1
%if %{debug_build}
%global release_build 0
@ -174,13 +175,13 @@ ExcludeArch: i686
Summary: Mozilla Firefox Web browser
Name: firefox
Version: 112.0
Release: 3%{?pre_tag}%{?dist}
Version: 112.0.1
Release: 1%{?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
%if %{with langpacks}
Source1: firefox-langpacks-%{version}%{?pre_version}-20230406.tar.xz
Source1: firefox-langpacks-%{version}%{?pre_version}-20230417.tar.xz
%endif
Source2: cbindgen-vendor.tar.xz
Source10: firefox-mozconfig
@ -230,6 +231,7 @@ Patch78: firefox-i686-build.patch
Patch79: firefox-gcc-13-build.patch
#Patch80: D172126.diff
#Patch81: D172864.diff
Patch83: D173814.diff
# Test patches
# Generate without context by
@ -283,6 +285,9 @@ BuildRequires: pkgconfig(libpng)
%if %{?system_jpeg}
BuildRequires: libjpeg-devel
%endif
%if %{?system_pixman}
BuildRequires: pixman-devel
%endif
BuildRequires: zip
BuildRequires: bzip2-devel
BuildRequires: pkgconfig(zlib)
@ -516,6 +521,7 @@ This package contains results of tests executed during build.
%patch79 -p1 -b .firefox-gcc-13-build
#%patch80 -p1 -b .D172126
#%patch81 -p1 -b .D172864
%patch83 -p1 -b .D173814
# Test patches
#%patch100 -p1 -b .firefox-tests-xpcshell
@ -623,6 +629,10 @@ echo "ac_add_options --without-system-jpeg" >> .mozconfig
echo "ac_add_options --with-system-jpeg" >> .mozconfig
%endif
%if %{?system_pixman}
echo "ac_add_options --enable-system-pixman" >> .mozconfig
%endif
%if %{?system_libvpx}
echo "ac_add_options --with-system-libvpx" >> .mozconfig
%else
@ -1089,6 +1099,11 @@ fi
#---------------------------------------------------------------------
%changelog
* Tue Apr 18 2023 Martin Stransky <stransky@redhat.com>- 112.0.1-1
- Updated to 112.0.1
- Added fix for rhbz#2187000
- Enabled system pixman (by G.Hojda)
* Tue Apr 11 2023 Martin Stransky <stransky@redhat.com>- 112.0-3
- Added wayland window fix mzbz#1827429

View File

@ -1,4 +1,4 @@
SHA512 (cbindgen-vendor.tar.xz) = 0d45c1decfd7aaee853748745c9f5a907c0c6a0cf809c2387aac1cdcf680b0844b1ef4d05148e0527de4ff6e4d4666110bea317bd00b7d73a1210eb58a815563
SHA512 (mochitest-python.tar.gz) = e0a2c569dafe013b6a4c073516388549a8f398d8aa4538a3bc69dcda44737a3a3cf070285e9fa040a15d7a62446665c6158d42a1b6dc3e8d7f4680bc2ef17a16
SHA512 (firefox-langpacks-112.0-20230406.tar.xz) = 11870eec9947b11be404016b6426f13c86b37be7d0021bf7ae640151d17df35212bfb4c1c14aef5948dcd49312b47daf582f2367f5ba4d2f81dfc8ce64d9609d
SHA512 (firefox-112.0.source.tar.xz) = 6b2bc8c0c93f3109da27168fe7e8f734c6ab4efb4ca56ff2d5e3a52659da71173bba2104037a000623833be8338621fca482f39f836e3910fe2996e6d0a68b39
SHA512 (firefox-langpacks-112.0.1-20230417.tar.xz) = 9cee5362c549170568f37e74bab90c18c2540298947d9dd1423839cd11e2f5c0f484665c03fa90924b1c304bfc78b8e5d40a8ed6e08d3c6533d514aa50b8a897
SHA512 (firefox-112.0.1.source.tar.xz) = 23a5cd9c1f165275d8ca7465bebce86018441c72292421f4ed56d7ad8ada9402dc8d22a08467d9d0ef3ef8c62338006dfa3bcbddf12cb8a59eafa0bd7d0cda50