Commit Graph

284 Commits

Author SHA1 Message Date
cku
fab206ec78 Bug 1351440 - Part 2. Encapsulate DrawResult and imgIContainer::FLAG_* into imgDrawingParams, and pass it to PaintSVG. r=jwatt
The DrawResult return was not in fact anything to do with the success or
failure of that method, but was actually passing out a very specific piece of information
about the success or failure of any imagelib drawing that may not have occurred
under the various PaintSVG calls.

The signature of PaintSVG is changed from
  DrawResult PaintSVG(...., uint32 flags);
to
  void PaintSVG(...., imgDrawingParams& aPackage);

imgDrawingParams wraps DrawResult and imgIContainer::FLAG_* as a pack, pass through
PaintSVG to imagelib draw calls under beneath.

MozReview-Commit-ID: IOq2evUAOQF
2017-05-05 17:19:43 +08:00
Robert Longson
00ea3bb14f Bug 1352258 - default fallback for context-fill to black to match default fill colour r=jwatt 2017-05-03 22:00:40 +01:00
Wes Kocher
1a5a07c6fe Merge m-c to inbound, a=merge
MozReview-Commit-ID: ILz91Vj4gT5
2017-05-02 17:39:58 -07:00
Robert Longson
fe779567bf Bug 1347409 part 2 - serialise fill and stroke fallback properly r=cam 2017-05-02 22:12:59 +01:00
Emilio Cobos Álvarez
3731858edf Bug 1360241: Devirtualize nsIFrame::GetType. r=heycam
MozReview-Commit-ID: 5Nzhyta5Hle
2017-04-30 17:30:08 +02:00
Emilio Cobos Álvarez
643f3f8618 Bug 1361051: rename mozilla::FrameType to mozilla::LayoutFrameType. r=xidorn
This avoids conflicts with mozilla::dom::FrameType.

MozReview-Commit-ID: 7aEMbHRaTFk
2017-05-01 19:32:52 +02:00
cku
384386bf81 Bug 1349741 - Part 1. Correct the transform matrix of a context that pass to nsFilterInstance::PaintFilteredFrame. r=mstange
MozReview-Commit-ID: 9BISQehlSgG
2017-04-13 11:10:58 +08:00
Iris Hsiao
577b307e13 Backed out changeset f6a3307c3a8d (bug 1349741) 2017-04-13 15:14:54 +08:00
cku
1c62ae10b5 Bug 1349741 - Part 1. Correct the transform matrix of a context that pass to nsFilterInstance::PaintFilteredFrame. r=mstange
MozReview-Commit-ID: 9BISQehlSgG
2017-04-13 11:10:58 +08:00
cku
15de4d193f Bug 877661 - Part 1. Pass decode flag down to GetMaskForMaskedFrame. r=tnikkel
MozReview-Commit-ID: 9KhIWp1rHzb
2017-03-27 11:10:48 +08:00
cku
ca5a63cead Bug 1345853 - Part 4. Pass sync decode flag down to nsSVGPatternFrame::PaintPattern. r=tnikkel
MozReview-Commit-ID: 1bHMINhs121
2017-03-25 03:19:18 +08:00
cku
35a71bbf75 Bug 1345853 - Part 1. Pass DrawResult from nsSVGPatternFrame::PaintPattern back to nsDisplaySVGGeometry::Paint. r=mstange,tnikkel
I did many change in many files in this patch. But the goal is pretty simple: To
pass the return value of nsSVGPatternFrame::PaintPattern back to the caller
(nsDisplaySVGGeometry). My suggestion is to review this patch right from
nsSVGPatternFrame.cpp.

I made two mistakes in bug 1258510
1. We should not return directly at [1]. RemoveStateBits at l418 will be skip.
2. nsSVGPatternFrame::PaintPattern should return both SourceSurface and draw
result, so that we can update UpdateDrawResult in display item.

All the other changes are to
1. make sure the return value of nsSVGPatternFrame::PaintPattern goes back to
nsDisplaySVGGeometry::Paint correctly.
2. Since the return value of nsSVGPatternFrame::PaintPattern change, we need
modify all existed callers.

I also filed bug 1346124 for handle the returning value of PaintMarkers.

[1] https://hg.mozilla.org/mozilla-central/file/c0700bedb4f7/layout/svg/nsSVGPatternFrame.cpp#l415

