Граф коммитов

71 Коммитов

Автор SHA1 Сообщение Дата
Ting-Yu Lin 587b378e1d Bug 1326406 Part 6 - Make CircleShapeInfo inherit from EllipseShapeInfo. r=dbaron
MozReview-Commit-ID: H0UgT6P6c7K

--HG--
extra : rebase_source : c78b150708644baf09dcd182659eeeb108f6f7da
2017-01-23 17:19:32 +08:00
Ting-Yu Lin 0807932a97 Bug 1326406 Part 5 - Update document about float manager's coordinate space. r=dbaron
MozReview-Commit-ID: LJVqs49CSqQ

--HG--
extra : rebase_source : a012fd57664e6a58358eb18feab664958f15340c
2017-01-23 16:37:07 +08:00
Ting-Yu Lin 6e5dfe2a8e Bug 1326406 Part 4 - Implement shape-outside: ellipse(). r=dbaron
MozReview-Commit-ID: t1gaoKNbNp

--HG--
extra : rebase_source : e52d4f935d5865fd034def6c46d914c61db36f19
2017-01-23 17:18:07 +08:00
Ting-Yu Lin 3cda6f7ed5 Bug 1326406 Part 3 - Add ShapeInfo::Translate() for moving the origin of ShapeInfo. r=dbaron
Instead of manually adding (aLineLeft, aBlockStart) when creating a shape,
add Translate() to let the shapes implement their only way to move their
origin. FloatInfo could then move the shapes after they're created.

MozReview-Commit-ID: ApZBHnkng74

--HG--
extra : rebase_source : 10da425372e4e26b0da506059befc99e1c47a39d
2017-01-23 17:17:37 +08:00
Ting-Yu Lin 2306e3b833 Bug 1311244 Part 7 - Implement shape-outside: circle(). r=dbaron
circle() allows the user to define an empty flow area, so IsEmpty() needs to
be overridden.

The flow area defined by a shape needs to be clipped to the margin-box per
https://drafts.csswg.org/css-shapes/#relation-to-box-model-and-float-behavior

In the reftests, both clip-path and shape-outside uses the same value so
that it's easier to debug visually.

Add LogicalPoint::LineRelative() because we need to convert a point's I() to
the line-axis in nsFloatManager. LineRelative() differs from I() in all
'rtl' direction per
https://drafts.csswg.org/css-writing-modes-3/#logical-to-physical

MozReview-Commit-ID: FxQaFPrEQ73

--HG--
extra : rebase_source : 0d768002a38adbded2a0caa6d3e001eaaca3313d
2017-01-06 16:36:43 +08:00
Ting-Yu Lin 5ebb40fc4c Bug 1311244 Part 6 - Add ShapeInfo and move <shape-box> impl to BoxShapeInfo. r=dbaron
Create ShapeInfo as a base class for implementing all the shapes. In this
design, we only need to create the correct subclass in FloatInfo's
constructor whenever shape-outside is used rather than manually branching on
StyleShapeSourceType and StyleBasicShape in all the methods like
LineRight(), LineLeft(), etc.

The concrete subclass of ShapeInfo could focus on implementing how its shape
influence the flow area by overriding the needed methods in ShapeInfo.

Move ComputeEllipseLineInterceptDiff() and XInterceptAtY() under the scope
of ShapeInfo so that they could be used by BoxShapeInfo and all the other
ShpapeInfo subclasses yet to come.

MozReview-Commit-ID: ETVc5FdGNha

--HG--
extra : rebase_source : 9a083ccd95fd7565112a45e30c15a91b97c7290f
2017-01-06 16:36:30 +08:00
Ting-Yu Lin 73e06aacdd Bug 1311244 Part 5 - Convert FloatInfo's copy constructor into a move constructor. r=dbaron
Use move constructor for two reasons. 1) The copy constructor is needed only
when appending FloatInfo to mFloats, so using move constructor will likely
be more efficient if some of the member variables support move constructor.
2) Part 6 will added a UniquePtr member to FloatInfo, so using move
constructor becomes necessary.

Also change the return value of AddFloat() to void to simplify the code,
since all the other callers do not check the return value, and
BlockReflowInput::FloatAndPlaceFloat() only asserts in debug mode. I assume
it's safe to omit the OOM check.

MozReview-Commit-ID: GVbbsdBjr7b

