Commit graph

79 commits

Author SHA1 Message Date
Emilio Cobos Álvarez
bfcb8d06e9 Bug 1614510 - Split clip-path and shape-outside values. r=boris
We don't actually share _that_ much code across them. This makes callers clearer
and code less confusing, IMHO.

This also has the benefit of not autocompleting path from devtools for
shape-outside.

Differential Revision: https://phabricator.services.mozilla.com/D62373

--HG--
extra : moz-landing-system : lando
2020-02-11 23:34:53 +00:00
Emilio Cobos Álvarez
628f21dc90 Bug 1614510 - Use cbindgen for shape-outside and clip-path. r=boris
Differential Revision: https://phabricator.services.mozilla.com/D62372

--HG--
extra : moz-landing-system : lando
2020-02-11 22:03:53 +00:00
Boris Chiou
cad48f3f6a Bug 1609786 - Make the empty svg path valid. r=emilio
Per SVG2 spec, the EBNF allows the path data string to be empty.
An empty path data string disables rendering of the path.
Therefore, we should make path('') a valid path string.

The related spec issue: https://github.com/w3c/fxtf-drafts/issues/392.
Now we serialize `path("")` as `path("")` for offset-path and clip-path.

Differential Revision: https://phabricator.services.mozilla.com/D60771

--HG--
extra : moz-landing-system : lando
2020-01-24 18:59:03 +00:00
jeffin143
aa897e8496 Bug 1597881 : convert NS_STYLE_STROKE_LINECAP_* to an enum class in nsStyleConsts.h r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D53908

--HG--
extra : moz-landing-system : lando
2019-11-21 06:07:30 +00:00
Emilio Cobos Álvarez
7874fd4a2d Bug 1552636 - Remove eStyleImageType_URL. r=TYLin
It was introduced in bug 1352096 to reduce complexity with Stylo (apparently).

Right now it doesn't look like it reduces any complexity, and it's a bit
annoying with some of the patches that I'm writing at the moment.

So unless there's any objection I think it should go away.

Differential Revision: https://phabricator.services.mozilla.com/D31708

--HG--
extra : moz-landing-system : lando
2019-05-22 11:34:23 +00:00
Emilio Cobos Álvarez
38065025d9 Bug 1548691 - Use the owned slice type for basic shape polygon coordinates. r=TYLin,heycam
This enables destructors for tagged unions in cbindgen, implemented in:

 * https://github.com/eqrion/cbindgen/pull/333

Which allow us to properly generate a destructor for the cbindgen-generated
StyleBasicShape (which now contains an OwnedSlice).

For now, we still use the glue code to go from Box<BasicShape> to
UniquePtr<BasicShape>. But that will change in the future when we generate even
more stuff and remove all the glue.

I could add support for copy-constructor generation to cbindgen for tagged
enums, but I'm not sure if it'll end up being needed, and copy-constructing
unions in C++ is always very tricky.

Differential Revision: https://phabricator.services.mozilla.com/D29769

--HG--
extra : moz-landing-system : lando
2019-05-09 11:24:57 +00:00
violet
cd03f30677 Bug 1546636 - Should consider geometry box type r=longsonr
Geometry box was implemented long ago in Bug 1289011. But during some
refactoring, the existence of geometry box was overlooked. We add back
its support.

Differential Revision: https://phabricator.services.mozilla.com/D28815

--HG--
extra : moz-landing-system : lando
2019-04-25 19:56:15 +00:00
violet
126058f55b Bug 1533491 - nsCSSClipPathInstance::ApplyBasicShapeOrPathClip should consider transform r=longsonr
nsSVGUtils::PaintFrameWithEffects needs to pass its transform to
nsCSSClipPathInstance::ApplyBasicShapeOrPathClip so that the latter
can compute the correct box.

Differential Revision: https://phabricator.services.mozilla.com/D28655

--HG--
extra : moz-landing-system : lando
2019-04-25 00:52:25 +00:00
Ryan Hunt
b936c00a65 Bug 1523969 part 14 - Move method definition inline comments to new line in 'layout/'. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D21115

