I have an experiment.
Created attachment 202000 [details] First attempt
Created attachment 202001 [details] Second attempt
Comment on attachment 202001 [details] Second attempt View in context: https://bugs.webkit.org/attachment.cgi?id=202001&action=review > Source/WebCore/rendering/RenderObject.cpp:1831 > - if (updatedDiff == StyleDifferenceRepaintLayer || updatedDiff == StyleDifferenceRepaint) { > + if (updatedDiff == StyleDifferenceRepaintLayer || updatedDiff == StyleDifferenceRepaint || (updatedDiff == StyleDifferenceRepaintIfText && hasImmediateNonWhitespaceTextChild())) { Might be nice to factor this increasingly complex condition to an inline function. > Source/WebCore/rendering/RenderObject.cpp:1875 > - if (m_parent && (diff == StyleDifferenceRepaint || newStyle->outlineSize() < m_style->outlineSize())) > + if (m_parent && (diff == StyleDifferenceRepaint || newStyle->outlineSize() < m_style->outlineSize() || (diff == StyleDifferenceRepaintIfText && hasImmediateNonWhitespaceTextChild()))) Here too.
Can we do the same optimisation for layout triggering text properties (StyleDifferenceLayoutIfText)?
Committed r150259: <http://trac.webkit.org/changeset/150259>