--HG--
extra : rebase_source : e0f647e029278a5033bb9d6d780e73e32de460d3
2017-01-06 16:36:19 +08:00
Carsten "Tomcat" Book b80159cfa9 Backed out changeset 60d8d64ca347 (bug 1311244) 2017-01-12 14:19:22 +01:00
Carsten "Tomcat" Book ce67e53a4d Backed out changeset 2893ecc79fef (bug 1311244) 2017-01-12 14:19:20 +01:00
Carsten "Tomcat" Book 6cbcd637ab Backed out changeset 466053d9302b (bug 1311244) 2017-01-12 14:19:18 +01:00
Ting-Yu Lin 703d48f356 Bug 1311244 Part 7 - Implement shape-outside: circle(). r=dbaron
circle() allows the user to define an empty flow area, so IsEmpty() needs to
be overridden.

The flow area defined by a shape needs to be clipped to the margin-box per
https://drafts.csswg.org/css-shapes/#relation-to-box-model-and-float-behavior

In the reftests, both clip-path and shape-outside uses the same value so
that it's easier to debug visually.

Add LogicalPoint::LineRelative() because we need to convert a point's I() to
the line-axis in nsFloatManager. LineRelative() differs from I() in all
'rtl' direction per
https://drafts.csswg.org/css-writing-modes-3/#logical-to-physical

MozReview-Commit-ID: FxQaFPrEQ73

--HG--
extra : rebase_source : 0d768002a38adbded2a0caa6d3e001eaaca3313d
2017-01-06 16:36:43 +08:00
Ting-Yu Lin 7696a7581c Bug 1311244 Part 6 - Add ShapeInfo and move <shape-box> impl to BoxShapeInfo. r=dbaron
Create ShapeInfo as a base class for implementing all the shapes. In this
design, we only need to create the correct subclass in FloatInfo's
constructor whenever shape-outside is used rather than manually branching on
StyleShapeSourceType and StyleBasicShape in all the methods like
LineRight(), LineLeft(), etc.

The concrete subclass of ShapeInfo could focus on implementing how its shape
influence the flow area by overriding the needed methods in ShapeInfo.

Move ComputeEllipseLineInterceptDiff() and XInterceptAtY() under the scope
of ShapeInfo so that they could be used by BoxShapeInfo and all the other
ShpapeInfo subclasses yet to come.

MozReview-Commit-ID: ETVc5FdGNha

--HG--
extra : rebase_source : 9a083ccd95fd7565112a45e30c15a91b97c7290f
2017-01-06 16:36:30 +08:00
Ting-Yu Lin ea61e604fa Bug 1311244 Part 5 - Convert FloatInfo's copy constructor into a move constructor. r=dbaron
Use move constructor for two reasons. 1) The copy constructor is needed only
when appending FloatInfo to mFloats, so using move constructor will likely
be more efficient if some of the member variables support move constructor.
2) Part 6 will added a UniquePtr member to FloatInfo, so using move
constructor becomes necessary.

Also change the return value of AddFloat() to void to simplify the code,
since all the other callers do not check the return value, and
BlockReflowInput::FloatAndPlaceFloat() only asserts in debug mode. I assume
it's safe to omit the OOM check.

MozReview-Commit-ID: GVbbsdBjr7b

--HG--
extra : rebase_source : e0f647e029278a5033bb9d6d780e73e32de460d3
2017-01-06 16:36:19 +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 54c22b733c Bug 1311244 Part 7 - Implement shape-outside: circle(). r=dbaron
circle() allows the user to define an empty flow area, so IsEmpty() needs to
be overridden.

The flow area defined by a shape needs to be clipped to the margin-box per
https://drafts.csswg.org/css-shapes/#relation-to-box-model-and-float-behavior

In the reftests, both clip-path and shape-outside uses the same value so
that it's easier to debug visually.

Add LogicalPoint::LineRelative() because we need to convert a point's I() to
the line-axis in nsFloatManager. LineRelative() differs from I() in all
'rtl' direction per
https://drafts.csswg.org/css-writing-modes-3/#logical-to-physical

MozReview-Commit-ID: FxQaFPrEQ73

--HG--
extra : rebase_source : 02b4eafdff42477ef2c69d604a1650db01f954e4
2017-01-06 16:36:43 +08:00
Ting-Yu Lin af28dce861 Bug 1311244 Part 6 - Add ShapeInfo and move <shape-box> impl to BoxShapeInfo. r=dbaron
Create ShapeInfo as a base class for implementing all the shapes. In this
design, we only need to create the correct subclass in FloatInfo's
constructor whenever shape-outside is used rather than manually branching on
StyleShapeSourceType and StyleBasicShape in all the methods like
LineRight(), LineLeft(), etc.