MozReview-Commit-ID: Iq9RPQ6Omz0
2017-03-21 10:12:23 +08:00
Jonathan Watt
31e80190c3 Bug 1350725 - Get rid of the GetUserToCanvasTM call in nsSVGUtils::PaintFrameWithEffects. r=longsonr 2017-02-27 12:46:18 +00:00
Jonathan Watt
cb8dcb9224 Bug 1350706 - Get rid of nsSVGDisplayableFrame::GetCoveredRegion and its overrides. r=longsonr 2017-02-27 11:43:16 +00:00
cku
94cb42c027 Bug 1349462 - Part 1. Rename IsSVGText as IsInSVGTextSubtree. r=heycam
MozReview-Commit-ID: LTo6c8tTtaf
2017-03-23 15:29:11 +08:00
cku
007e84ec1a Bug 1348564 - Part 1. Fix crash in nsSVGUtils::GetBBox. r=jwatt
This change fixes the code so that it does not assume that frames with the
NS_FRAME_SVG_LAYOUT bit set implement nsISVGChildFrame. This assumption is
incorrect since there are many SVG frame types that do not inherit
nsISVGChildFrame (such as nsSVGGradientFrame).

MozReview-Commit-ID: 9dCZAhJk3E0
2017-03-22 18:56:53 +08:00
cku
d7ccfdfd6c Bug 1348430 - Part 1. (Main) Correct value pass to nsFilterInstance::PaintFilteredFrame in nsSVGUtil. r=mstange
There are two places that use nsFilterInstance::PaintFilteredFrame. One is
nsSVGIntegrationUtil::PaintFilter, we do take care of it in bug 1224207.
Another path is at nsSVGUtils::PaintFrameWithEffects, apparently I missed that
path while working on bug 1224207.

MozReview-Commit-ID: K4MjKa4ZpCR
2017-03-20 01:30:32 +08:00
Jonathan Watt
8e9411768a Bug 1349244 - Rename nsISVGChildFrame to nsSVGDisplayableFrame to reduce confusion. r=longsonr
MozReview-Commit-ID: IQCv2ebZbwk
2017-02-09 18:24:31 +00:00
Sebastian Hengst
fa3180dce9 Backed out changeset 836d16519edf (bug 1345853) for frequently failing its own test pattern-big-image.html. r=backout 2017-03-17 21:54:01 +01:00
cku
8e6b56bc1e Bug 1345853 - Part 1. Pass DrawResult from nsSVGPatternFrame::PaintPattern back to nsDisplaySVGGeometry::Paint. r=mstange,tnikkel
I did many change in many files in this patch. But the goal is pretty simple: To
pass the return value of nsSVGPatternFrame::PaintPattern back to the caller
(nsDisplaySVGGeometry). My suggestion is to review this patch right from
nsSVGPatternFrame.cpp.

I made two mistakes in bug 1258510
1. We should not return directly at [1]. RemoveStateBits at l418 will be skip.
2. nsSVGPatternFrame::PaintPattern should return both SourceSurface and draw
result, so that we can update UpdateDrawResult in display item.

All the other changes are to
1. make sure the return value of nsSVGPatternFrame::PaintPattern goes back to
nsDisplaySVGGeometry::Paint correctly.
2. Since the return value of nsSVGPatternFrame::PaintPattern change, we need
modify all existed callers.

I also filed bug 1346124 for handle the returning value of PaintMarkers.

[1] https://hg.mozilla.org/mozilla-central/file/c0700bedb4f7/layout/svg/nsSVGPatternFrame.cpp#l415

