diff --git a/layout/svg/nsSVGUtils.cpp b/layout/svg/nsSVGUtils.cpp index 85152b6956f1..e55a539a71b8 100644 --- a/layout/svg/nsSVGUtils.cpp +++ b/layout/svg/nsSVGUtils.cpp @@ -1862,7 +1862,15 @@ nsSVGUtils::GetSVGGlyphExtents(Element* aElement, if (!svgFrame) { return false; } - *aResult = svgFrame->GetBBoxContribution(aSVGToAppSpace, + + gfxMatrix transform(aSVGToAppSpace); + nsIContent* content = frame->GetContent(); + if (content->IsSVG()) { + transform = static_cast(content)-> + PrependLocalTransformsTo(aSVGToAppSpace); + } + + *aResult = svgFrame->GetBBoxContribution(transform, nsSVGUtils::eBBoxIncludeFill | nsSVGUtils::eBBoxIncludeFillGeometry | nsSVGUtils::eBBoxIncludeStroke | nsSVGUtils::eBBoxIncludeStrokeGeometry | nsSVGUtils::eBBoxIncludeMarkers);