zooming with text-rendering: geometricPrecision is very janky It appears that you get sent down the complex-text path with geometricPrecision (not too surprising), and thus we end up in malloc-city! https://bug-99383-attachments.webkit.org/attachment.cgi?id=168805 is the SVG in question, I'll attach a version of it with text-rendering: geometricPrecision enabled.
Created attachment 169052 [details] attachment 168805 [details] with text-rendering: geometricPrecision set on the root element (note how laggy zooming is!)
Created attachment 169053 [details] sample of attachment 168805 [details] zooming (fast-text path)
Created attachment 169055 [details] sample of attachment 169052 [details] zooming (complex text path), notice all the mallocs in under ComplexTextController
I see. geometricPrecision enables ligatures/kerning typesetting features: TypesettingFeatures typesettingFeatures() const { ... case GeometricPrecision: case OptimizeLegibility: features |= Kerning | Ligatures; break; Which then causes us to go down the complex text path: Font::CodePath Font::codePath(const TextRun& run) const { ... if (run.length() > 1 && !WidthIterator::supportsTypesettingFeatures(*this)) return Complex; I suspect that this is "expected" behavior. Although perhaps it's possible to optimize this case, or the complex text path in general. Mitz would know much better than I. I should note that I was turning on geometric-precision to get around the font-stair-stepping, which is covered by bug 60317.