--HG--
extra : rebase_source : 4d65c07d8822f3a54ac881b5d0f55468ce884554
2019-02-25 16:09:24 -06:00
longsonr
6c649bdee4 Bug 1518000 - Move nsSVGString and nsSVGViewBox to the mozilla namespace r=jwatt
--HG--
rename : dom/svg/nsSVGString.cpp => dom/svg/SVGString.cpp
rename : dom/svg/nsSVGString.h => dom/svg/SVGString.h
rename : dom/svg/nsSVGViewBox.cpp => dom/svg/SVGViewBox.cpp
rename : dom/svg/nsSVGViewBox.h => dom/svg/SVGViewBox.h
2019-01-06 17:52:55 +00:00
longsonr
3d04ba9c9e Bug 1515187 - Part 4 Rename nsSVGElement to SVGElement and put it in the mozilla:dom namespace r=dholbert
--HG--
rename : dom/svg/nsSVGElement.cpp => dom/svg/SVGElement.cpp
rename : dom/svg/nsSVGElement.h => dom/svg/SVGElement.h
2018-12-21 08:58:14 +00:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Emilio Cobos Álvarez
c52a218234 Bug 1504078 - Use references in the shapes code. r=bradwerth,TYLin
It doesn't make much sense to return const UniquePtr<Foo>& for something that
can't be null, it's just confusing.

Also make more stuff actually const.

Differential Revision: https://phabricator.services.mozilla.com/D10647

--HG--
extra : moz-landing-system : lando
2018-11-02 18:19:06 +00:00
Boris Chiou
63d06d8017 Bug 1246764 - Part 4: Rename mask flag and function name of xxxBasicShape to xxxBasicShapeOrPath. r=jwatt
This flag and function name are used for both basic shapes and path function,
so rename it. For now, we treat path() and other basic-shapes as the
different object (i.e. StyleSVGPath and StyleBasicShape), so I rename
these functions and mask flag.

Differential Revision: https://phabricator.services.mozilla.com/D3636
2018-08-24 11:37:57 -07:00
Boris Chiou
7ba34b6df6 Bug 1246764 - Part 3: Layout part for |clip-path: path()|. r=jwatt
Create clip-path for the path function and reuse some APIs in
nsCSSClipPathInstance, so we don't have to update the code flow.

Differential Revision: https://phabricator.services.mozilla.com/D3635
2018-08-24 11:37:55 -07:00
Ting-Yu Lin
48d02834a5 Bug 1482665 Part 2 - Remove nsPresContext::AppUnitsPerCSSPixel() and replace it with mozilla::AppUnitsPerCSSPixel(). r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D3155
2018-08-13 14:29:28 -07:00
Emilio Cobos Álvarez
f7522ae728 Bug 1447358: Unifdef the old style system code. r=jwatt
Summary:
This has been automatically generated using:

  http://dotat.at/prog/unifdef/

And:

find $OBJDIR -type f -name '*.h' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

find $OBJDIR -type f -name '*.cpp' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

MozReview-Commit-ID: I4NdKqbMXzJ

Reviewers: jwatt

Bug #: 1447358

Differential Revision: https://phabricator.services.mozilla.com/D779
2018-03-21 10:20:34 +01:00
Cameron McCormack
d02e54b79b Bug 1430014 - Part 5: Stop building old style system classes when MOZ_OLD_STYLE is not defined. r=xidorn
MozReview-Commit-ID: CIHyPdF7Exl

--HG--
extra : source : 78a2fc781eead47af3923efcde58569c5d882ab1
2018-02-01 15:04:04 +11:00
Botond Ballo
9c407a7103 Bug 1382534 - Add nsCSSClipPathInstance::GetBoundingRectForBasicShapeClip(). r=mstange
MozReview-Commit-ID: 85mhNcj5V2J

--HG--
extra : rebase_source : b4e868a89408e31aef1f26c3f701e1fb2daa2477
2017-10-04 16:46:44 -04:00
Daniel Holbert
680815cd6e Bug 1412346 part 5: (automated patch) Switch a bunch of C++ files in layout to use our standard mode lines. r=jfkthame
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: EuRsDue63tK

--HG--
extra : rebase_source : 3356d4b80ff6213935192e87cdbc9103fec6084c
2017-10-27 10:33:53 -07:00
Robert Longson
0e21ecb9e3 Bug 1398806 - GetCtx and GetNearestViewport should return the nearest svg or symbol element which is now an SVGViewportElement rather than only returning the nearest svg element because a symbol establishes a viewport too. r=dholbert 2017-10-10 07:58:34 +01:00
Ting-Yu Lin
d944131798 Bug 1404243 Part 3 - Remove refcount for StyleBasicShape, and use UniquePtr to hold it. r=heycam
After StyleBasicShape is set to StyleShapeSource, it's life cycle never go
beyond StyleShapeSource, so I make StyleBasicShape hold by a UniquePtr in
StyleShapeSource.

Also, replace all raw pointers to StyleBasicShape by UniquePtr in all APIs.

MozReview-Commit-ID: 1MfIFjP8TsQ

