From a00f951356874b4abe8bfee823e699650680ba6a Mon Sep 17 00:00:00 2001 From: Jeff Muizelaar Date: Wed, 13 Mar 2019 15:43:56 +0000 Subject: [PATCH] Bug 1534250. Always paint the entire mask. r=mattwoodrow Previously we would only paint the building area but we would not do anything to check that the building area had changed. Since, we're already allocating a surface for the entire item it's better to just paint it and not worry about doing extra invalidations. Originally, we used mVisibleRect here. That was changed to GetPaintRect() in part 1 of 1460491 and then to GetBuildingRect in part 2. However, I think the original code was always wrong and we should've been using mBounds the whole time. Differential Revision: https://phabricator.services.mozilla.com/D23215 --HG-- extra : moz-landing-system : lando --- layout/painting/nsDisplayList.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layout/painting/nsDisplayList.cpp b/layout/painting/nsDisplayList.cpp index 46aa6c8adb58..6d3601f2138f 100644 --- a/layout/painting/nsDisplayList.cpp +++ b/layout/painting/nsDisplayList.cpp @@ -8972,7 +8972,7 @@ bool nsDisplayMasksAndClipPaths::PaintMask(nsDisplayListBuilder* aBuilder, : imgIContainer::FLAG_SYNC_DECODE_IF_FAST); nsRect borderArea = nsRect(ToReferenceFrame(), mFrame->GetSize()); nsSVGIntegrationUtils::PaintFramesParams params( - *aMaskContext, mFrame, GetBuildingRect(), borderArea, aBuilder, nullptr, + *aMaskContext, mFrame, mBounds, borderArea, aBuilder, nullptr, mHandleOpacity, imgParams); ComputeMaskGeometry(params); bool painted = nsSVGIntegrationUtils::PaintMask(params);