The concrete subclass of ShapeInfo could focus on implementing how its shape
influence the flow area by overriding the needed methods in ShapeInfo.

Move ComputeEllipseLineInterceptDiff() and XInterceptAtY() under the scope
nsFloatManager so that they could be used by BoxShapeInfo and all the other
ShpapeInfo subclasses yet to come.

MozReview-Commit-ID: ETVc5FdGNha

--HG--
extra : rebase_source : c73b0d0be2350db3eedb61b565de194842352ba1
2017-01-06 16:36:30 +08:00
Ting-Yu Lin 6dbe03d519 Bug 1311244 Part 5 - Convert FloatInfo's copy constructor into a move constructor. r=dbaron
Use move constructor for two reasons. 1) The copy constructor is needed only
when appending FloatInfo to mFloats, so using move constructor will likely
be more efficient if some of the member variables support move constructor.
2) Part 6 will added a UniquePtr member to FloatInfo, so using move
constructor becomes necessary.

Also change the return value of AddFloat() to void to simplify the code,
since all the other callers do not check the return value, and
BlockReflowInput::FloatAndPlaceFloat() only asserts in debug mode. I assume
it's safe to omit the OOM check.

MozReview-Commit-ID: GVbbsdBjr7b

--HG--
extra : rebase_source : 4765bbcf5c2533845bd8f7fb00117983429a622e
2017-01-06 16:36:19 +08:00
Ting-Yu Lin 50f80eb8ba Bug 1319672 Part 1 - Add document related to writing-mode in nsFloatManager. r=dbaron
MozReview-Commit-ID: 2Sr7UU6BQ9r

--HG--
extra : rebase_source : 50840b749cf045221af9680dc3538406f0936286
2016-11-23 18:07:56 +08:00
Ting-Yu Lin 62055a1981 Bug 1316549 Part 4 - Use logical names for ComputeEllipseLineInterceptDiff(). r=dbaron
This patch is just renames. No logic change for the function.

MozReview-Commit-ID: K7w0YL3G3gu

--HG--
extra : rebase_source : d72ecdcb4d4455f4950c8673c81fbfc7c1b4f54c
2016-11-18 13:54:09 +08:00
Ting-Yu Lin ece375de5b Bug 1316549 Part 3 - Fix <shape-box> with border-radius in writing-mode. r=dbaron
The tests cases are designed based on the integer solution to the ellipse
equation (x/a)^2 + (y/b)^2 = 1, where x=36, y=32, a=60, b=40.

MozReview-Commit-ID: De2fXcb6ypP

--HG--
extra : rebase_source : a64f490ff41c020b84025266c0c255d93a158eea
2016-11-14 18:11:45 +08:00
Ting-Yu Lin 7a0febcd1b Bug 1309467 Part 5 - Make flow area of <shape-box> values respect border-radius. r=dbaron
In GetFlowArea(), "Shrink our band's height if needed." computation was
moved to the end because we need to pass the unmodified |blockEnd| to
compute LineRight() and LineLeft().

Revamp OutsetBorderRadii() to allow negative margin to reduce the radius,
but not below zero. Also implement the cubic formula required by the spec.
https://drafts.csswg.org/css-shapes/#valdef-shape-box-margin-box

OutsetBorderRadii() is now tailored only for margin-box with border-radius,
so it might no longer be suitable for other scenarios.

MozReview-Commit-ID: HKxW7rp6sIA

--HG--
extra : rebase_source : d416433016304feefc9ed9dcd1c22f7f2f92e27e
2016-10-13 16:28:38 +08:00
Ting-Yu Lin 0bb55f9970 Bug 1309467 Part 4 - Implement <shape-box> values for shape-outside. r=dbaron
Per spec, float positioning and stacking is not affected by defining a float
area with a shape.
https://drafts.csswg.org/css-shapes/#relation-to-box-model-and-float-behavior

So all the call sites of GetFloatAvailableSpace() related to adding a
float are replaced by GetFloatAvailableSpaceForPlacingFloat().

<shape-box> with border-radius will be implemented in next part.

MozReview-Commit-ID: 1RXEeXDhdWo

--HG--
extra : rebase_source : 42cdb0c81b16168e4e30ee2261ceccb562e278cf
2016-10-12 16:06:25 +08:00
Ting-Yu Lin f55545b058 Bug 1309467 Part 3 - Move FloatInfo::mRect construction into FloatInfo's constructor. r=dbaron
In later parts, we need the aMarginRect to build rect for shape box.

MozReview-Commit-ID: LtwMxbsNu3u

