mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-17 23:35:34 +00:00
6b442a22a5
This is done using a similar approach to CreateWebRenderCommands but slightly modified. In particular the active layer check needs to be done before we're ready to CreateWebRenderCommands, but once we decide to activate an item, we can't let CreateWebRenderCommands fail. Unfortunately, the need to query ImageLib for support means we need to do basically ~all of the work of CreateWebRenderCommands to do this check. As such, this introduces a modified version of CreateWebRenderCommands that SVGGeometryFrames implement with a "dry run" flag. When true, it runs the same code but stops short of mutating the WR DL/state. ImageLib may be encouraged to do some extra work that could be thrown away, but I'm not sure there's any way to avoid that. For now, only SVGImageFrame actually provides an implementation. The bulk of the implementation is handling the on-by-default preserveAspectRatio feature of SVG images. It was cleaner to just reimplement that logic than reuse the existing preserveAspectRatio code, as it was too tangled up in the particulars of how the PaintSVG path is designed. Differential Revision: https://phabricator.services.mozilla.com/D59925 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
crashtests | ||
tests | ||
AutoReferenceChainGuard.h | ||
moz.build | ||
nsCSSClipPathInstance.cpp | ||
nsCSSClipPathInstance.h | ||
nsCSSFilterInstance.cpp | ||
nsCSSFilterInstance.h | ||
nsFilterInstance.cpp | ||
nsFilterInstance.h | ||
nsISVGSVGFrame.h | ||
nsSVGAFrame.cpp | ||
nsSVGClipPathFrame.cpp | ||
nsSVGClipPathFrame.h | ||
nsSVGContainerFrame.cpp | ||
nsSVGContainerFrame.h | ||
nsSVGDisplayableFrame.h | ||
nsSVGFilterFrame.cpp | ||
nsSVGFilterFrame.h | ||
nsSVGFilterInstance.cpp | ||
nsSVGFilterInstance.h | ||
nsSVGFilterPaintCallback.h | ||
nsSVGForeignObjectFrame.cpp | ||
nsSVGForeignObjectFrame.h | ||
nsSVGGenericContainerFrame.cpp | ||
nsSVGGenericContainerFrame.h | ||
nsSVGGFrame.cpp | ||
nsSVGGFrame.h | ||
nsSVGGradientFrame.cpp | ||
nsSVGGradientFrame.h | ||
nsSVGImageFrame.cpp | ||
nsSVGImageFrame.h | ||
nsSVGInnerSVGFrame.cpp | ||
nsSVGInnerSVGFrame.h | ||
nsSVGIntegrationUtils.cpp | ||
nsSVGIntegrationUtils.h | ||
nsSVGMarkerFrame.cpp | ||
nsSVGMarkerFrame.h | ||
nsSVGMaskFrame.cpp | ||
nsSVGMaskFrame.h | ||
nsSVGOuterSVGFrame.cpp | ||
nsSVGOuterSVGFrame.h | ||
nsSVGPaintServerFrame.h | ||
nsSVGPatternFrame.cpp | ||
nsSVGPatternFrame.h | ||
nsSVGStopFrame.cpp | ||
nsSVGSwitchFrame.cpp | ||
nsSVGSymbolFrame.cpp | ||
nsSVGSymbolFrame.h | ||
nsSVGUseFrame.cpp | ||
nsSVGUseFrame.h | ||
nsSVGUtils.cpp | ||
nsSVGUtils.h | ||
nsSVGViewportFrame.cpp | ||
nsSVGViewportFrame.h | ||
svg.css | ||
SVGContextPaint.cpp | ||
SVGContextPaint.h | ||
SVGFEContainerFrame.cpp | ||
SVGFEImageFrame.cpp | ||
SVGFELeafFrame.cpp | ||
SVGFEUnstyledLeafFrame.cpp | ||
SVGGeometryFrame.cpp | ||
SVGGeometryFrame.h | ||
SVGImageContext.cpp | ||
SVGImageContext.h | ||
SVGObserverUtils.cpp | ||
SVGObserverUtils.h | ||
SVGTextFrame.cpp | ||
SVGTextFrame.h | ||
SVGViewFrame.cpp |