Index: Source/core/layout/LayoutObject.cpp |
diff --git a/Source/core/layout/LayoutObject.cpp b/Source/core/layout/LayoutObject.cpp |
index ea3e8a38731fcb5579ab27e653bd98016a5963d9..72a589fbcc157b0f6ec810731cc6157286d718e9 100644 |
--- a/Source/core/layout/LayoutObject.cpp |
+++ b/Source/core/layout/LayoutObject.cpp |
@@ -1754,6 +1754,10 @@ void LayoutObject::setStyle(PassRefPtr<ComputedStyle> style) |
diff = adjustStyleDifference(diff); |
+ if (m_style) { |
+ if (LayoutFlowThread* flowThread = flowThreadContainingBlock()) |
+ flowThread->flowThreadDescendantStyleWillChange(this, diff, *style); |
+ } |
styleWillChange(diff, *style); |
RefPtr<ComputedStyle> oldStyle = m_style.release(); |
@@ -1770,6 +1774,10 @@ void LayoutObject::setStyle(PassRefPtr<ComputedStyle> style) |
bool doesNotNeedLayoutOrPaintInvalidation = !m_parent; |
styleDidChange(diff, oldStyle.get()); |
+ if (oldStyle.get()) { |
+ if (LayoutFlowThread* flowThread = flowThreadContainingBlock()) |
+ flowThread->flowThreadDescendantStyleDidChange(this, diff, *oldStyle.get()); |
+ } |
// FIXME: |this| might be destroyed here. This can currently happen for a LayoutTextFragment when |
// its first-letter block gets an update in LayoutTextFragment::styleDidChange. For LayoutTextFragment(s), |