--HG--
extra : rebase_source : bdbbd47de57e0bc610e37913752ab8413f62588a
2017-09-25 18:50:24 +08:00
Alexis Beingessner
adb013669b Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-13 11:00:10 -04:00
Sebastian Hengst
f3bf820bfd Backed out changeset 3d1ce85e6348 (bug 1088760) for bustage, at least on Android at layout/generic/nsPluginFrame.cpp:1612. r=backout 2017-06-13 00:30:03 +02:00
Alexis Beingessner
c75211cb95 Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-12 17:32:48 -04:00
Ting-Yu Lin
1923f5a65b Bug 1326409 Part 4 - Extract a function to compute polygon vertices. r=dholbert
MozReview-Commit-ID: B4BzBHjLHxW
2017-03-13 12:03:40 +08:00
Ting-Yu Lin
961a315c82 Bug 1326407 Part 2 - Extract a function to compute inset radii. r=dbaron
MozReview-Commit-ID: 3XbfW40AJCI

--HG--
extra : rebase_source : 074d5110759ff6ec4632104109d9a11d01d9cbf7
2017-02-16 10:51:48 +08:00
Ting-Yu Lin
3c289a249f Bug 1326407 Part 1 - Extract a function to compute inset rect. r=dbaron
MozReview-Commit-ID: DmVOVArtzBZ

--HG--
extra : rebase_source : 835edd63d53cb439f4ebcd0551a2d4a8065f1ba6
2017-02-16 10:51:47 +08:00
Ting-Yu Lin
287eecf10f Bug 1326406 Part 2 - Extract the computation of ellipse radii as ComputeEllipseRadii(). r=dbaron
MozReview-Commit-ID: LPdvg66adHQ

--HG--
extra : rebase_source : 7dbd171a65d9ba057cce48057b82d3f8c143c590
2017-01-23 17:17:05 +08:00
Ting-Yu Lin
d5f5d96923 Bug 1311244 Part 4 - Extract the computation of circle radius as ComputeCircleRadius(). r=dbaron
MozReview-Commit-ID: LJNvNOoc7FI

--HG--
extra : rebase_source : 5dd6118f6e8e1605e89773b3b1e2bcbfa7704fd6
2017-01-06 16:36:05 +08:00
Ting-Yu Lin
9e79cb96f5 Bug 1311244 Part 3 - Extract the computation of center as ComputeCircleOrEllipseCenter(). r=dbaron
MozReview-Commit-ID: A6OTJ9PD43c

--HG--
extra : rebase_source : bcb53b7a0a966e2931c74db475ee8b7573354792
2017-01-06 16:35:53 +08:00
Ting-Yu Lin
0f4ae7069c Bug 1311244 Part 2 - Create ShapeUtils, and move EnumerationToLength into it. r=dbaron
More functions in nsCSSClipPathInstance will be refactored and moved into
ShapeUtils in subsequent patches.

MozReview-Commit-ID: LmJUevY8YGr

--HG--
extra : rebase_source : 8888fa26fab541d06a3fccad9e4376bb3a66c043
2017-01-06 16:35:29 +08:00
Ting-Yu Lin
a080cb68d1 Bug 1311244 Part 1 - Use nsPoint type for center in nsCSSClipPathInstance. r=dbaron
|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
2017-01-06 16:35:00 +08:00
Carsten "Tomcat" Book
a03a61eaaa Backed out changeset ad8e7493c933 (bug 1311244) 2017-01-12 14:19:28 +01:00
Carsten "Tomcat" Book
9ced0d536f Backed out changeset d523b9c7c0bb (bug 1311244) 2017-01-12 14:19:26 +01:00
Carsten "Tomcat" Book
ee7d4daa84 Backed out changeset 61d064c78aa2 (bug 1311244) 2017-01-12 14:19:24 +01:00
Carsten "Tomcat" Book
5b0976bcc2 Backed out changeset b1d7a47b0c70 (bug 1311244) 2017-01-12 14:19:23 +01:00
Ting-Yu Lin
8b267972a6 Bug 1311244 Part 4 - Extract the computation of circle radius as ComputeCircleRadius(). r=dbaron
MozReview-Commit-ID: LJNvNOoc7FI

--HG--
extra : rebase_source : 5dd6118f6e8e1605e89773b3b1e2bcbfa7704fd6
2017-01-06 16:36:05 +08:00
Ting-Yu Lin
74706308e7 Bug 1311244 Part 3 - Extract the computation of center as ComputeCircleOrEllipseCenter(). r=dbaron
MozReview-Commit-ID: A6OTJ9PD43c

--HG--
extra : rebase_source : bcb53b7a0a966e2931c74db475ee8b7573354792
2017-01-06 16:35:53 +08:00
Ting-Yu Lin
2b3505661e Bug 1311244 Part 2 - Create ShapeUtils, and move EnumerationToLength into it. r=dbaron
More functions in nsCSSClipPathInstance will be refactored and moved into
ShapeUtils in subsequent patches.