MozReview-Commit-ID: Iq9RPQ6Omz0
2017-03-16 12:17:19 +08:00
cku
ca5914f694 Bug 1320036 - Part 1. Correct objectBoundingBox region of a filter applied to an outer SVG element. r=jwatt
MozReview-Commit-ID: 8frACVe2gFE
2017-03-15 18:36:53 +08:00
cku
f2d7c22318 Bug 1336480 - Part 1. Apply suface limitation in nsFilterInstance::ComputeNeededBoxes. r=mstange
There is no need to limit output space bounds in
nsFilterInstance::OutputFilterSpaceBounds(), it's just far too early.
MozReview-Commit-ID: 9i9huKDGxq6
2017-02-21 00:08:38 +08:00
Daniel Holbert
49732213e7 (no bug) Tweak some source files in layout to have correct number of newline characters at the end (exactly 1). (no review, whitespace-only, DONTBUILD)
MozReview-Commit-ID: 1hEEkCMy0pL
2017-02-22 08:58:50 -08:00
cku
b4a5630d6f Bug 1287492 - (followup) Rename GetNearestSVGParent backto GetNearestSVGViewport. r=me
According to jwatt's suggestion, rename back to original name.
MozReview-Commit-ID: 8dUo7ZWoac6
2017-02-14 23:19:58 +08:00
cku
b2cf8318f7 Bug 1287492 - Part 2. Rewrite nsSVGUtils::GetNearestSVGViewport r=mstange
GetNearestSVGViewport is not used anymore, rewrite it, Part 3 will need this new
version.
MozReview-Commit-ID: GNJXICG9akj
2017-02-09 22:36:17 +08:00
cku
fa06d27be0 Bug 1224207 - Part 6. Move GetCSSPxToDevPxMatrix to nsSVGUtils. r=mstange
To use GetCSSPxToDevPxMatrix in nsFilterInstance, pull this untility function down
to nsSVGUtils; Otherwise, we have to include nsSVGIntegrationUtils header in
nsFilterIntance, which is ok but not good I think.

MozReview-Commit-ID: 6SGtwj4EE1S
2017-01-24 23:22:43 +08:00
Iris Hsiao
8ec4557f01 Backed out 8 changesets (bug 1224207) for Win8 Reftest failures
Backed out changeset 2fce8d53b105 (bug 1224207)
Backed out changeset c31e96bf56d0 (bug 1224207)
Backed out changeset 587cde853b75 (bug 1224207)
Backed out changeset 7faefd871e00 (bug 1224207)
Backed out changeset 15f62c3ec366 (bug 1224207)
Backed out changeset 9448e628569e (bug 1224207)
Backed out changeset 958379e4f61c (bug 1224207)
Backed out changeset d23079bc188e (bug 1224207)
2017-02-08 17:53:07 +08:00
cku
bbcf69236e Bug 1224207 - Part 6. Move GetCSSPxToDevPxMatrix to nsSVGUtils. r=mstange
To use GetCSSPxToDevPxMatrix in nsFilterInstance, pull this untility function down
to nsSVGUtils; Otherwise, we have to include nsSVGIntegrationUtils header in
nsFilterIntance, which is ok but not good I think.

MozReview-Commit-ID: 6SGtwj4EE1S
2017-01-24 23:22:43 +08:00
cku
5769adfc42 Bug 1334554 - Handle the return value of nsFilterInstance::PaintFilteredFrame r=mstange
MozReview-Commit-ID: 79gddAmRjnp
2017-01-28 02:54:38 +08:00
Jonathan Watt
5488523326 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
cku
108141edd0 Bug 537623 - Part 1. Remove extra translation for <use> element in nsSVGUtils. r=longsonr+218550
For nsSVGUtils::FrameSpaceInCSSPxToUserSpace:
If we give a nsSVGUseFrame to this function, it will return <use>'s x/y as
translation vector, which is not necessary. A point (a, b) in frame's
coordinate space should keep (a, b) in <use>'s coordinate space with no change.

Since we remove extra translation in nsSVGUtils::FrameSpaceInCSSPxToUserSpace,
aslo update nsSVGUtils::GetBBox accordingly.

MozReview-Commit-ID: BMjSonjoWd2
2017-01-17 17:06:16 +08:00
Iris Hsiao
40af1d1640 Backed out changeset e32814fc5ab6 (bug 537623) 2017-01-18 11:25:25 +08:00
cku
f25566c30d Bug 537623 - Part 1. Remove extra translation for <use> element in nsSVGUtils.
For nsSVGUtils::FrameSpaceInCSSPxToUserSpace:
If we give a nsSVGUseFrame to this function, it will return <use>'s x/y as
translation vector, which is not necessary. A point (a, b) in frame's
coordinate space should keep (a, b) in <use>'s coordinate space with no change.

Since we remove extra translation in nsSVGUtils::FrameSpaceInCSSPxToUserSpace,
aslo update nsSVGUtils::GetBBox accordingly.