--HG--
extra : rebase_source : eee35663458079026b14922499b566674b2680ac
2016-10-12 14:26:26 +08:00
Ting-Yu Lin 91e0aadf9e Bug 1309467 Part 2 - Convert BandInfoType to an enum class. r=dbaron
Also exchange the order of the second argument |aBSize| and the third
argument |aBandInfo| for GetFlowArea() so that aBCoord and aBSize are
grouped together. And it'll be prettier to add ShapeInfo behind BandInfo
in later part.

MozReview-Commit-ID: cusdomjUyu

--HG--
extra : rebase_source : 8a7dca7179f1a05d380473d5d56d984bbe8aa97f
2016-10-12 13:26:17 +08:00
Ting-Yu Lin 52503527a3 Bug 1302758 Part 3 - Remove nullptr check of operator new in CreateFloatManager. r=dholbert
The operator new is infallable. Also change the return value to void
accordingly. The only caller doesn't even check the return value.

MozReview-Commit-ID: 3whf7s1d35q

--HG--
extra : rebase_source : 6c3a7010f77dad0ee5f50408205fc3a5418dacc9
2016-09-15 23:29:57 +08:00
Ting-Yu Lin 926abf8d9a Bug 1302758 Part 1 - Minor cosmetic fixes in nsFloatManager. r=dholbert
These fixes are in the contextual of Part 2.

MozReview-Commit-ID: 3AJUozeIi8W

--HG--
extra : rebase_source : f03ea1e52a78295ad51165cb5b9d40fd9b2ac5d2
2016-09-15 11:29:14 +08:00
Jeremy Chen c6d0429830 Bug 1297306 - part6:replace NS_STYLE_CLEAR_* with StyleClear enum class. r=xidorn
After using enum class, a switch-case warning in CombineBreakType is caught.
This is one of such kind safty checks that we would like to gain.
Fix it by adding default case for switch-case in CombineBreakType.

MozReview-Commit-ID: BdS3LPN6qzX

--HG--
extra : rebase_source : 17f24a0d482ed6eb51b23e6942d0ac1c87375e0b
2016-09-07 10:20:17 +08:00
Ting-Yu Lin 40fcd21b9a Bug 1277129 Part 7b - Rename various ReflowState variables to ReflowInput. r=dbaron
This patch is generated by the following script:

function rename() {
find .\
     -type f\
     ! -path "./obj*"\
     ! -path "./.git"\
     ! -path "./.hg"\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -r "s/$1/$2/g" "{}" \;
}

rename "([[:alpha:]]*)([rR])eflowState(s?)" "\1\2eflowInput\3"

MozReview-Commit-ID: ITFO7uMTkSb

--HG--
extra : rebase_source : c91a2e174a0baec60c1b0111ac7636295004ab35
2016-07-21 18:36:39 +08:00
Ting-Yu Lin 820f88de49 Bug 1277129 Part 1c - Rename nsHTMLReflowState to ReflowInput. r=dbaron
This patch is generated by the following script:

function rename() {
find .\
     -type f\
     ! -path "./obj*"\
     ! -path "./.git"\
     ! -path "./.hg"\
     \( -name "*.cpp" -or\
        -name "*.h" \)\
        -exec sed -i -e "s/$1/$2/g" "{}" \;
}

rename nsHTMLReflowState ReflowInput

MozReview-Commit-ID: 9r9vdVv1pXc

--HG--
extra : rebase_source : 623ec822996ba0ea0058dd137acf5a658cdea04a
2016-07-21 18:36:35 +08:00
Ting-Yu Lin 39dffbe21b Bug 1277129 Part 1a - Move nsHTMLReflowState and nsCSSOffsetState into mozilla namespace. r=dbaron
MozReview-Commit-ID: DJfEQRCgNo3

--HG--
extra : rebase_source : add4c7a843f956114b2b9dfe20fba1048139ca5f
2016-07-21 18:36:34 +08:00
Ting-Yu Lin 8c5af6b331 Bug 1282029 Part 2 - Update comments. r=dbaron
MozReview-Commit-ID: AB01qG99GeH

--HG--
extra : rebase_source : 333e0c02f9b6ef6daadd841cf4be2e35e72158c3
2016-06-24 17:47:33 +08:00
Ting-Yu Lin b1101f8897 Bug 1282029 Part 1 - Remove superfluous access modifiers. r=dbaron
MozReview-Commit-ID: 5HRNtYECUjU

