latest 91.0 patch firefox91
authorWolfgang Rosenauer <wr@rosenauer.org>
Fri, 03 Sep 2021 12:59:43 +0200
branchfirefox91
changeset 1161 36ae1e4f15eb
parent 1160 b28cf22ff7cf
child 1162 af5e283c2e5d
latest 91.0 patch
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/mozilla-bmo1708709.patch
MozillaFirefox/tar_stamps
mozilla-bmo1708709.patch
series
--- a/MozillaFirefox/MozillaFirefox.changes	Fri Aug 13 23:47:08 2021 +0200
+++ b/MozillaFirefox/MozillaFirefox.changes	Fri Sep 03 12:59:43 2021 +0200
@@ -1,4 +1,39 @@
 -------------------------------------------------------------------
+Tue Aug 31 00:33:39 UTC 2021 - Atri Bhattacharya <badshah400@gmail.com>
+
+- Add mozilla-bmo1708709.patch: On [wayland] popup can be wrongly
+  repositioned due to rounding errors when font scaling != 1
+  (bmo#1708709); patch taken from upstream bug report and rebased
+  to apply cleanly against current version.
+
+-------------------------------------------------------------------
+Sun Aug 29 14:45:29 UTC 2021 - Martin Liška <mliska@suse.cz>
+
+- Bump using with GCC (tested locally).
+
+-------------------------------------------------------------------
+Fri Aug 27 22:47:48 UTC 2021 - Andreas Stieger <andreas.stieger@gmx.de>
+
+- Mozilla Firefox 91.0.2:
+  * Fixed: Firefox no longer clears authentication data when
+    purging trackers, to avoid repeatedly prompting for a
+    password (bmo#1721084)
+
+-------------------------------------------------------------------
+Wed Aug 18 06:34:01 UTC 2021 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 91.0.1
+  * Fixed an issue causing buttons on the tab bar to be resized when
+    loading certain websites (bmo#1704404)
+  * Fixed an issue which caused tabs from private windows to be
+    visible in non-private windows when viewing switch-to-tab results
+    in the address bar panel (bmo#1720369)
+  * Various stability fixes
+  MFSA 2021-37 (bsc#1189547)
+  * CVE-2021-29991 (bmo#1724896)
+    Header Splitting possible with HTTP/3 Responses
+
+-------------------------------------------------------------------
 Mon Aug  9 14:55:22 UTC 2021 - Wolfgang Rosenauer <wr@rosenauer.org>
 
 - Mozilla Firefox 91.0
--- a/MozillaFirefox/MozillaFirefox.spec	Fri Aug 13 23:47:08 2021 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec	Fri Sep 03 12:59:43 2021 +0200
@@ -33,8 +33,8 @@
 # major 69
 # mainver %major.99
 %define major          91
-%define mainver        %major.0
-%define orig_version   91.0
+%define mainver        %major.0.2
+%define orig_version   91.0.2
 %define orig_suffix    %{nil}
 %define update_channel release
 %define branding       1
@@ -44,7 +44,7 @@
 %define do_profiling   0
 
 # upstream default is clang (to use gcc for large parts set to 0)
-%define clang_build    1
+%define clang_build    0
 
 # PIE, full relro
 %define build_hardened 1
@@ -229,6 +229,7 @@
 Patch26:        mozilla-bmo1626236.patch
 Patch27:        mozilla-s390x-skia-gradient.patch
 Patch28:        mozilla-libavcodec58_91.patch
+Patch29:        mozilla-bmo1708709.patch
 # Firefox/browser
 Patch101:       firefox-kde.patch
 Patch102:       firefox-branded-icons.patch
@@ -357,6 +358,7 @@
 %patch26 -p1
 %patch27 -p1
 %patch28 -p1
+%patch29 -p1
 # Firefox
 %patch101 -p1
 %patch102 -p1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MozillaFirefox/mozilla-bmo1708709.patch	Fri Sep 03 12:59:43 2021 +0200
@@ -0,0 +1,1 @@
+../mozilla-bmo1708709.patch
\ No newline at end of file
--- a/MozillaFirefox/tar_stamps	Fri Aug 13 23:47:08 2021 +0200
+++ b/MozillaFirefox/tar_stamps	Fri Sep 03 12:59:43 2021 +0200
@@ -1,10 +1,10 @@
 PRODUCT="firefox"
 CHANNEL="release"
-VERSION="91.0"
+VERSION="91.0.2"
 VERSION_SUFFIX=""
-PREV_VERSION="90.0.2"
+PREV_VERSION="91.0.1"
 PREV_VERSION_SUFFIX=""
 #SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
 RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release"
-RELEASE_TAG="f51367289e745398258bb394fe2001e807faa048"
-RELEASE_TIMESTAMP="20210804193234"
+RELEASE_TAG="1aa232202866276c3ee7a2748b2bb291bf4fe6fa"
+RELEASE_TIMESTAMP="20210823123856"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-bmo1708709.patch	Fri Sep 03 12:59:43 2021 +0200
@@ -0,0 +1,201 @@
+Index: firefox-91.0.2/dom/xul/XULPopupElement.cpp
+===================================================================
+--- firefox-91.0.2.orig/dom/xul/XULPopupElement.cpp
++++ firefox-91.0.2/dom/xul/XULPopupElement.cpp
+@@ -271,8 +271,7 @@ already_AddRefed<DOMRect> XULPopupElemen
+     // For native menus we can't query the true size. Use the anchor rect
+     // instead, which at least has the position at which we were intending to
+     // open the menu.
+-    screenRect = Some(CSSRect(
+-        CSSIntRect::FromUnknownRect(menuPopupFrame->GetScreenAnchorRect())));
++    screenRect = Some(CSSRect(menuPopupFrame->GetScreenAnchorRect()));
+   } else {
+     // For non-native menus, query the bounds from the widget.
+     if (nsView* view = menuPopupFrame->GetView()) {
+Index: firefox-91.0.2/layout/xul/nsMenuPopupFrame.h
+===================================================================
+--- firefox-91.0.2.orig/layout/xul/nsMenuPopupFrame.h
++++ firefox-91.0.2/layout/xul/nsMenuPopupFrame.h
+@@ -321,7 +321,7 @@ class nsMenuPopupFrame final : public ns
+   // If aUpdateAttrs is true, and the popup already has left or top attributes,
+   // then those attributes are updated to the new location.
+   // The frame may be destroyed by this method.
+-  void MoveTo(const mozilla::CSSIntPoint& aPos, bool aUpdateAttrs);
++  void MoveTo(const mozilla::CSSPoint& aPos, bool aUpdateAttrs);
+ 
+   void MoveToAnchor(nsIContent* aAnchorContent, const nsAString& aPosition,
+                     int32_t aXPos, int32_t aYPos, bool aAttributesOverride);
+@@ -370,7 +370,9 @@ class nsMenuPopupFrame final : public ns
+ 
+   // Return the screen coordinates in CSS pixels of the popup,
+   // or (-1, -1, 0, 0) if anchored.
+-  nsIntRect GetScreenAnchorRect() const { return mScreenRect; }
++  mozilla::CSSIntRect GetScreenAnchorRect() const {
++    return mozilla::CSSRect::FromAppUnitsRounded(mScreenRect);
++  }
+ 
+   mozilla::LayoutDeviceIntPoint GetLastClientOffset() const {
+     return mLastClientOffset;
+@@ -557,7 +559,7 @@ class nsMenuPopupFrame final : public ns
+   // override mXPos and mYPos.
+   int32_t mXPos;
+   int32_t mYPos;
+-  nsIntRect mScreenRect;
++  nsRect mScreenRect;
+   // Used for store rectangle which the popup is going to be anchored to,
+   // we need that for Wayland
+ #ifdef MOZ_WAYLAND
+Index: firefox-91.0.2/layout/xul/nsMenuPopupFrame.cpp
+===================================================================
+--- firefox-91.0.2.orig/layout/xul/nsMenuPopupFrame.cpp
++++ firefox-91.0.2/layout/xul/nsMenuPopupFrame.cpp
+@@ -868,8 +868,9 @@ void nsMenuPopupFrame::InitializePopup(n
+       InitPositionFromAnchorAlign(anchor, align);
+     }
+   }
+-
+-  mScreenRect = nsIntRect(-1, -1, 0, 0);
++  // When converted back to CSSIntRect it is (-1, -1, 0, 0) - as expected in
++  // nsXULPopupManager::Rollup
++  mScreenRect = nsRect(-AppUnitsPerCSSPixel(), -AppUnitsPerCSSPixel(), 0, 0);
+ 
+   if (aAttributesOverride) {
+     // Use |left| and |top| dimension attributes to position the popup if
+@@ -881,11 +882,13 @@ void nsMenuPopupFrame::InitializePopup(n
+     nsresult err;
+     if (!left.IsEmpty()) {
+       int32_t x = left.ToInteger(&err);
+-      if (NS_SUCCEEDED(err)) mScreenRect.x = x;
++      if (NS_SUCCEEDED(err))
++        mScreenRect.x = nsPresContext::CSSPixelsToAppUnits(x);
+     }
+     if (!top.IsEmpty()) {
+       int32_t y = top.ToInteger(&err);
+-      if (NS_SUCCEEDED(err)) mScreenRect.y = y;
++      if (NS_SUCCEEDED(err))
++        mScreenRect.y = nsPresContext::CSSPixelsToAppUnits(y);
+     }
+   }
+ }
+@@ -900,7 +903,8 @@ void nsMenuPopupFrame::InitializePopupAt
+   mPopupState = ePopupShowing;
+   mAnchorContent = nullptr;
+   mTriggerContent = aTriggerContent;
+-  mScreenRect = nsIntRect(aXPos, aYPos, 0, 0);
++  mScreenRect = nsRect(nsPresContext::CSSPixelsToAppUnits(aXPos),
++                       nsPresContext::CSSPixelsToAppUnits(aYPos), 0, 0);
+   mXPos = 0;
+   mYPos = 0;
+   mFlip = FlipType_Default;
+@@ -920,7 +924,8 @@ void nsMenuPopupFrame::InitializePopupAs
+   mTriggerContent = aTriggerContent;
+   mPopupState = ePopupShowing;
+   mAnchorContent = nullptr;
+-  mScreenRect = nsIntRect(aXPos, aYPos, 0, 0);
++  mScreenRect = nsRect(nsPresContext::CSSPixelsToAppUnits(aXPos),
++                       nsPresContext::CSSPixelsToAppUnits(aYPos), 0, 0);
+   mXPos = 0;
+   mYPos = 0;
+   mFlip = FlipType_Default;
+@@ -941,7 +946,7 @@ void nsMenuPopupFrame::InitializePopupAt
+                                              bool aAttributesOverride) {
+   InitializePopup(nullptr, aTriggerContent, aPosition, 0, 0,
+                   MenuPopupAnchorType_Rect, aAttributesOverride);
+-  mScreenRect = aRect;
++  mScreenRect = ToAppUnits(aRect, AppUnitsPerCSSPixel());
+ }
+ 
+ void nsMenuPopupFrame::ShowPopup(bool aIsContextMenu) {
+@@ -1430,7 +1435,7 @@ nsresult nsMenuPopupFrame::SetPopupPosit
+     // If anchored to a rectangle, use that rectangle. Otherwise, determine the
+     // rectangle from the anchor.
+     if (mAnchorType == MenuPopupAnchorType_Rect) {
+-      anchorRect = ToAppUnits(mScreenRect, AppUnitsPerCSSPixel());
++      anchorRect = mScreenRect;
+     } else {
+       // if the frame is not specified, use the anchor node passed to OpenPopup.
+       // If that wasn't specified either, use the root frame. Note that
+@@ -1539,10 +1544,8 @@ nsresult nsMenuPopupFrame::SetPopupPosit
+       // Account for the margin that will end up being added to the screen
+       // coordinate the next time SetPopupPosition is called.
+       mAnchorType = MenuPopupAnchorType_Point;
+-      mScreenRect.x =
+-          nsPresContext::AppUnitsToIntCSSPixels(screenPoint.x - margin.left);
+-      mScreenRect.y =
+-          nsPresContext::AppUnitsToIntCSSPixels(screenPoint.y - margin.top);
++      mScreenRect.x = screenPoint.x - margin.left;
++      mScreenRect.y = screenPoint.y - margin.top;
+     }
+   } else {
+     // The popup is positioned at a screen coordinate.
+@@ -1571,10 +1574,8 @@ nsresult nsMenuPopupFrame::SetPopupPosit
+     }
+ 
+     // next, convert into app units accounting for the zoom
+-    screenPoint.x = presContext->DevPixelsToAppUnits(
+-        nsPresContext::CSSPixelsToAppUnits(mScreenRect.x) / factor);
+-    screenPoint.y = presContext->DevPixelsToAppUnits(
+-        nsPresContext::CSSPixelsToAppUnits(mScreenRect.y) / factor);
++    screenPoint.x = presContext->DevPixelsToAppUnits(mScreenRect.x / factor);
++    screenPoint.y = presContext->DevPixelsToAppUnits(mScreenRect.y / factor);
+     anchorRect = nsRect(screenPoint, nsSize(0, 0));
+ 
+     // add the margins on the popup
+@@ -2377,9 +2378,10 @@ void nsMenuPopupFrame::DestroyFrom(nsIFr
+   nsBoxFrame::DestroyFrom(aDestructRoot, aPostDestroyData);
+ }
+ 
+-void nsMenuPopupFrame::MoveTo(const CSSIntPoint& aPos, bool aUpdateAttrs) {
++void nsMenuPopupFrame::MoveTo(const CSSPoint& aPos, bool aUpdateAttrs) {
+   nsIWidget* widget = GetWidget();
+-  if ((mScreenRect.x == aPos.x && mScreenRect.y == aPos.y) &&
++  nsPoint appUnitsPos = mozilla::CSSPixel::ToAppUnits(aPos);
++  if ((mScreenRect.x == appUnitsPos.x && mScreenRect.y == appUnitsPos.y) &&
+       (!widget || widget->GetClientOffset() == mLastClientOffset)) {
+     return;
+   }
+@@ -2400,8 +2402,8 @@ void nsMenuPopupFrame::MoveTo(const CSSI
+   }
+ 
+   mAnchorType = MenuPopupAnchorType_Point;
+-  mScreenRect.x = aPos.x - nsPresContext::AppUnitsToIntCSSPixels(margin.left);
+-  mScreenRect.y = aPos.y - nsPresContext::AppUnitsToIntCSSPixels(margin.top);
++  mScreenRect.x = appUnitsPos.x - margin.left;
++  mScreenRect.y = appUnitsPos.y - margin.top;
+ 
+   SetPopupPosition(nullptr, true, false);
+ 
+@@ -2409,8 +2411,8 @@ void nsMenuPopupFrame::MoveTo(const CSSI
+   if (aUpdateAttrs && (popup->HasAttr(kNameSpaceID_None, nsGkAtoms::left) ||
+                        popup->HasAttr(kNameSpaceID_None, nsGkAtoms::top))) {
+     nsAutoString left, top;
+-    left.AppendInt(aPos.x);
+-    top.AppendInt(aPos.y);
++    left.AppendInt(RoundedToInt(aPos).x);
++    top.AppendInt(RoundedToInt(aPos).y);
+     popup->SetAttr(kNameSpaceID_None, nsGkAtoms::left, left, false);
+     popup->SetAttr(kNameSpaceID_None, nsGkAtoms::top, top, false);
+   }
+Index: firefox-91.0.2/layout/xul/nsXULPopupManager.cpp
+===================================================================
+--- firefox-91.0.2.orig/layout/xul/nsXULPopupManager.cpp
++++ firefox-91.0.2/layout/xul/nsXULPopupManager.cpp
+@@ -269,8 +269,7 @@ bool nsXULPopupManager::Rollup(uint32_t
+       if (popupFrame->IsAnchored()) {
+         // Check if the popup has a screen anchor rectangle. If not, get the
+         // rectangle from the anchor element.
+-        anchorRect =
+-            CSSIntRect::FromUnknownRect(popupFrame->GetScreenAnchorRect());
++        anchorRect = popupFrame->GetScreenAnchorRect();
+         if (anchorRect.x == -1 || anchorRect.y == -1) {
+           nsCOMPtr<nsIContent> anchor = popupFrame->GetAnchor();
+ 
+@@ -507,7 +506,7 @@ void nsXULPopupManager::PopupMoved(nsIFr
+   } else {
+     CSSPoint cssPos = LayoutDeviceIntPoint::FromUnknownPoint(aPnt) /
+                       menuPopupFrame->PresContext()->CSSToDevPixelScale();
+-    menuPopupFrame->MoveTo(RoundedToInt(cssPos), false);
++    menuPopupFrame->MoveTo(cssPos, false);
+   }
+ }
+ 
--- a/series	Fri Aug 13 23:47:08 2021 +0200
+++ b/series	Fri Sep 03 12:59:43 2021 +0200
@@ -23,6 +23,7 @@
 mozilla-bmo1626236.patch
 mozilla-s390x-skia-gradient.patch
 mozilla-libavcodec58_91.patch
+mozilla-bmo1708709.patch
 
 # Firefox patches
 firefox-kde.patch