Index: Source/core/layout/LayoutObject.cpp |
diff --git a/Source/core/layout/LayoutObject.cpp b/Source/core/layout/LayoutObject.cpp |
index 6ddea1c970ff66b203ede634690f88b51eb529ca..7adc2e04f3690d1240d707e3e38c4139b98bf069 100644 |
--- a/Source/core/layout/LayoutObject.cpp |
+++ b/Source/core/layout/LayoutObject.cpp |
@@ -1701,6 +1701,13 @@ StyleDifference LayoutObject::adjustStyleDifference(StyleDifference diff) const |
diff.setNeedsPaintInvalidationLayer(); |
} |
+ // If backdrop filter changed, and the layer does not paint into its own separate backing or it paints with filters, then we need to invalidate paints. |
+ if (diff.backdropFilterChanged() && hasLayer()) { |
+ DeprecatedPaintLayer* layer = toLayoutBoxModelObject(this)->layer(); |
+ if (!layer->hasStyleDeterminedDirectCompositingReasons() || layer->paintsWithBackdropFilters()) |
+ diff.setNeedsPaintInvalidationLayer(); |
+ } |
+ |
if (diff.textOrColorChanged() && !diff.needsPaintInvalidation()) { |
if (style()->hasBorder() || style()->hasOutline() |
|| (isText() && !toLayoutText(this)->isAllCollapsibleWhitespace())) |