author | Sebastian Hengst <archaeopteryx@coole-files.de> |
Fri, 17 Mar 2017 21:53:24 +0100 | |
changeset 348308 | 5728195b4bc15492b515f84bc35fde004fc5af2b |
parent 348307 | a54fc2172514a9f89806c0862e59ea52f271b8af |
child 348309 | dbabc189256eac2eb15147968632164bb5d33ecc |
push id | 88187 |
push user | archaeopteryx@coole-files.de |
push date | Sat, 18 Mar 2017 15:27:00 +0000 |
treeherder | mozilla-inbound@0b1d3324cffe [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
bugs | 1345853 |
milestone | 55.0a1 |
backs out | a46f3da8aba674893eccec275908b31453d7d6b0 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/svg/SVGGeometryFrame.cpp +++ b/layout/svg/SVGGeometryFrame.cpp @@ -284,17 +284,17 @@ SVGGeometryFrame::PaintSVG(gfxContext& a { if (!StyleVisibility()->IsVisible()) return DrawResult::SUCCESS; // Matrix to the geometry's user space: gfxMatrix newMatrix = aContext.CurrentMatrix().PreMultiply(aTransform).NudgeToIntegers(); if (newMatrix.IsSingular()) { - return DrawResult::SUCCESS; + return DrawResult::BAD_ARGS; } uint32_t paintOrder = StyleSVG()->mPaintOrder; DrawResult result = DrawResult::SUCCESS; if (paintOrder == NS_STYLE_PAINT_ORDER_NORMAL) { result = Render(&aContext, eRenderFill | eRenderStroke, newMatrix); PaintMarkers(aContext, aTransform);
--- a/layout/svg/SVGTextFrame.cpp +++ b/layout/svg/SVGTextFrame.cpp @@ -3590,17 +3590,17 @@ SVGTextFrame::PaintSVG(gfxContext& aCont // If we are asked to paint before reflow has recomputed mPositions etc. // directly via PaintSVG, rather than via a display list, then we need // to bail out here too. return DrawResult::SUCCESS; } if (aTransform.IsSingular()) { NS_WARNING("Can't render text element!"); - return DrawResult::SUCCESS; + return DrawResult::BAD_ARGS; } gfxMatrix matrixForPaintServers = aTransform * initialMatrix; // Check if we need to draw anything. if (aDirtyRect) { NS_ASSERTION(!NS_SVGDisplayListPaintingEnabled() || (mState & NS_FRAME_IS_NONDISPLAY),
--- a/layout/svg/nsSVGForeignObjectFrame.cpp +++ b/layout/svg/nsSVGForeignObjectFrame.cpp @@ -216,17 +216,17 @@ nsSVGForeignObjectFrame::PaintSVG(gfxCon return DrawResult::SUCCESS; nsIFrame* kid = PrincipalChildList().FirstChild(); if (!kid) return DrawResult::SUCCESS; if (aTransform.IsSingular()) { NS_WARNING("Can't render foreignObject element!"); - return DrawResult::SUCCESS; + return DrawResult::BAD_ARGS; } nsRect kidDirtyRect = kid->GetVisualOverflowRect(); /* Check if we need to draw anything. */ if (aDirtyRect) { NS_ASSERTION(!NS_SVGDisplayListPaintingEnabled() || (mState & NS_FRAME_IS_NONDISPLAY),
--- a/layout/svg/nsSVGGradientFrame.cpp +++ b/layout/svg/nsSVGGradientFrame.cpp @@ -251,29 +251,29 @@ nsSVGGradientFrame::GetPaintServerPatter } // Get the transform list (if there is one). We do this after the returns // above since this call can be expensive when "gradientUnits" is set to // "objectBoundingBox" (since that requiring a GetBBox() call). gfxMatrix patternMatrix = GetGradientTransform(aSource, aOverrideBounds); if (patternMatrix.IsSingular()) { - return MakePair(DrawResult::SUCCESS, RefPtr<gfxPattern>()); + return MakePair(DrawResult::BAD_ARGS, RefPtr<gfxPattern>()); } // revert any vector effect transform so that the gradient appears unchanged if (aFillOrStroke == &nsStyleSVG::mStroke) { gfxMatrix userToOuterSVG; if (nsSVGUtils::GetNonScalingStrokeTransform(aSource, &userToOuterSVG)) { patternMatrix *= userToOuterSVG; } } if (!patternMatrix.Invert()) { - return MakePair(DrawResult::SUCCESS, RefPtr<gfxPattern>()); + return MakePair(DrawResult::BAD_ARGS, RefPtr<gfxPattern>()); } RefPtr<gfxPattern> gradient = CreateGradient(); if (!gradient || gradient->CairoStatus()) { return MakePair(DrawResult::TEMPORARY_ERROR, RefPtr<gfxPattern>()); } uint16_t aSpread = GetSpreadMethod();
--- a/layout/svg/nsSVGMaskFrame.cpp +++ b/layout/svg/nsSVGMaskFrame.cpp @@ -315,17 +315,17 @@ nsSVGMaskFrame::GetMaskForMaskedFrame(Ma maskSurfaceSize, aParams.opacity); } maskSurface->Unmap(); destMaskSurface->Unmap(); // Moz2D transforms in the opposite direction to Thebes if (!maskSurfaceMatrix.Invert()) { - return MakePair(DrawResult::SUCCESS, RefPtr<SourceSurface>()); + return MakePair(DrawResult::TEMPORARY_ERROR, RefPtr<SourceSurface>()); } *aParams.maskTransform = ToMatrix(maskSurfaceMatrix); RefPtr<SourceSurface> surface = destMaskSurface.forget(); return MakePair(result, Move(surface)); } gfxRect
--- a/layout/svg/nsSVGPatternFrame.cpp +++ b/layout/svg/nsSVGPatternFrame.cpp @@ -296,17 +296,17 @@ nsSVGPatternFrame::PaintPattern(const Dr return MakePair(DrawResult::SUCCESS, RefPtr<SourceSurface>()); } // Construct the CTM that we will provide to our children when we // render them into the tile. gfxMatrix ctm = ConstructCTM(viewBox, patternContentUnits, patternUnits, callerBBox, aContextMatrix, aSource); if (ctm.IsSingular()) { - return MakePair(DrawResult::SUCCESS, RefPtr<SourceSurface>()); + return MakePair(DrawResult::BAD_ARGS, RefPtr<SourceSurface>()); } if (patternWithChildren->mCTM) { *patternWithChildren->mCTM = ctm; } else { patternWithChildren->mCTM = new gfxMatrix(ctm); } @@ -323,27 +323,27 @@ nsSVGPatternFrame::PaintPattern(const Dr // revert the vector effect transform so that the pattern appears unchanged if (aFillOrStroke == &nsStyleSVG::mStroke) { gfxMatrix userToOuterSVG; if (nsSVGUtils::GetNonScalingStrokeTransform(aSource, &userToOuterSVG)) { patternTransform *= ToMatrix(userToOuterSVG); if (patternTransform.IsSingular()) { NS_WARNING("Singular matrix painting non-scaling-stroke"); - return MakePair(DrawResult::SUCCESS, RefPtr<SourceSurface>()); + return MakePair(DrawResult::BAD_ARGS, RefPtr<SourceSurface>()); } } } // Get the transformation matrix that we will hand to the renderer's pattern // routine. *patternMatrix = GetPatternMatrix(patternUnits, patternTransform, bbox, callerBBox, aContextMatrix); if (patternMatrix->IsSingular()) { - return MakePair(DrawResult::SUCCESS, RefPtr<SourceSurface>()); + return MakePair(DrawResult::BAD_ARGS, RefPtr<SourceSurface>()); } // Now that we have all of the necessary geometries, we can // create our surface. gfxRect transformedBBox = ThebesRect(patternTransform.TransformBounds(ToRect(bbox))); bool resultOverflows; IntSize surfaceSize =