The attached repro case demonstrates that applying a scale() transform to an SVG shape that has both gradient fill and the CSS -webkit-svg-shadow property applied will result in rasterized scaling of the shape. <rdar://problem/10415483> I have a patch.
Created attachment 122820 [details] repro
Created attachment 122825 [details] patch
I just found an issue with zooming and ::strokeRect, so clearing review for now.
Created attachment 122838 [details] patch v.2
Comment on attachment 122838 [details] patch v.2 View in context: https://bugs.webkit.org/attachment.cgi?id=122838&action=review > Source/WebCore/platform/graphics/transforms/AffineTransform.cpp:257 > + double width2, height2; > + width2 = size.width() * xScale(); > + height2 = size.height() * yScale(); Just do: double width2 = double height2 = Why the '2'? > Source/WebCore/platform/graphics/transforms/AffineTransform.cpp:266 > + double width2, height2; > + width2 = size.width() * xScale(); > + height2 = size.height() * yScale(); Ditto.
Comment on attachment 122838 [details] patch v.2 Attachment 122838 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/11283028 New failing tests: svg/custom/transform-with-shadow-and-gradient.svg
Landed as http://trac.webkit.org/changeset/105296 with half of Simon's changes (I used the "2" suffix to fit in with that function's siblings).