MozReview-Commit-ID: LmJUevY8YGr

--HG--
extra : rebase_source : 8888fa26fab541d06a3fccad9e4376bb3a66c043
2017-01-06 16:35:29 +08:00
Ting-Yu Lin
3f796f8016 Bug 1311244 Part 1 - Use nsPoint type for center in nsCSSClipPathInstance. r=dbaron
|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
2017-01-06 16:35:00 +08:00
Phil Ringnalda
a52a0f5571 Backed out 8 changesets (bug 1311244) for OOM failures in Win7 debug R1
Backed out changeset d5411799a28f (bug 1311244)
Backed out changeset ff9c71e1dbc8 (bug 1311244)
Backed out changeset 96988ec5b81c (bug 1311244)
Backed out changeset 9d257713833a (bug 1311244)
Backed out changeset 2c33905ccb04 (bug 1311244)
Backed out changeset 20148e33d523 (bug 1311244)
Backed out changeset f36cd1532fdb (bug 1311244)
Backed out changeset 2ee4ea83a6b4 (bug 1311244)
2017-01-08 21:11:25 -08:00
Ting-Yu Lin
b78b4d97c4 Bug 1311244 Part 4 - Extract the computation of circle radius as ComputeCircleRadius(). r=dbaron
MozReview-Commit-ID: LJNvNOoc7FI

--HG--
extra : rebase_source : 1dd13c1727c2c31aad80995dcd4edaecf77819da
2017-01-06 16:36:05 +08:00
Ting-Yu Lin
93b5370abd Bug 1311244 Part 3 - Extract the computation of center as ComputeCircleOrEllipseCenter(). r=dbaron
MozReview-Commit-ID: A6OTJ9PD43c

--HG--
extra : rebase_source : c8b16ffaaf00c4ed3ec722d7502262005e9e21ec
2017-01-06 16:35:53 +08:00
Ting-Yu Lin
e42b15fcf6 Bug 1311244 Part 2 - Create ShapeUtils, and move EnumerationToLength into it. r=dbaron
More functions in nsCSSClipPathInstance will be refactored and moved into
ShapeUtils in subsequent patches.

MozReview-Commit-ID: LmJUevY8YGr

--HG--
extra : rebase_source : 7cbfe60fec65833db3c7b7d7e9f3157b49b777eb
2017-01-06 16:35:29 +08:00
Ting-Yu Lin
8cddb87ec2 Bug 1311244 Part 1 - Use nsPoint type for center in nsCSSClipPathInstance. r=dbaron
|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
2017-01-06 16:35:00 +08:00
Robert Longson
89c77adf8e Bug 1325487 - Improve SVGContentUtils::ComputeNormalizedHypotenuse and use it more r=dholbert 2016-12-23 17:28:13 +00:00
cku
e7a4b94286 Bug 1311270 - Part 1. Move geomery box computing from nsCSSClipPathInstance to nsLayoutUtils.
Simply move ComputeHTMLReferenceRect and ComputeSVGReferenceRect from
nsCSSClipPathInstance to nsLayoutUtils to reuse the code in both clip-path and
mask.

MozReview-Commit-ID: 59LofAeEhKQ

--HG--
extra : rebase_source : d974c7e2170a43242ae839c34ae5cef946d4264a
2016-11-22 11:19:11 +08:00
Ting-Yu Lin
6c29f00e11 Bug 1325006 Part 2 - Convert NS_RADIUS_* to StyleShapeRadius enum class. r=heycam
The "default" case in EnumerationToLength() is not needed anymore because
StyleShapeRadius is an enum class, which cannot have other values.

MozReview-Commit-ID: GHkPAXXxqGZ

--HG--
extra : rebase_source : 8bc51d6f21cd70688d3b968bcd0a5ef12a6e3f47
2016-12-03 16:13:49 +08:00
Ting-Yu Lin
3251aeb9dd Bug 1324713 - Fix integer overflow in CreateClipPathCircle(). r=dholbert
Before this patch, we did a sum-of-squares operation with nscoord variables,
which could overflow (to a negative value), and that would then produce NaN
when sqrt()'ed. We'll now avoid this by using 'double' variables & NS_hypot.

Without this patch, clip-path-circle-021.html will be rendered as a
rectangle.

MozReview-Commit-ID: 70xNvDdHUJc

--HG--
extra : rebase_source : 5d1d7eb788de9bde7bcc0dddbfc8a808fa40bea2
2016-12-20 15:54:18 +08:00