From 33aaf8942f34d38bf621deab577f3e4005ad1391 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Tue, 18 Apr 2023 00:22:47 +0200 Subject: [PATCH] Updated to 112.0.1 --- .gitignore | 2 ++ D173814.diff | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++ firefox.spec | 21 ++++++++++++-- sources | 4 +-- 4 files changed, 104 insertions(+), 5 deletions(-) create mode 100644 D173814.diff diff --git a/.gitignore b/.gitignore index 9e55811..492d3ce 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/D173814.diff b/D173814.diff new file mode 100644 index 0000000..91898aa --- /dev/null +++ b/D173814.diff @@ -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& initial_draw_cb); + void moz_container_wayland_add_or_fire_initial_draw_callback( + MozContainer* container, const std::function& 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; + diff --git a/firefox.spec b/firefox.spec index 20b52c9..8524324 100644 --- a/firefox.spec +++ b/firefox.spec @@ -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 - 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 - 112.0-3 - Added wayland window fix mzbz#1827429 diff --git a/sources b/sources index 9549e8a..e985a7a 100644 --- a/sources +++ b/sources @@ -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