Bug 1373739 - Constrain widget size to screen size in headless mode. r?jrmuizel draft
authorMichael Smith <michael@spinda.net>
Thu, 22 Jun 2017 15:31:32 -0700
changeset 620645 df073d68225b28d8da4385b5c5aa2835aabe912e
parent 620644 2115944296bffca3d3b075d86e136882f5613174
child 620646 546ac22e03f8ae6e9ad934ce1b11c414c7854cb2
push id72121
push userbmo:lists@spinda.net
push dateThu, 03 Aug 2017 18:54:01 +0000
reviewersjrmuizel
bugs1373739
milestone56.0a1
Bug 1373739 - Constrain widget size to screen size in headless mode. r?jrmuizel Every other widget backend ensures widget size is bounded to screen size, but this check was missing from headless. MozReview-Commit-ID: 6bKIAkdRxoO
widget/headless/HeadlessWidget.cpp
--- a/widget/headless/HeadlessWidget.cpp
+++ b/widget/headless/HeadlessWidget.cpp
@@ -156,18 +156,21 @@ HeadlessWidget::GetLayerManager(PLayerTr
   return mLayerManager;
 }
 
 void
 HeadlessWidget::Resize(double aWidth,
                        double aHeight,
                        bool   aRepaint)
 {
-  mBounds.SizeTo(LayoutDeviceIntSize(NSToIntRound(aWidth),
-                                     NSToIntRound(aHeight)));
+  int32_t width = NSToIntRound(aWidth);
+  int32_t height = NSToIntRound(aHeight);
+  ConstrainSize(&width, &height);
+  mBounds.SizeTo(LayoutDeviceIntSize(width, height));
+
   if (mLayerManager) {
     RefPtr<gfxContext> ctx = CreateDefaultTarget(IntSize(mBounds.width, mBounds.height));
     mLayerManager->AsBasicLayerManager()->SetDefaultTarget(ctx);
   }
   if (mWidgetListener) {
     mWidgetListener->WindowResized(this, mBounds.width, mBounds.height);
   }
   if (mAttachedWidgetListener) {