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 | Summary:        Mozilla Firefox Web browser | ||||||
| Name:           firefox | Name:           firefox | ||||||
| Version:        88.0 | Version:        88.0 | ||||||
| Release:        7%{?pre_tag}%{?dist} | Release:        8%{?pre_tag}%{?dist} | ||||||
| URL:            https://www.mozilla.org/firefox/ | URL:            https://www.mozilla.org/firefox/ | ||||||
| License:        MPLv1.1 or GPLv2+ or LGPLv2+ | 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 | 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 | Patch419:        mozilla-1703763.patch | ||||||
| Patch420:        mochitest-wayland-workaround.patch | Patch420:        mochitest-wayland-workaround.patch | ||||||
| Patch421:        mozilla-1580595.patch | Patch421:        mozilla-1580595.patch | ||||||
|  | Patch422:        mozilla-1705048.patch | ||||||
| 
 | 
 | ||||||
| # PGO/LTO patches | # PGO/LTO patches | ||||||
| Patch600:        pgo.patch | Patch600:        pgo.patch | ||||||
| @ -472,6 +473,7 @@ This package contains results of tests executed during build. | |||||||
| %patch419 -p1 -b .1703763 | %patch419 -p1 -b .1703763 | ||||||
| %patch420 -p1 -b .mochitest-wayland-workaround | %patch420 -p1 -b .mochitest-wayland-workaround | ||||||
| %patch421 -p1 -b .1580595 | %patch421 -p1 -b .1580595 | ||||||
|  | %patch422 -p1 -b .1705048 | ||||||
| 
 | 
 | ||||||
| # PGO patches | # PGO patches | ||||||
| %if %{build_with_pgo} | %if %{build_with_pgo} | ||||||
| @ -1027,6 +1029,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : | |||||||
| #--------------------------------------------------------------------- | #--------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| %changelog | %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 | * Fri Apr 30 2021 Martin Stransky <stransky@redhat.com> - 88.0-7 | ||||||
| - Added pciutils-libs req (rhbz#1955338) | - Added pciutils-libs req (rhbz#1955338) | ||||||
| - Enabled Wayland on KDE (rhbz#1922608) | - 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_DIR=$1 | ||||||
| TEST_FLAVOUR=$2 | 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 "  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 | 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" | export TEST_DIR="test_results" | ||||||
| 
 | 
 | ||||||
| ./print-errors $TEST_DIR "" | #./print-errors $TEST_DIR "" | ||||||
| ./print-errors $TEST_DIR "-wr" | ./print-errors $TEST_DIR "-wr" | ||||||
| ./print-error-reftest $TEST_DIR "" | #./print-error-reftest $TEST_DIR "" | ||||||
| ./print-error-reftest $TEST_DIR "-wr" | ./print-error-reftest $TEST_DIR "-wr" | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
| export TEST_DIR="test_results" | export TEST_DIR="test_results" | ||||||
| 
 | 
 | ||||||
| echo "Test results" | echo "Test results" | ||||||
| echo "Basic compositor" | #echo "Basic compositor" | ||||||
| ./psummary $TEST_DIR "" | #./psummary $TEST_DIR "" | ||||||
| echo "WebRender" | echo "WebRender" | ||||||
| ./psummary $TEST_DIR "-wr" | ./psummary $TEST_DIR "-wr" | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								psummary
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								psummary
									
									
									
									
									
								
							| @ -4,10 +4,10 @@ | |||||||
| TEST_DIR=$1 | TEST_DIR=$1 | ||||||
| TEST_FLAVOUR=$2 | TEST_FLAVOUR=$2 | ||||||
| 
 | 
 | ||||||
| #MPASS=`grep "TEST_END: Test OK" $TEST_DIR/mochitest$TEST_FLAVOUR | wc -l` | 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` | 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` | MUNEX=`grep "TEST-UNEXPECTED-FAIL" $TEST_DIR/mochitest$TEST_FLAVOUR | wc  -l` | ||||||
| #echo "Mochitest   PASSED: $MPASS FAILED: $MERR UNEXPECTED-FAILURES: $MUNEX" | echo "Mochitest   PASSED: $MPASS FAILED: $MERR UNEXPECTED-FAILURES: $MUNEX" | ||||||
| 
 | 
 | ||||||
| XPCPASS=`grep --text "Expected results:" $TEST_DIR/xpcshell$TEST_FLAVOUR | cut -d ' ' -f 3` | 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` | XPCFAIL=`grep --text "Unexpected results:" $TEST_DIR/xpcshell$TEST_FLAVOUR | cut -d ' ' -f 3` | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user