gecko-dev/layout/svg
cku ec79c18b27 Bug 1287492 - Part 3. (Main) Shrink mTargetBBoxInFilterSpace r=mstange
Clip mTargetBBoxInFilterSpace by the bounds of parent SVG frame. Fix this bug and
good for both rendering performance and memory consumption.

The root cause of this bug

<svg width="100" height="100" style="filter: opacity(100%);">
  <g transform="matrix(200,0,0,200,-20000,-20000)">
    <rect width="200" height="200" style="fill:lime">
  </g>
</svg>

In this example, <rect> is going to be a huge graphic object because of the scale
transform in <g>. The bounding-box of <svg> is an union of all descedants, so the
size of mTargetBBoxInFilterSpace is huage too. We are not able to create such a
huge surface because of the limitation at
nsFilterInstance::OutputFilterSpaceBounds[1].

[1] https://hg.mozilla.org/mozilla-central/file/f4f6790e3926/layout/svg/nsFilterInstance.cpp#l556

MozReview-Commit-ID: 4Fdj5mgcE0V

--HG--
extra : rebase_source : 00b668933255cc9ea4a5f5e4fddc6d2f509c41c7
2017-02-09 23:17:43 +08:00
..
crashtests Bug 1334768 - stylo: Test expectation adjustments for for 2017-02-09 merge. r=me 2017-02-09 21:11:09 +08:00
tests Bug 1333164 - fix invalid references to mochitest stylesheet, r=erahm 2017-01-24 14:24:04 +00:00
AutoReferenceLimiter.h
SVGContextPaint.cpp Bug 1058040, part 9 - Add an SVGContextPaint subclass for inheriting context paint into SVG-as-an-image. r=dholbert 2017-01-10 10:28:11 +00:00
SVGContextPaint.h Bug 1058040, part 9 - Add an SVGContextPaint subclass for inheriting context paint into SVG-as-an-image. r=dholbert 2017-01-10 10:28:11 +00:00
SVGFEContainerFrame.cpp
SVGFEImageFrame.cpp Bug 1284350. Backed out changeset 69abdc731a99 (Bug 1261554 (Part 1) - Prepare for implementing in-displayport visibility tracking. r=mstange) 2016-09-12 00:19:08 -05:00
SVGFELeafFrame.cpp
SVGFEUnstyledLeafFrame.cpp
SVGGeometryFrame.cpp Bug 1224207 - Part 6. Move GetCSSPxToDevPxMatrix to nsSVGUtils. r=mstange 2017-01-24 23:22:43 +08:00
SVGGeometryFrame.h Bug 1239100 - Implement SVGGeometryElement interface. r=cam r=peterv 2016-12-18 11:11:47 +00:00
SVGImageContext.cpp Bug 1058040, part 10 - Allow SVGImageContext to store an SVGContextPaint and have VectorImage propagate it. r=dholbert 2017-01-11 01:48:29 +00:00
SVGImageContext.h Bug 1058040, part 11 - Convert DrawImage/DrawImageInternal's SVGImageContext param from pointer to Maybe<>. r=dholbert 2017-01-11 01:48:29 +00:00
SVGTextFrame.cpp Bug 1224207 - Part 6. Move GetCSSPxToDevPxMatrix to nsSVGUtils. r=mstange 2017-01-24 23:22:43 +08:00
SVGTextFrame.h Bug 1316556 - Remove zeroing allocation in class nsIPresShell. r=dbaron. 2016-12-01 09:06:50 +01:00
SVGViewFrame.cpp
moz.build Bug 1058040, part 10 - Allow SVGImageContext to store an SVGContextPaint and have VectorImage propagate it. r=dholbert 2017-01-11 01:48:29 +00:00
nsCSSClipPathInstance.cpp Bug 1326406 Part 2 - Extract the computation of ellipse radii as ComputeEllipseRadii(). r=dbaron 2017-01-23 17:17:05 +08:00
nsCSSClipPathInstance.h Bug 1311270 - Part 1. Move geomery box computing from nsCSSClipPathInstance to nsLayoutUtils. 2016-11-22 11:19:11 +08:00
nsCSSFilterInstance.cpp Bug 1307740 - Properly handle filter input tainting with CSS filters and multiple filters. r=jwatt 2016-10-19 11:32:02 -04:00
nsCSSFilterInstance.h Bug 1307740 - Properly handle filter input tainting with CSS filters and multiple filters. r=jwatt 2016-10-19 11:32:02 -04:00
nsFilterInstance.cpp Bug 1287492 - Part 3. (Main) Shrink mTargetBBoxInFilterSpace r=mstange 2017-02-09 23:17:43 +08:00
nsFilterInstance.h Bug 1287492 - Part 3. (Main) Shrink mTargetBBoxInFilterSpace r=mstange 2017-02-09 23:17:43 +08:00
nsISVGChildFrame.h
nsISVGSVGFrame.h
nsSVGAFrame.cpp
nsSVGClipPathFrame.cpp Bug 1239100 - Implement SVGGeometryElement interface. r=cam r=peterv 2016-12-18 11:11:47 +00:00
nsSVGClipPathFrame.h Bug 1321056: Add includes/namespaces to fix latent unified bustage in layout/svg. r=TYLin 2016-11-29 11:41:16 -08:00
nsSVGContainerFrame.cpp Bug 1321056: Add includes/namespaces to fix latent unified bustage in layout/svg. r=TYLin 2016-11-29 11:41:16 -08:00
nsSVGContainerFrame.h
nsSVGEffects.cpp Bug 1239100 - Implement SVGGeometryElement interface. r=cam r=peterv 2016-12-18 11:11:47 +00:00
nsSVGEffects.h Bug 1323157 - Rename HasNoFilterOrHasValidFilter as HasNoOrValidFilter. r=longsonr+218550 2016-12-13 19:40:27 +08:00
nsSVGFilterFrame.cpp
nsSVGFilterFrame.h
nsSVGFilterInstance.cpp Bug 1321056: Add includes/namespaces to fix latent unified bustage in layout/svg. r=TYLin 2016-11-29 11:41:16 -08:00
nsSVGFilterInstance.h Bug 1307740 - Properly handle filter input tainting with CSS filters and multiple filters. r=jwatt 2016-10-19 11:32:02 -04:00
nsSVGFilterPaintCallback.h
nsSVGForeignObjectFrame.cpp
nsSVGForeignObjectFrame.h
nsSVGGFrame.cpp
nsSVGGFrame.h
nsSVGGenericContainerFrame.cpp
nsSVGGenericContainerFrame.h
nsSVGGradientFrame.cpp
nsSVGGradientFrame.h
nsSVGImageFrame.cpp Bug 1058040, part 11 - Convert DrawImage/DrawImageInternal's SVGImageContext param from pointer to Maybe<>. r=dholbert 2017-01-11 01:48:29 +00:00
nsSVGInnerSVGFrame.cpp
nsSVGInnerSVGFrame.h
nsSVGIntegrationUtils.cpp Bug 1224207 - Part 7. (Main) Pass frame transform info down to nsFilterInstance. r=mstange 2017-02-07 11:51:34 +08:00
nsSVGIntegrationUtils.h Bug 1224207 - Part 6. Move GetCSSPxToDevPxMatrix to nsSVGUtils. r=mstange 2017-01-24 23:22:43 +08:00
nsSVGMarkerFrame.cpp Bug 1239100 - Implement SVGGeometryElement interface. r=cam r=peterv 2016-12-18 11:11:47 +00:00
nsSVGMarkerFrame.h Bug 1239100 - Implement SVGGeometryElement interface. r=cam r=peterv 2016-12-18 11:11:47 +00:00
nsSVGMaskFrame.cpp Bug 1325865 - Part 1. Remove double transform. r=longsonr+218550 2017-01-13 17:02:09 +08:00
nsSVGMaskFrame.h Bug 1314536 - Part 1. Implement/use nsSVGMaskFrame::MaskParams and add a test case for nested mask-mode usage in SVG mask. r=mstange 2016-11-16 12:59:52 +08:00
nsSVGMaskFrameNEON.cpp
nsSVGMaskFrameNEON.h
nsSVGOuterSVGFrame.cpp Bug 1224207 - Part 6. Move GetCSSPxToDevPxMatrix to nsSVGUtils. r=mstange 2017-01-24 23:22:43 +08:00
nsSVGOuterSVGFrame.h
nsSVGPaintServerFrame.h
nsSVGPatternFrame.cpp Bug 1239100 - Implement SVGGeometryElement interface. r=cam r=peterv 2016-12-18 11:11:47 +00:00
nsSVGPatternFrame.h Bug 1239100 - Implement SVGGeometryElement interface. r=cam r=peterv 2016-12-18 11:11:47 +00:00
nsSVGStopFrame.cpp
nsSVGSwitchFrame.cpp
nsSVGUseFrame.cpp
nsSVGUtils.cpp Bug 1287492 - Part 2. Rewrite nsSVGUtils::GetNearestSVGViewport r=mstange 2017-02-09 22:36:17 +08:00
nsSVGUtils.h Bug 1287492 - Part 2. Rewrite nsSVGUtils::GetNearestSVGViewport r=mstange 2017-02-09 22:36:17 +08:00
svg.css