Added fix for WebRTC indicator - mozilla#1705048
This commit is contained in:
parent
63a2618a07
commit
c213080431
@ -146,7 +146,7 @@ ExcludeArch: s390x
|
||||
Summary: Mozilla Firefox Web browser
|
||||
Name: firefox
|
||||
Version: 88.0
|
||||
Release: 7%{?pre_tag}%{?dist}
|
||||
Release: 8%{?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
|
||||
@ -231,6 +231,7 @@ Patch418: mozilla-1703657.patch
|
||||
Patch419: mozilla-1703763.patch
|
||||
Patch420: mochitest-wayland-workaround.patch
|
||||
Patch421: mozilla-1580595.patch
|
||||
Patch422: mozilla-1705048.patch
|
||||
|
||||
# PGO/LTO patches
|
||||
Patch600: pgo.patch
|
||||
@ -472,6 +473,7 @@ This package contains results of tests executed during build.
|
||||
%patch419 -p1 -b .1703763
|
||||
%patch420 -p1 -b .mochitest-wayland-workaround
|
||||
%patch421 -p1 -b .1580595
|
||||
%patch422 -p1 -b .1705048
|
||||
|
||||
# PGO patches
|
||||
%if %{build_with_pgo}
|
||||
@ -1027,6 +1029,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
#---------------------------------------------------------------------
|
||||
|
||||
%changelog
|
||||
* Tue May 4 2021 Martin Stransky <stransky@redhat.com> - 88.0-8
|
||||
- Added fix for mozbz#1705048.
|
||||
|
||||
* Fri Apr 30 2021 Martin Stransky <stransky@redhat.com> - 88.0-7
|
||||
- Added pciutils-libs req (rhbz#1955338)
|
||||
- Enabled Wayland on KDE (rhbz#1922608)
|
||||
|
70
mozilla-1705048.patch
Normal file
70
mozilla-1705048.patch
Normal file
@ -0,0 +1,70 @@
|
||||
diff -up firefox-88.0/widget/gtk/nsWindow.cpp.1705048 firefox-88.0/widget/gtk/nsWindow.cpp
|
||||
--- firefox-88.0/widget/gtk/nsWindow.cpp.1705048 2021-05-04 15:43:16.039586526 +0200
|
||||
+++ firefox-88.0/widget/gtk/nsWindow.cpp 2021-05-04 15:47:26.358614462 +0200
|
||||
@@ -553,6 +553,7 @@ nsWindow::nsWindow() {
|
||||
mTitlebarBackdropState = false;
|
||||
|
||||
mHasAlphaVisual = false;
|
||||
+ mIsWaylandPanelWindow = false;
|
||||
mIsPIPWindow = false;
|
||||
mAlwaysOnTop = false;
|
||||
|
||||
@@ -3713,7 +3714,7 @@ void nsWindow::OnButtonPressEvent(GdkEve
|
||||
|
||||
LayoutDeviceIntPoint refPoint =
|
||||
GdkEventCoordsToDevicePixels(aEvent->x, aEvent->y);
|
||||
- if (mDraggableRegion.Contains(refPoint.x, refPoint.y) &&
|
||||
+ if ((mIsWaylandPanelWindow || mDraggableRegion.Contains(refPoint.x, refPoint.y)) &&
|
||||
domButton == MouseButton::ePrimary &&
|
||||
eventStatus != nsEventStatus_eConsumeNoDefault) {
|
||||
mWindowShouldStartDragging = true;
|
||||
@@ -4614,8 +4615,9 @@ nsresult nsWindow::Create(nsIWidget* aPa
|
||||
// as a workaround.
|
||||
mWindowType = eWindowType_toplevel;
|
||||
} else if (mWindowType == eWindowType_popup && !aNativeParent && !aParent) {
|
||||
- // Workaround for Wayland where the popup windows always need to have
|
||||
- // parent window. For example webrtc ui is a popup window without parent.
|
||||
+ // mIsWaylandPanelWindow is a special toplevel window on Wayland which
|
||||
+ // emulates X11 popup window without parent.
|
||||
+ mIsWaylandPanelWindow = true;
|
||||
mWindowType = eWindowType_toplevel;
|
||||
}
|
||||
}
|
||||
@@ -4642,8 +4644,10 @@ nsresult nsWindow::Create(nsIWidget* aPa
|
||||
// popup window position.
|
||||
GtkWindowType type = GTK_WINDOW_TOPLEVEL;
|
||||
if (mWindowType == eWindowType_popup) {
|
||||
- type = (mIsX11Display && aInitData->mNoAutoHide) ? GTK_WINDOW_TOPLEVEL
|
||||
- : GTK_WINDOW_POPUP;
|
||||
+ type = GTK_WINDOW_POPUP;
|
||||
+ if (GdkIsX11Display() && aInitData->mNoAutoHide) {
|
||||
+ type = GTK_WINDOW_TOPLEVEL;
|
||||
+ }
|
||||
}
|
||||
mShell = gtk_window_new(type);
|
||||
|
||||
@@ -4890,6 +4894,10 @@ nsresult nsWindow::Create(nsIWidget* aPa
|
||||
}
|
||||
#endif
|
||||
|
||||
+ if (mIsWaylandPanelWindow) {
|
||||
+ gtk_window_set_decorated(GTK_WINDOW(mShell), false);
|
||||
+ }
|
||||
+
|
||||
if (mWindowType == eWindowType_popup) {
|
||||
// gdk does not automatically set the cursor for "temporary"
|
||||
// windows, which are what gtk uses for popups.
|
||||
diff -up firefox-88.0/widget/gtk/nsWindow.h.1705048 firefox-88.0/widget/gtk/nsWindow.h
|
||||
--- firefox-88.0/widget/gtk/nsWindow.h.1705048 2021-05-04 15:43:16.041586502 +0200
|
||||
+++ firefox-88.0/widget/gtk/nsWindow.h 2021-05-04 15:45:01.703331956 +0200
|
||||
@@ -591,6 +591,10 @@ class nsWindow final : public nsBaseWidg
|
||||
LayoutDeviceIntRegion mDraggableRegion;
|
||||
// It's PictureInPicture window.
|
||||
bool mIsPIPWindow;
|
||||
+ // It's undecorated popup utility window, without resizers/titlebar,
|
||||
+ // movable by mouse. Used on Wayland as a workaround for popups without
|
||||
+ // parent (for instance WebRTC sharing indicator).
|
||||
+ bool mIsWaylandPanelWindow;
|
||||
bool mAlwaysOnTop;
|
||||
|
||||
#ifdef ACCESSIBILITY
|
@ -4,6 +4,6 @@
|
||||
TEST_DIR=$1
|
||||
TEST_FLAVOUR=$2
|
||||
|
||||
#grep "TEST-UNEXPECTED-FAIL" $TEST_DIR/mochitest$TEST_FLAVOUR 2>&1 > failures-mochitest$TEST_FLAVOUR.txt
|
||||
grep "TEST-UNEXPECTED-FAIL" $TEST_DIR/mochitest$TEST_FLAVOUR 2>&1 > failures-mochitest$TEST_FLAVOUR.txt
|
||||
grep --text -e " FAIL " -e " TIMEOUT " $TEST_DIR/xpcshell$TEST_FLAVOUR 2>&1 > failures-xpcshell$TEST_FLAVOUR.txt
|
||||
grep --text -e "REFTEST TEST-UNEXPECTED-PASS" -e "REFTEST TEST-UNEXPECTED-FAIL" $TEST_DIR/reftest$TEST_FLAVOUR 2>&1 > failures-reftest$TEST_FLAVOUR.txt
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
export TEST_DIR="test_results"
|
||||
|
||||
./print-errors $TEST_DIR ""
|
||||
#./print-errors $TEST_DIR ""
|
||||
./print-errors $TEST_DIR "-wr"
|
||||
./print-error-reftest $TEST_DIR ""
|
||||
#./print-error-reftest $TEST_DIR ""
|
||||
./print-error-reftest $TEST_DIR "-wr"
|
||||
|
@ -4,7 +4,7 @@
|
||||
export TEST_DIR="test_results"
|
||||
|
||||
echo "Test results"
|
||||
echo "Basic compositor"
|
||||
./psummary $TEST_DIR ""
|
||||
#echo "Basic compositor"
|
||||
#./psummary $TEST_DIR ""
|
||||
echo "WebRender"
|
||||
./psummary $TEST_DIR "-wr"
|
||||
|
8
psummary
8
psummary
@ -4,10 +4,10 @@
|
||||
TEST_DIR=$1
|
||||
TEST_FLAVOUR=$2
|
||||
|
||||
#MPASS=`grep "TEST_END: Test OK" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l`
|
||||
#MERR=`grep "TEST_END: Test ERROR" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l`
|
||||
#MUNEX=`grep "TEST-UNEXPECTED-FAIL" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l`
|
||||
#echo "Mochitest PASSED: $MPASS FAILED: $MERR UNEXPECTED-FAILURES: $MUNEX"
|
||||
MPASS=`grep "TEST_END: Test OK" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l`
|
||||
MERR=`grep "TEST_END: Test ERROR" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l`
|
||||
MUNEX=`grep "TEST-UNEXPECTED-FAIL" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l`
|
||||
echo "Mochitest PASSED: $MPASS FAILED: $MERR UNEXPECTED-FAILURES: $MUNEX"
|
||||
|
||||
XPCPASS=`grep --text "Expected results:" $TEST_DIR/xpcshell$TEST_FLAVOUR | cut -d ' ' -f 3`
|
||||
XPCFAIL=`grep --text "Unexpected results:" $TEST_DIR/xpcshell$TEST_FLAVOUR | cut -d ' ' -f 3`
|
||||
|
Loading…
Reference in New Issue
Block a user