fune/layout/svg
Kartikaya Gupta 78dba184db Bug 1461313 - Handle invalid clip-path URIs with WebRender. r=mstange
In the case of an invalid clip-path, the browser is supposed to discard the
mask entirely. In the non-webrender codepath this would happen
implicitly because the computed MaskUsage would have no flags set, and
so no actions would be taken on the gfxContext which contained the
display items rasterized so far. In the WebRender codepath, though, we
invoke the code on a A8 drawtarget that's zero-filled, so if PaintMask
fails to rasterize anything into it, it gets treated as a "mask everything
out" mask. Instead, this patch makes it so that we detect the scenario
where the computed MaskUsage is a no-op, and ensure that we don't apply
the mask in that case.

An alternative approach considered was to initialize the A8 drawtarget to
white instead of black but in cases where there is an actual mask, the
rest of the code assumes it is zero-filled and so that doesn't work.

MozReview-Commit-ID: Hw7nCiUXVJl

--HG--
extra : rebase_source : 241d550fa0ed1b3bd088c73d9565b166acbcece8
2018-07-05 08:05:34 -04:00
..
crashtests Bug 1467552 - make VectorImage::Show force OP_OVER. r=bas 2018-06-08 12:38:13 -04:00
tests Bug 1470163: Move test_disabled to an iframe. r=heycam 2018-06-25 10:55:57 +02:00
AutoReferenceChainGuard.h
moz.build
nsCSSClipPathInstance.cpp
nsCSSClipPathInstance.h
nsCSSFilterInstance.cpp Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj 2018-06-17 22:43:11 -07:00
nsCSSFilterInstance.h
nsFilterInstance.cpp Backed out changeset 01837d6c41b6 (bug 1372458) for Reftest failures on layout/reftests/svg/filters-and-group-opacity-01.svg 2018-07-05 03:01:56 +03:00
nsFilterInstance.h Backed out changeset 01837d6c41b6 (bug 1372458) for Reftest failures on layout/reftests/svg/filters-and-group-opacity-01.svg 2018-07-05 03:01:56 +03:00
nsISVGSVGFrame.h
nsSVGAFrame.cpp Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot 2018-06-26 17:05:01 -07:00
nsSVGClipPathFrame.cpp Backed out changeset 51cd668c0e87 (bug 1459890) dev request a=backout CLOSED TREE 2018-05-17 01:29:54 +03:00
nsSVGClipPathFrame.h Backed out changeset 51cd668c0e87 (bug 1459890) dev request a=backout CLOSED TREE 2018-05-17 01:29:54 +03:00
nsSVGContainerFrame.cpp Bug 1447827: Remove ServoRestyleManager. r=xidorn 2018-04-07 15:50:06 +02:00
nsSVGContainerFrame.h
nsSVGDisplayableFrame.h
nsSVGFilterFrame.cpp
nsSVGFilterFrame.h
nsSVGFilterInstance.cpp Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot 2018-06-26 17:05:01 -07:00
nsSVGFilterInstance.h
nsSVGFilterPaintCallback.h
nsSVGForeignObjectFrame.cpp
nsSVGForeignObjectFrame.h
nsSVGGenericContainerFrame.cpp
nsSVGGenericContainerFrame.h
nsSVGGFrame.cpp
nsSVGGFrame.h
nsSVGGradientFrame.cpp Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot 2018-06-26 17:05:01 -07:00
nsSVGGradientFrame.h
nsSVGImageFrame.cpp Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot 2018-06-26 17:05:01 -07:00
nsSVGImageFrame.h Bug 1468582: Remove using namespace statements from layout headers. r=mats 2018-06-14 09:08:20 -07:00
nsSVGInnerSVGFrame.cpp
nsSVGInnerSVGFrame.h
nsSVGIntegrationUtils.cpp Bug 1461313 - Handle invalid clip-path URIs with WebRender. r=mstange 2018-07-05 08:05:34 -04:00
nsSVGIntegrationUtils.h Bug 1461313 - Handle invalid clip-path URIs with WebRender. r=mstange 2018-07-05 08:05:34 -04:00
nsSVGMarkerFrame.cpp
nsSVGMarkerFrame.h
nsSVGMaskFrame.cpp Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot 2018-06-26 17:05:01 -07:00
nsSVGMaskFrame.h
nsSVGOuterSVGFrame.cpp Bug 1458968 - Create the nsDisplaySVGWrapper item in nsSVGOuterSVGAnonChildFrame, not in nsSVGOuterSVGFrame. r=mattwoodrow 2018-05-22 21:41:32 -04:00
nsSVGOuterSVGFrame.h Bug 1458968 - Create the nsDisplaySVGWrapper item in nsSVGOuterSVGAnonChildFrame, not in nsSVGOuterSVGFrame. r=mattwoodrow 2018-05-22 21:41:32 -04:00
nsSVGPaintServerFrame.h
nsSVGPatternFrame.cpp Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot 2018-06-26 17:05:01 -07:00
nsSVGPatternFrame.h
nsSVGStopFrame.cpp
nsSVGSwitchFrame.cpp
nsSVGSymbolFrame.cpp
nsSVGSymbolFrame.h
nsSVGUseFrame.cpp
nsSVGUseFrame.h
nsSVGUtils.cpp Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot 2018-06-26 17:05:01 -07:00
nsSVGUtils.h Bug 1461313 - Handle invalid clip-path URIs with WebRender. r=mstange 2018-07-05 08:05:34 -04:00
nsSVGViewportFrame.cpp
nsSVGViewportFrame.h
svg.css Bug 1468133: Remove the optimization to lazily load non-SVG styles since it's not relevant anymore. r=heycam 2018-06-22 03:42:46 +02:00
SVGContextPaint.cpp Bug 1455885: Make the SVG context paint not use a node property, but a member in SVGDocument. r=jwatt 2018-04-26 17:07:39 +02:00
SVGContextPaint.h Bug 1453795 - SVG - Initialize member fields in classes/ structures. r=jwatt 2018-06-16 13:54:44 +03:00
SVGFEContainerFrame.cpp
SVGFEImageFrame.cpp Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot 2018-06-26 17:05:01 -07:00
SVGFELeafFrame.cpp
SVGFEUnstyledLeafFrame.cpp
SVGGeometryFrame.cpp
SVGGeometryFrame.h
SVGImageContext.cpp
SVGImageContext.h
SVGObserverUtils.cpp Bug 1449670, part 1 - Convert IsNodeOfType(nsINode::eTEXT) to IsText(). r=bz 2018-04-12 15:41:00 -07:00
SVGObserverUtils.h
SVGTextFrame.cpp Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot 2018-06-26 17:05:01 -07:00
SVGTextFrame.h Bug 1459696 - Improve const-correctness of nsIFrame methods and functions that accept an nsIFrame* argument. r=mstange 2018-05-28 19:58:25 -04:00
SVGViewFrame.cpp Bug 1455763 - Remove SVGViewElement.viewTarget r=heycam r=mystor 2018-04-25 22:44:31 +01:00