Bug 1410583 - Take clipped-bounds as the paint region for blob image. r=jrmuizel
MozReview-Commit-ID: BfikzUttadC
--- a/gfx/layers/wr/WebRenderCommandBuilder.cpp
+++ b/gfx/layers/wr/WebRenderCommandBuilder.cpp
@@ -427,24 +427,17 @@ WebRenderCommandBuilder::GenerateFallbac
const StackingContextHelper& aSc,
nsDisplayListBuilder* aDisplayListBuilder,
LayoutDeviceRect& aImageRect)
{
RefPtr<WebRenderFallbackData> fallbackData = CreateOrRecycleWebRenderUserData<WebRenderFallbackData>(aItem);
bool snap;
nsRect itemBounds = aItem->GetBounds(aDisplayListBuilder, &snap);
- nsRect clippedBounds = itemBounds;
-
- const DisplayItemClip& clip = aItem->GetClip();
- // Blob images will only draw the visible area of the blob so we don't need to clip
- // them here and can just rely on the webrender clipping.
- if (clip.HasClip() && !gfxPrefs::WebRenderBlobImages()) {
- clippedBounds = itemBounds.Intersect(clip.GetClipRect());
- }
+ nsRect clippedBounds = aItem->GetClippedBounds(aDisplayListBuilder);
// nsDisplayItem::Paint() may refer the variables that come from ComputeVisibility().
// So we should call RecomputeVisibility() before painting. e.g.: nsDisplayBoxShadowInner
// uses mVisibleRegion in Paint() and mVisibleRegion is computed in
// nsDisplayBoxShadowInner::ComputeVisibility().
nsRegion visibleRegion(clippedBounds);
aItem->RecomputeVisibility(aDisplayListBuilder, &visibleRegion);