--HG--
extra : rebase_source : d0cc30bcd72168d1da345dcb72e9f41876977755
2016-06-24 17:47:32 +08:00
Jonathan Watt 3032d8365b Bug 1253094, part 5 - Stop using DebugOnly for class/struct members in layout/. r=mats
MozReview-Commit-ID: 3a49kqA4A9
2016-02-26 15:52:07 +00:00
Nicholas Nethercote b05b423429 Bug 1231256 (part 6) - Remove unused parameter from Damage functions. r=roc.
--HG--
extra : rebase_source : 1c5bce4cde56ce7cd63aa719d9952bf72164e634
2015-12-07 15:23:34 -08:00
Jonathan Kew 4e6c40d7ea Bug 1131451 part 1 - Replace containerWidth with containerSize in logical-coordinate classes and APIs, frame classes, etc. r=dholbert 2015-07-16 10:07:57 +01:00
Jonathan Kew 5959a44b6d Bug 1145218 - Make the float manager's writing-mode field debug-only, and assert that it matches what callers are passing in. r=smontagu 2015-04-01 16:43:58 +01:00
Wes Kocher 9a5e98b683 Backed out changeset bad0f7f06864 (bug 1145218) for windows reftest failures CLOSED TREE
--HG--
extra : amend_source : cd100399f17d38a58d10958b8cf21e45a53740ca
2015-04-01 11:36:19 -07:00
Jonathan Kew 326760fbd9 Bug 1145218 - Make the float manager's writing-mode field debug-only, and assert that it matches what callers are passing in. r=smontagu 2015-04-01 16:43:58 +01:00
Cameron McCormack 04722fa8f9 Bug 1120300 - Export WritingModes.h as mozilla/WritingModes.h. r=jfkthame 2015-03-26 18:29:31 +11:00
Simon Montagu 13be932c72 Bug 1143218 patch 3: a better fix for bug 1105137 using line-left and line-right to place floats, r=jfkthame 2015-03-22 11:44:48 +02:00
Simon Montagu 4454a1b4b5 Bug 1143218 patch 1: Back out the fix for bug 1105137, r=jfkthame 2015-03-22 11:44:48 +02:00
Ehsan Akhgari 4354953b4f Bug 1118486 - Part 1: Use `= delete` instead of MOZ_DELETE directly; r=Waldo
Most of this patch (with the exception of dom/bindings/Codegen.py) was
generated by the following bash script:

#!/bin/bash

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "*/.git*" \
       ! -wholename "obj-*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_DELETE '= delete'
2015-01-08 23:19:05 -05:00
Simon Montagu 33a271e5bd Bug 1105137: treat nsFloatManager's mOrigin as an offset, not a point, and rename it to mOffset to make that clearer, r=jfkthame 2014-12-11 03:56:03 -08:00
Ehsan Akhgari b35004b3cd Bug 1109705 - Fix more bad implicit constructors in layout; r=roc 2014-12-10 17:47:09 -05:00
Simon Montagu 8d64967541 Bug 1079139: make nsFlowAreaRect.mRect a LogicalRect. r=jfkthame 2014-10-21 15:16:13 -07:00
Simon Montagu e753ab75a0 Bug 1062963 patch 3: make nsFloatManager's origin a LogicalPoint, adapt GetFlowAreas, AddFloats, ClearFloats, etc. to use it and make nsFloatManager region functions work with logical region. r=jfkthame 2014-10-21 15:16:12 -07:00
Phil Ringnalda b2eb743d9b Backed out 4 changesets (bug 1062963, bug 1079139) for failures in 427129-table-caption.html in b2g reftest-6 and Android 2.3 reftest-5
Backed out changeset a9672db96a5d (bug 1079139)
Backed out changeset 241c23570a62 (bug 1062963)
Backed out changeset 90172cc0b012 (bug 1062963)
Backed out changeset 71211c4a4acc (bug 1062963)
2014-10-19 18:44:16 -07:00
Simon Montagu 3134a81fca Bug 1079139: make nsFlowAreaRect.mRect a LogicalRect. r=jfkthame 2014-10-19 12:32:17 -07:00
Simon Montagu 3f0d7f2fcc Bug 1062963 patch 3: make nsFloatManager's origin a LogicalPoint, adapt GetFlowAreas, AddFloats, ClearFloats, etc. to use it and make nsFloatManager region functions work with logical region. r=jfkthame 2014-10-19 12:32:17 -07:00
Ehsan Akhgari 60360fc645 Bug 1060985 - Fix more bad implicit constructors in layout; r=roc 2014-08-31 23:36:37 -04:00