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 Bug 1267550 (part 2) - Rename MOZ_WARN_UNUSED_RESULT as MOZ_MUST_USE. r=froydnj. 2016-04-27 14:16:50 +10:00
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 Bug 1243610 - Refactor UpdateOverflow to separate out local overflow from that contributed by descendants. r=dbaron 2016-05-04 12:27:43 +12:00
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 Bug 1243610 - Refactor UpdateOverflow to separate out local overflow from that contributed by descendants. r=dbaron 2016-05-04 12:27:43 +12:00
SVGFEUnstyledLeafFrame.cpp Bug 1243610 - Refactor UpdateOverflow to separate out local overflow from that contributed by descendants. r=dbaron 2016-05-04 12:27:43 +12:00
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 Bug 1243610 - Refactor UpdateOverflow to separate out local overflow from that contributed by descendants. r=dbaron 2016-05-04 12:27:43 +12:00
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 Bug 1258510 - Part 2. Use the return value of nsLayoutUtils::DrawSingleImage & DrawSingleUnscaledImage. r=mstange 2016-07-14 12:47:06 +08:00
nsISVGSVGFrame.h
nsSVGAFrame.cpp Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
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 Bug 1258510 - Part 2. Use the return value of nsLayoutUtils::DrawSingleImage & DrawSingleUnscaledImage. r=mstange 2016-07-14 12:47:06 +08:00
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 Bug 1245751 - Part 4: Allow href without xlink on SVG <filter> elements. r=jwatt 2016-07-05 18:18:51 +08:00
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 Bug 1258510 - Part 2. Use the return value of nsLayoutUtils::DrawSingleImage & DrawSingleUnscaledImage. r=mstange 2016-07-14 12:47:06 +08:00
nsSVGForeignObjectFrame.cpp Bug 1058040, part 1 - Move gfxTextContextPaint to a separate file to enable use in imagelib. r=dholbert 2016-07-22 12:07:39 +01:00
nsSVGForeignObjectFrame.h Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
nsSVGGFrame.cpp
nsSVGGFrame.h Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
nsSVGGenericContainerFrame.cpp
nsSVGGenericContainerFrame.h
nsSVGGradientFrame.cpp Bug 1245751 - Part 10: Allow href without xlink on SVG Gradient elements. r=jwatt 2016-07-07 14:26:57 +08:00
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 Bug 1258510 - Part 2. Use the return value of nsLayoutUtils::DrawSingleImage & DrawSingleUnscaledImage. r=mstange 2016-07-14 12:47:06 +08:00
nsSVGInnerSVGFrame.h Bug 1258510 - Part 2. Use the return value of nsLayoutUtils::DrawSingleImage & DrawSingleUnscaledImage. r=mstange 2016-07-14 12:47:06 +08:00
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 Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron 2016-07-21 18:36:39 +08:00
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 Bug 1258510 - Part 2. Use the return value of nsLayoutUtils::DrawSingleImage & DrawSingleUnscaledImage. r=mstange 2016-07-14 12:47:06 +08:00
nsSVGUseFrame.cpp Bug 1245751 - Part 2: Allow href without xlink on SVG <use> elements. r=jwatt 2016-07-05 16:37:17 +08:00
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 Bug 843579 - Unprefix -moz-any-link. r=bz 2016-07-19 23:13:13 -04:00