From 05b9a9097b74c5f4e5522c80d5eb8f5b346284e2 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Wed, 7 Apr 2021 22:06:27 +0200 Subject: Added wayland focus workaround - mzbz#1703657 --- firefox.spec | 2 ++ mozilla-1703657.patch | 28 ++++++++++++++++++++++++++++ run-tests-wayland | 4 ++-- 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 mozilla-1703657.patch diff --git a/firefox.spec b/firefox.spec index 3925ab9..bafab9c 100644 --- a/firefox.spec +++ b/firefox.spec @@ -237,6 +237,7 @@ Patch408: mozilla-1663844.patch Patch415: mozilla-1670333.patch Patch416: mozilla-1693472.patch Patch417: mozilla-1702606.patch +Patch418: mozilla-1703657.patch # PGO/LTO patches Patch600: pgo.patch @@ -490,6 +491,7 @@ This package contains results of tests executed during build. %patch415 -p1 -b .1670333 %patch416 -p1 -b .1693472 %patch417 -p1 -b .1702606 +%patch418 -p1 -b .1703657 # PGO patches %if %{build_with_pgo} diff --git a/mozilla-1703657.patch b/mozilla-1703657.patch new file mode 100644 index 0000000..885fe81 --- /dev/null +++ b/mozilla-1703657.patch @@ -0,0 +1,28 @@ +changeset: 576616:8d1ea60136ed +tag: tip +parent: 576614:144a345005ac +user: stransky +date: Wed Apr 07 21:55:43 2021 +0200 +files: widget/gtk/nsWindow.cpp +description: +Bug 1703657 [Wayland] Use wayland focus workaround if widget.wayland-focus-workaroud is set at nsWindow::SetFocus(), r?rmader + +Differential Revision: https://phabricator.services.mozilla.com/D111162 + + +diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp +--- a/widget/gtk/nsWindow.cpp ++++ b/widget/gtk/nsWindow.cpp +@@ -2220,9 +2220,9 @@ void nsWindow::SetFocus(Raise aRaise, mo + if (gRaiseWindows && owningWindow->mIsShown && owningWindow->mShell && + !gtk_window_is_active(GTK_WINDOW(owningWindow->mShell))) { + if (!mIsX11Display && +- Preferences::GetBool("testing.browserTestHarness.running", false)) { ++ Preferences::GetBool("widget.wayland-focus-workaroud", false)) { + // Wayland does not support focus changes so we need to workaround it +- // by window hide/show sequence but only when it's running in testsuite. ++ // by window hide/show sequence. + owningWindow->NativeShow(false); + owningWindow->NativeShow(true); + return; + diff --git a/run-tests-wayland b/run-tests-wayland index 7e69469..a3dd095 100755 --- a/run-tests-wayland +++ b/run-tests-wayland @@ -3,7 +3,7 @@ set -x -RUN_XPCSHELL_TEST=1 +RUN_XPCSHELL_TEST=0 RUN_REFTEST=1 RUN_MOCHITEST=0 RUN_CRASHTEST=1 @@ -42,7 +42,7 @@ if [ $RUN_XPCSHELL_TEST -ne 0 ] ; then fi # Basic render testing -export TEST_PARAMS="--setpref reftest.ignoreWindowSize=true" +export TEST_PARAMS="--setpref reftest.ignoreWindowSize=true --setpref widget.wayland-focus-workaroud=true" export TEST_FLAVOUR="" if [ $RUN_REFTEST -ne 0 ] ; then ./mach reftest --marionette localhost:$(($(($RANDOM))+2000)) $TEST_PARAMS 2>&1 | tee $TEST_DIR/reftest$TEST_FLAVOUR -- cgit