On the SVG rotating tiger we spend about 0.9% of the time in UsingEffectsForFrame() which always returns false for svg content. We could avoid calling this by hanging a flag on the frame that would mark whether we are an SVG frame or not.
I'm actually pretty surprised that we don't have this flag already. It may also be useful in other pieces of our generic layout code where we do SVG specific hacks.
Where are we calling it from? Invalidation, or something else?
(In reply to comment #2)
> Where are we calling it from? Invalidation, or something else?
So bug 614732 might get us that "for free".
Sounds like it's just a case of adding an |frame->IsFrameOfType(nsIFrame::eSVG)| check. Either that or wait to see if bug 614732 or its followups fix this as bz says.
Should we just reorder the UsingEffectsForFrame() method in nsSVGIntegrationUtils so that it checks for a SVG frame first rather than last?
Created attachment 541060 [details] [diff] [review]
Comment on attachment 541060 [details] [diff] [review]
IsFrameOfType is still going to be a virtual call, but this patch seems like pure win.
Created attachment 541157 [details] [diff] [review]
hg changeset patch
Landed on inbound.