Index: Source/core/dom/Element.cpp |
diff --git a/Source/core/dom/Element.cpp b/Source/core/dom/Element.cpp |
index f6e4dda538c64b121e6ec7c0e55b5b2aae0dd389..f3a28ba17abcdcc4a8623ce6d08fbfc361cf2035 100644 |
--- a/Source/core/dom/Element.cpp |
+++ b/Source/core/dom/Element.cpp |
@@ -951,12 +951,14 @@ void Element::scrollFrameTo(const ScrollToOptions& scrollToOptions) |
void Element::incrementProxyCount() |
{ |
- ensureElementRareData().incrementProxyCount(); |
+ if (ensureElementRareData().incrementProxyCount() == 1) |
+ setNeedsStyleRecalc(LocalStyleChange, StyleChangeReasonForTracing::create(StyleChangeReason::CompositorProxy)); |
} |
void Element::decrementProxyCount() |
{ |
- ensureElementRareData().decrementProxyCount(); |
+ if (ensureElementRareData().decrementProxyCount() == 0) |
+ setNeedsStyleRecalc(LocalStyleChange, StyleChangeReasonForTracing::create(StyleChangeReason::CompositorProxy)); |
} |
IntRect Element::boundsInViewportSpace() |
@@ -1651,6 +1653,9 @@ PassRefPtr<ComputedStyle> Element::styleForLayoutObject() |
style->setHasInlineTransform(inlineStyle->hasProperty(CSSPropertyTransform) || inlineStyle->hasProperty(CSSPropertyWebkitTransform)); |
} |
+ if (hasRareData() && elementRareData()->proxyCount() > 0) |
+ style->setHasCompositorProxy(true); |
+ |
document().didRecalculateStyleForElement(); |
return style.release(); |
} |