Index: Source/core/dom/Element.cpp |
diff --git a/Source/core/dom/Element.cpp b/Source/core/dom/Element.cpp |
index 6712b26eaea464b181676f95364932ab4253517e..cfebcb0116abd5dd312801a01d6f3143d65dfd16 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(); |
} |