MozReview-Commit-ID: BMjSonjoWd2
2017-01-17 17:06:16 +08:00
Robert Longson
29661e49d9 Bug 1239100 - Implement SVGGeometryElement interface. r=cam r=peterv 2016-12-18 11:11:47 +00:00
Sebastian Hengst
35ac5ad5d2 Backed out changeset 0b44e8715bf5 (bug 1239100) for build bustage (SVGGeometryElement.webidl missing). r=backout 2016-12-18 11:42:51 +01:00
Robert Longson
7691b0761b Bug 1239100 - Implement SVGGeometryElement interface. r=cam r=peterv 2016-12-18 09:54:02 +00:00
cku
5e511579f5 Bug 1322286 - Part 1. Check maskFrame pointer value before dereference. r=mstange
MozReview-Commit-ID: oXVxT8h1vz
2016-12-06 17:09:11 -10:00
cku
7b6575cf4d Bug 1322330 - Part 2. Implement EffectProperties::HasInvalidClipPath. r=longsonr+218550
MozReview-Commit-ID: F3m4UZ0ET9x
2016-12-06 21:28:47 -10:00
cku
9833099111 Bug 1322330 - Part 1. Remove EffectProperties::GetFirstMaskFrame and implement EffectProperties::HasInvalidMaskOrClipPathResource. r=longsonr+218550
MozReview-Commit-ID: 4nfhL7btNFT
2016-12-06 16:12:36 -10:00
cku
37bcfa046c Bug 1319667 - Part 2. Move DrawResult from function parameter of PaintClipMask to the return value. r=mstange
Enlight by "Bug 1314536 - Part 1"

MozReview-Commit-ID: Iogdh7LWsWa
2016-11-24 00:08:13 +08:00
cku
444d9f810f Bug 1319667 - Part 1. Allow mask longhands apply to SVG elements. r=mstange
Originally, we use the follwoing statement to determine whether generate mask
for an SVG element:
aUsage.shouldGenerateMaskLayer =
  maskFrames.Length() == 1 && maskFrames[0];

maskFrames[0] is not null only if that mask resource is an SVG-mask. That means
we will not generate mask for image mask to any SVG one.

MozReview-Commit-ID: 4QiifC6J0UR
2016-11-23 13:51:36 +08:00
cku
005f587d24 Bug 1314536 - Part 2. Implement MixModeBlender to simplify nsSVGUtils::PaintFrameWithEffects. r=mstange
MozReview-Commit-ID: JBlj7nApsbT
2016-11-16 12:16:20 +08:00
cku
047250c6be Bug 1314536 - Part 1. Implement/use nsSVGMaskFrame::MaskParams and add a test case for nested mask-mode usage in SVG mask. r=mstange
MozReview-Commit-ID: SkU6F5fJ9b
2016-11-16 12:59:52 +08:00
Phil Ringnalda
3dd4ea0f5b Backed out 3 changesets (bug 1314536) for Android "'Pair' does not name a type" build bustage
Backed out changeset 16632b726b19 (bug 1314536)
Backed out changeset 2effc920decf (bug 1314536)
Backed out changeset b0aa89236bb2 (bug 1314536)
2016-11-18 18:48:49 -08:00
cku
4c8a152111 Bug 1314536 - Part 2. Implement MixModeBlender to simplify nsSVGUtils::PaintFrameWithEffects. r=mstange
MozReview-Commit-ID: JBlj7nApsbT
2016-11-16 12:16:20 +08:00
cku
7b54d251fd Bug 1314536 - Part 1. Implement/use nsSVGMaskFrame::MaskParams and add a test case for nested mask-mode usage in SVG mask. r=mstange
MozReview-Commit-ID: SkU6F5fJ9b
2016-11-16 12:59:52 +08:00
cku
ab412f25c2 Bug 1250490 - Part 5. Use CreateBlendTarget/BlendToTarget. r=mstange
MozReview-Commit-ID: ERSXrcOW9PQ
2016-11-03 12:38:36 +08:00
cku
35289f32cf Bug 1250490 - Part 4. Bring back CreateBlendTarget/BlendToTarget. r=mstange
MozReview-Commit-ID: DMSm5d2SI3j
2016-11-03 12:17:20 +08:00
cku
b924063622 Bug 1250490 - Part 3. Use DetermineMaskUsage in nsSVGUtils::PaintFrameWithEffects. r=mstange
MozReview-Commit-ID: 3CxHG0oB6f9
2016-11-03 11:58:15 +08:00
cku
f97e2b15a1 Bug 1250490 - Part 1. Move DetermineMaskUsage and ComputeOpacity to nsSVGUtils. r=mstange
MozReview-Commit-ID: K06trG9nuvU
2016-11-03 11:08:06 +08:00