CSS3 gradients allow use of various units to control color stop position, including 'em'. However, we cache gradients based purely on size, so fail to repaint them when just font size changes.
It may also be that a gradient shared between two renderers with different font sizes does not render correctly in one of them.
Created attachment 80570 [details] Patch
Comment on attachment 80570 [details] Patch Hmm... I wonder how many other places we get this wrong. :)
Comment on attachment 80570 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=80570&action=review > Source/WebCore/css/CSSGradientValue.cpp:412 > + for (size_t i = 0; i < m_stops.size(); i++) { Please change this to ++i.
http://trac.webkit.org/changeset/77089