SVG:CoveredRegions
The SVG code caches "Covered Regions" for the frames corresponding to SVG leaf content (foreignObject, path geometry elements, and text nodes). These covered regions currently correspond to bounding box of the element's rendered pixels, stored in nsIFrame::mRect (therefore in appunits), relative to the nearest nsSVGOuterSVGFrame. They currently do not include the effects of any filters; for Gecko 1.9.1 this will be changed so that they include the effects of the filter (if any) on the leaf node, but they will still not include the effects of filters on ancestor nodes. (For example, a blur filter on an element can cause that element or its descendants to affect a larger pixel area.)
We do not store covered regions for container elements. This means every time we paint, we traverse the entire SVG frame subtree. nsSVGUtils::PaintFrameWithEffects only culls leaf frames that fail to intersect the dirty region. Currently, if a container frame has effects (filter, mask, opacity), we execute those effects even if none of its children are being drawn. Fortunately those effects should short-circuit quite well since they do take account of the dirty rect.