Prior to this patch whenever we wanted to pass on a modified SVGImageContext
we would pass on a new object initialized with some of the data of the object
we were given and with the new data we wanted to change. Unfortunately we
were sometimes failing to faithfully copy member data that we do not want
to modify (because of default arguments). This patch fixes that by making us
fully copy the object we were given using its copy constructor and then
explicitly override the data we want to change.
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
--HG--
extra : source : e32814fc5ab6fdb9e723b8109aa8f398b1c883f6
extra : histedit_source : 564968d47a3d95fde8e5b83c55148b63c1feb085
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
--HG--
extra : rebase_source : da629ba4464534a89718db1cd5b9705261ae4a4d
For an SVG container element(such as g/svg etc) used in mask, we apply
transform of it twice:
1. The first time is in nsSVGMaskFrame::GetMaskForMaskedFrame. We apply
transform by eAllTransforms(= eUserSpaceToParent + eChildToUserSpace)
2. The second time is in nsSVGDisplayContainerFrame::PaintSVG. We apply
transform by eChildToUserSpace
So, totally we apply 1 * eUserSpaceToParent + 2 * eChildToUserSpace. This
patch is trying to remove this one extra eChildToUserSpace.
MozReview-Commit-ID: 2pQCsrCIPNA
--HG--
extra : rebase_source : 27fe1648eb80d9c4d5111bbaec7ec38d80a0a8ac
More functions in nsCSSClipPathInstance will be refactored and moved into
ShapeUtils in subsequent patches.
MozReview-Commit-ID: LmJUevY8YGr
--HG--
extra : rebase_source : 8888fa26fab541d06a3fccad9e4376bb3a66c043
|center| should be of nsPoint type since all the arguments of
ComputeObjectAnchorPoint() uses nsPoint and nsSize. We should only convert
center to Point (which is an an UnknownUnits type) for APIs requiring Point
type.
MozReview-Commit-ID: EDrQGPUZp6m
--HG--
extra : rebase_source : a5494f969dcb08c139af076e95584502f46f0b9e
In the test case of bug 1324809:
1. A span is been broken into two continuation frames: FA and FB. FA is the first
connituation
2. Adding a filter effect to this span.
3. FA::FinishAndStoreOverflow is called. This function will call ComputeEffect:
if (nsSVGIntegrationUtils::UsingEffectsForFrame(aFrame)) {
aFrame->Properties().
Set(nsIFrame::PreEffectsBBoxProperty(), new nsRect(r)); // Now FA has
// PreEffectsBBoxProperty
// but FB does not
// have yet.
// ComputePostEffectsVisualOverflowRect will iterate all continuations from
// FA to FB. At this moment, FB does not carry PreEffectsBBoxProperty,
// assertion failure.
r = nsSVGIntegrationUtils::ComputePostEffectsVisualOverflowRect(aFrame, r);
}
4. FB::FinishAndStoreOverflow is called. But already too late.
MozReview-Commit-ID: 2c8OFzSLhfD
***
merge
MozReview-Commit-ID: C0lYQkKCYT6
--HG--
extra : rebase_source : d4777d5b60c9df78fd2ee1d734649b76579644c3
More functions in nsCSSClipPathInstance will be refactored and moved into
ShapeUtils in subsequent patches.
MozReview-Commit-ID: LmJUevY8YGr
--HG--
extra : rebase_source : 8888fa26fab541d06a3fccad9e4376bb3a66c043
|center| should be of nsPoint type since all the arguments of
ComputeObjectAnchorPoint() uses nsPoint and nsSize. We should only convert
center to Point (which is an an UnknownUnits type) for APIs requiring Point
type.
MozReview-Commit-ID: EDrQGPUZp6m
--HG--
extra : rebase_source : a5494f969dcb08c139af076e95584502f46f0b9e
Now that bug 1290209 has landed, we can make StyleSheet.disabled work in Servo
styled documents. This fixes a bunch of test crashes due to the assertion no
longer firing.
MozReview-Commit-ID: 6sLrdrxWlvK
--HG--
extra : rebase_source : cf8ab29f98fbba6be837a38ffe2a03ed9b33b701
More functions in nsCSSClipPathInstance will be refactored and moved into
ShapeUtils in subsequent patches.
MozReview-Commit-ID: LmJUevY8YGr
--HG--
extra : rebase_source : 7cbfe60fec65833db3c7b7d7e9f3157b49b777eb
|center| should be of nsPoint type since all the arguments of
ComputeObjectAnchorPoint() uses nsPoint and nsSize. We should only convert
center to Point (which is an an UnknownUnits type) for APIs requiring Point
type.
MozReview-Commit-ID: EDrQGPUZp6m
--HG--
extra : rebase_source : 813b8cb203752e6c63b0a405473f7d0cd9dbc3e6