if (!mRenderer) AlertMissingGDIPlus();
nsresult nsSVGOuterSVGFrame::Init(){#if (defined(MOZ_SVG_RENDERER_GDIPLUS) + \     defined(MOZ_SVG_RENDERER_LIBART) + \     defined(MOZ_SVG_RENDERER_CAIRO) > 1)#error "Multiple SVG renderers. Please choose one manually."#elif defined(MOZ_SVG_RENDERER_GDIPLUS)    mRenderer = do_CreateInstance(NS_SVG_RENDERER_GDIPLUS_CONTRACTID);#elif defined(MOZ_SVG_RENDERER_LIBART)  mRenderer = do_CreateInstance(NS_SVG_RENDERER_LIBART_CONTRACTID);#elif defined(MOZ_SVG_RENDERER_CAIRO)  mRenderer = do_CreateInstance(NS_SVG_RENDERER_CAIRO_CONTRACTID);#else#error "No SVG renderer."#endif  NS_ASSERTION(mRenderer, "could not get renderer");  // we are an *outer* svg element, so this frame will become the  // coordinate context for our content element:  float mmPerPx = GetTwipsPerPx() / TWIPS_PER_POINT_FLOAT / (72.0f * 0.03937f);  SetCoordCtxMMPerPx(mmPerPx, mmPerPx);    nsCOMPtr<nsISVGSVGElement> SVGElement = do_QueryInterface(mContent);  NS_ASSERTION(SVGElement, "wrong content element");  SVGElement->SetParentCoordCtxProvider(this);  SVGElement->GetZoomAndPanEnum(getter_AddRefs(mZoomAndPan));  NS_ADD_SVGVALUE_OBSERVER(mZoomAndPan);  SVGElement->GetCurrentTranslate(getter_AddRefs(mCurrentTranslate));  NS_ADD_SVGVALUE_OBSERVER(mCurrentTranslate);  SVGElement->GetCurrentScaleNumber(getter_AddRefs(mCurrentScale));  NS_ADD_SVGVALUE_OBSERVER(mCurrentScale);    AddAsWidthHeightObserver();  SuspendRedraw();  return NS_OK;}