Package: firefox
Version: 61.0-1
Severity: wishlist
Tags: patch
Control: forwarded -1 https://bugzilla.mozilla.org/1408446

This patch works with Firefox 61. It is essentially the same as the one
for Firefox 60 in upstream report.
Index: firefox-61.0/browser/components/extensions/parent/ext-windows.js
===================================================================
--- firefox-61.0.orig/browser/components/extensions/parent/ext-windows.js
+++ firefox-61.0/browser/components/extensions/parent/ext-windows.js
@@ -225,6 +225,10 @@ this.windows = class extends ExtensionAP
             if (createData.titlePreface !== null) {
               win.setTitlePreface(createData.titlePreface);
             }
+            // Do a dummy resize (bug 1408446)
+            window.addEventListener("DOMContentLoaded", () => {
+              window.resizeTo(window.outerWidth, window.outerHeight);
+            });
             return win.convert({populate: true});
           });
         },
Index: firefox-61.0/widget/gtk/nsWindow.cpp
===================================================================
--- firefox-61.0.orig/widget/gtk/nsWindow.cpp
+++ firefox-61.0/widget/gtk/nsWindow.cpp
@@ -1112,6 +1112,22 @@ nsWindow::Show(bool aState)
     NativeShow(aState);
 }
 
+// Add-ons may open windows that do not display their contents (bug 1408446), so
+// invalidate the related layer when doing a repaint
+static void
+InvalidateFirstChildLayer(LayerManager* manager)
+{
+    Layer* root = manager->GetRoot();
+    if (root) {
+        Layer* layer = root->GetFirstChild();
+        if (layer) {
+            PaintedLayer *pLayer = layer->AsPaintedLayer();
+            if (pLayer)
+                pLayer->InvalidateWholeLayer();
+        }
+    }
+}
+
 void
 nsWindow::Resize(double aWidth, double aHeight, bool aRepaint)
 {
@@ -1131,6 +1147,9 @@ nsWindow::Resize(double aWidth, double a
 
     NativeResize();
 
+    if (aRepaint)
+        InvalidateFirstChildLayer(GetLayerManager());
+
     NotifyRollupGeometryChange();
 
     // send a resize notification if this is a toplevel
@@ -1159,6 +1178,9 @@ nsWindow::Resize(double aX, double aY, d
 
     NativeMoveResize();
 
+    if (aRepaint)
+        InvalidateFirstChildLayer(GetLayerManager());
+
     NotifyRollupGeometryChange();
 
     if (mIsTopLevel || mListenForResizes) {

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to