setting the transform on an SVG renderer causes a layout even if no change was made I think the lively kernel has a "bug" where they are setting the same transform on some of their elements repeatedly. We relayout (and repaint) those elements, even if the transform hasn't changed. We shouldn't do that. :(
Created attachment 16558 [details] test case using setAttribute
Created attachment 16559 [details] another test case using TransformList::initialize
Created attachment 16560 [details] potential fix
So the "potential fix" doesn't actually work for *either* test case due to notifyAttributeChanged and the ultimate-evil which that function is. nAC is called indiscriminately *any time* any attribute changes, and is the single "notification method" from tear-off javascript bindings back into SVG DOM elements. We've had at least one bug on the subject before.
Comment on attachment 16560 [details] potential fix Looks fine -- we might want to go through and do similar on all the other similar attribute setters.
Comment on attachment 16560 [details] potential fix Hadn't meant for this to be reviewed. We could apply this, but it doesn't help us much given nAC has already marked us for layout before we even get to this code. :(
The potential fix was landed as part of bug 15388: r26077 on feature-branch.
The bug is still valid, though the codebase changed a lot since 2007, so I had to change the title to reflect what is really happening these days. Uploading a patch to fix this problem soon.
Created attachment 53110 [details] Patch
Comment on attachment 53110 [details] Patch Fantastic patch! r=me
Committed r57509: <http://trac.webkit.org/changeset/57509>