The covered region hack introduced in bug 614732 should be eliminated to avoid doing extra work. See bug 614732 comment 32 option #1.
More specifically the patch from bug 614732 comment 35 should be removed when bug 539356 is fixed.
Created attachment 636181 [details] [diff] [review]
Once bug 767823 is fixed, the only GetCoveredRegion caller is BoxToRect::AddBox(), via nsSVGUtils::GetOuterSVGFrameAndCoveredRegion, which is called under getBoundingClientRect/getClientRects. At that point it doesn't seem like it's worth having mCoveredRegion members on SVG leaf frames. For now we probably want to keep the GetCoveredRegion methods until we can figure out if we're going to break much content by changing them to use visual overflow rects. But I think we want getBoundingClientRect/getClientRects to act more like getBBox, in that the information is calculated on demand, rather than calculated just in case and cached the frames. This patch makes that so.
Comment on attachment 636181 [details] [diff] [review]
>+ // GetCanvasTM includes the x,y translation
>+ return nsSVGUtils::TransformFrameRectToOuterSVG(gfxRect(0.0, 0.0, w, h, GetCanvasTM(), PresContext());
Nit: wrap line somewhere. Other instances are already wrapped.