Commit graph

377 commits

Author SHA1 Message Date
Ting-Yu Lin
24871a70de Bug 1647332 Part 1 - Print more information in column set log. r=heycam
* childContentBEnd: this value can be larger than
kidDesiredSize.BSize(wm) if -moz-column-content anonymous blocks has a
child which is overflow-incomplete.

* mLastBSize: last column's block-size is important in column balancing
algorithm because it sets mKnownInfeasibleBSize when a balancing
iteration is feasible.

* The iteration count in column balancing. This is an easy way to
observe column balancing performance.

Differential Revision: https://phabricator.services.mozilla.com/D80568
2020-06-23 18:34:34 +00:00
Ting-Yu Lin
9ebd7d8fc0 Bug 1634102 - Always balance columns before column-spans (regardless the column-fill property). r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D77570
2020-06-17 03:35:42 +00:00
Ting-Yu Lin
aa8db6ce2d Bug 1614101 - Make sure ColumnSet does not split in the last reflow if ColumnSetWrapper's available block-size is unconstrained. r=dbaron
Checking ColumnSet's available block-size [1] makes no sense nowadays
because ColumnSet is an inner frame under ColumnSetWrapper. We should
check ColumnSetWrapper's available block-size instead.

Also, bump assertions count for 1015844.html on Android, which is a
crashtest having multicols.

[1] The comment was also misleading, which said it was checking
ColumnSet's "block-size", but it actually was checking available
block-size.

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

--HG--
extra : moz-landing-system : lando
2020-03-04 18:21:01 +00:00
Csoregi Natalia
f57c04f7ff Backed out changeset 5ecd70faa23f (bug 1614101) for crashtest failures on 1015844.html. CLOSED TREE 2020-03-04 19:41:38 +02:00
Ting-Yu Lin
bf48011278 Bug 1614101 - Make sure ColumnSet does not split in the last reflow if ColumnSetWrapper's available block-size is unconstrained. r=dbaron
Checking ColumnSet's available block-size [1] makes no sense nowadays
because ColumnSet is an inner frame under ColumnSetWrapper. We should
check ColumnSetWrapper's available block-size instead.

[1] The comment was also misleading, which said it was checking
ColumnSet's "block-size", but it actually was checking available
block-size.

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

--HG--
extra : moz-landing-system : lando
2020-03-03 13:07:40 +00:00
Ting-Yu Lin
95282ce758 Bug 1618646 Part 2 - Remove mComputedBSize and mConsumedBSize in nsColumnSetFrame::ReflowConfig. r=mats
They were used when nsColumnSetFrame was still a column container, but
are not used today.

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

--HG--
extra : moz-landing-system : lando
2020-02-28 22:36:35 +00:00
Ting-Yu Lin
450809ad1c Bug 1618646 Part 1 - Remove nsColumnSetFrame::GetAvailableContentBSize(). r=mats
ColumnSet is an inner frame now. It cannot have border and padding.

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

--HG--
extra : moz-landing-system : lando
2020-02-28 22:35:21 +00:00
Simon Giesecke
9350e6b741 Bug 1613985 - Use MOZ_COUNTED_DEFAULT_CTOR_*/MOZ_COUNTED_DTOR_* macros. r=froydnj
This removes the need for explicit #ifdef NS_BUILD_REFCNT_LOGGING without
introducing user-defined destructors when it is not defined.

Also, some uses of virtual for declaring destructors are replaced by the
appropriate override declaration through these changes.

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

--HG--
extra : moz-landing-system : lando
2020-02-20 11:40:14 +00:00
Dorel Luca
d5f9df8ee1 Backed out 2 changesets (bug 1613985) for Build bustage on Windows2012. CLOSED TREE
Backed out changeset fd177b40b561 (bug 1613985)
Backed out changeset fb6d62b7f28d (bug 1613985)
2020-02-19 22:22:41 +02:00
Simon Giesecke
59b23375c0 Bug 1613985 - Use MOZ_COUNTED_DEFAULT_CTOR_*/MOZ_COUNTED_DTOR_* macros. r=froydnj
This removes the need for explicit #ifdef NS_BUILD_REFCNT_LOGGING without
introducing user-defined destructors when it is not defined.

Also, some uses of virtual for declaring destructors are replaced by the
appropriate override declaration through these changes.

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

--HG--
extra : moz-landing-system : lando
2020-02-19 18:05:38 +00:00
Emilio Cobos Álvarez
006e5cca66 Bug 1614198 - Use cbindgen instead of nsStyleImage. r=aosmond
The trickier part is that we represent -moz-image-rect as a Rect() type instead
of image with non-null clip-rect. So we need to add a bit of code to
distinguish "image request types" from other types of images.

But it's not too annoying, and we need to do the same for fancier images like
image-set and such whenever we implement it, so seems nice to get rid of
most explicit usages of nsStyleImage::GetType().

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

--HG--
extra : moz-landing-system : lando
2020-02-11 20:56:20 +00:00
Ting-Yu Lin
4c6c2f7bbe Bug 1603088 Part 2 - Delete NS_FRAME_CONTAINS_RELATIVE_BSIZE manipulation in nsColumnSetFrame::Reflow(). r=dbaron
Nowadays, ColumnSetFrame is an inner frame under ColumnSetWrapperFrame.
It always has "block-size: auto", so `aReflowInput.ComputedBSize()`
always equals to NS_UNCONSTRAINEDSIZE.

Also, -moz-column-content no longer has "max-block-size: 100%", so
NS_FRAME_CONTAINS_RELATIVE_BSIZE can never be set on ColumnSetFrame when
constructing ReflowInputs for ColumnSetFrame's children in
`ReflowInput::InitResizeFlags`. Removing the bit is not needed, either.

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

--HG--
extra : moz-landing-system : lando
2020-01-08 02:48:14 +00:00
Bogdan Tara
d0de37ac8e Backed out 2 changesets (bug 1603088) for android crashtest failures on 1015844.html
Backed out changeset 2bd2d03f3c45 (bug 1603088)
Backed out changeset d4cc66fb7593 (bug 1603088)
2020-01-08 02:04:06 +02:00
Ting-Yu Lin
fa839d3679 Bug 1603088 Part 2 - Delete NS_FRAME_CONTAINS_RELATIVE_BSIZE manipulation in nsColumnSetFrame::Reflow(). r=dbaron
Nowadays, ColumnSetFrame is an inner frame under ColumnSetWrapperFrame.
It always has "block-size: auto", so `aReflowInput.ComputedBSize()`
always equals to NS_UNCONSTRAINEDSIZE.

Also, -moz-column-content no longer has "max-block-size: 100%", so
NS_FRAME_CONTAINS_RELATIVE_BSIZE can never be set on ColumnSetFrame when
constructing ReflowInputs for ColumnSetFrame's children in
`ReflowInput::InitResizeFlags`. Removing the bit is not needed, either.

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

--HG--
extra : moz-landing-system : lando
2020-01-07 20:19:27 +00:00
Ting-Yu Lin
48fe88d373 Bug 1499281 - Remove column-span pref in nsColumnSetFrame. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D58396

--HG--
extra : moz-landing-system : lando
2019-12-31 16:10:21 +00:00
James Hooks
6ea13e1732 Bug 1585806 - Make SideBits an enum class, add casting where necessary. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D51291

--HG--
extra : moz-landing-system : lando
2019-11-16 20:59:34 +00:00
Ting-Yu Lin
d0f336a7a6 Bug 1591546 Part 1 - Add WritingMode::IsBidiRTL(). r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D50771

--HG--
extra : moz-landing-system : lando
2019-10-28 09:33:05 +00:00
Daniel Holbert
547238dc03 Bug 1590639 part 1: Fix non-unified build issues in layout/generic. r=TYLin
The issues fall into these categories:
 - Files that used StaticPrefs::layout_XYZ() API or gfxVars::XYZ that needed an
   include. (Addressed by adding the missing include.)
 - Files that use mozilla::dom::XYZ or mozilla::gfx::XYZ without qualifying the
   namespace & without a 'using' decl. (Addressed by adding "using".)
 - A few other includes for types/inlines that were used without their header.

Depends on D50162

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

--HG--
extra : moz-landing-system : lando
2019-10-23 22:05:22 +00:00
Ting-Yu Lin
df696cf9c1 Bug 1575054 - Disable column balancing for nested multicol containers of depth more than two. r=dbaron
That is, for the multicol container of depth two and more, we lay them
out by using "column-fill:auto" and "column-count:1".

I've check bug 725376 comment 9 for the previous approaches. Thanks to
bug 1555818, this solution is feasible because the fragmentation with
"column-fill:auto" is now possible.

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

--HG--
extra : moz-landing-system : lando
2019-09-26 22:07:53 +00:00
Coroiu Cristina
b567839436 Backed out changeset e10a3c249943 (bug 1575054) for crashtest failures at reftest/tests/layout/generic/crashtests/812893.html on a CLOSED TREE 2019-09-27 00:16:47 +03:00
Ting-Yu Lin
1e019098f5 Bug 1575054 - Disable column balancing for nested multicol containers of depth more than two. r=dbaron
That is, for the multicol container of depth two and more, we lay them
out by using "column-fill:auto" and "column-count:1".

I've check bug 725376 comment 9 for the previous approaches. Thanks to
bug 1555818, this solution is feasible because the fragmentation with
"column-fill:auto" is now possible.

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

--HG--
extra : moz-landing-system : lando
2019-09-24 21:38:00 +00:00
Ting-Yu Lin
626ea340bc Bug 1583639 Part 4 - Stop creating more columns in column-fill:auto mode if there's still block-size left in multicol container. r=dbaron
This patch makes fragmentation in "column-fill:auto" mode possible.

Note that we only bail out of creating more column contents when
"column-fill:auto" mode is set from the styles, i.e. when mForceAuto is
false. That is because when mForceAuto is true, we usually in the case
where we have gave up balancing, and we really want to create overflow
columns.

Note: without `!aConfig.mForceAuto` check, 673770.html can generated
assertions, and the frame tree contains dangling Overflow-lines and
ExcessOverflowContainersList.

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

--HG--
extra : moz-landing-system : lando
2019-09-25 23:36:41 +00:00
Ting-Yu Lin
771bb28447 Bug 1583639 Part 3 - Keep the optimal used numColumns in column-fill:auto mode without resetting it to INT32_MAX. r=dbaron
mUsedColCount is used in balancing mode to check whether we have created
the maximum number of columns when the content cannot fit. Similarly,
mUsedColCount can also be useful in "column-fill:auto" mode to improve
the fragmentation story in the next patch.

This patch doesn't change the behavior (yet).

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

--HG--
extra : moz-landing-system : lando
2019-09-25 06:41:10 +00:00
Ting-Yu Lin
fd1d19e6aa Bug 1583639 Part 2 - Rename mBalanceColCount to mUsedColCount in nsColumnSetFrame::ReflowConfig. r=dbaron
In next patch, this variable won't be set to INT32_MAX in
"column-fill:auto" mode, and it will be used in Part 4. Hence the
rename.

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

--HG--
extra : moz-landing-system : lando
2019-09-25 06:43:19 +00:00
Ting-Yu Lin
eded32bd45 Bug 1583639 Part 1 - De-indent an else-block inside the while-loop in nsColumnSetFrame::ReflowChild. r=dbaron
The associated if-block has a "break" statement at the end of the scope
to break the while-loop, making the else-block redundant.

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

--HG--
extra : moz-landing-system : lando
2019-09-24 21:09:20 +00:00
Ting-Yu Lin
88413c82e6 Bug 1575016 - Update a comment that describes minimum 1px block-size for column-content blocks. r=dbaron
Fragmentation spec already has a paragraph describing this behavior.

DONTBUILD because this is a comment only change.

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

--HG--
extra : moz-landing-system : lando
2019-09-21 08:38:54 +00:00
Ting-Yu Lin
4c19765137 Bug 1575964 Part 2 - Fix RTL column positions when column-span is enabled. r=dbaron
Since column-contents' positions are moved, we need to fix ColumnSet's
overflow areas as well.

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

--HG--
extra : moz-landing-system : lando
2019-09-17 01:12:30 +00:00
Ting-Yu Lin
a9b1812a76 Bug 1575964 Part 1 - Separate a fixup logic which is redundant if column-span is enabled. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D44278

--HG--
extra : moz-landing-system : lando
2019-09-16 18:45:34 +00:00
Ting-Yu Lin
b4138652e0 Bug 1575106 Part 3 - Use unconstrained block-size to measure last column, and revise condition to create overflow columns. r=dbaron
This patch changes behavior only if column-span is enabled. It fixes a
lot of fuzzing test cases which will be added in the next part.

It changes the column balancing behavior in the following ways.

1) By using unconstrained block-size to measure the last column in the
   first balancing iteration, we can guarantee that mKnownFeasibleBSize
   has the correct feasible block-size.

2) Always reflow one more time if the content cannot fit in the
   available content block-size. Due to 1), the content (last column)
   always returns fully complete in the first balancing iteration even if
   it's in an inner column with a constrained available block-size. We need
   to reflow again to get the correct *incomplete* reflow status so that
   the outer column can create next-in-flows for the inner column.

3) ColumnSet gives up balancing only when ColumnSetWrapper is running
   out of block-size. When a ColumnSetWrapper has constrained block-size,
   i.e. it's in a fragmentation context like pages or nested columns, we
   prioritize fragmenting ColumnSetWrapper over creating overflow columns
   within the nsColumnSet.

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

--HG--
extra : moz-landing-system : lando
2019-08-26 07:03:36 +00:00
Ting-Yu Lin
def57daecd Bug 1575106 Part 1 - Use a variable to indicate ColumnSet is measuring the feasible block-size. r=dbaron
That is when ColumnSet gives its last ::moz-column-content unbounded
available block-size in the very first balancing iteration.

Note that the last column's available block-size isn't
really *unbounded* yet, but we'll make it happen in the next part.

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

--HG--
extra : moz-landing-system : lando
2019-08-26 06:10:11 +00:00
Ting-Yu Lin
0958d8ea88 Bug 1575305 Part 4 - Improve column set log. r=dbaron
1. Add `this` to the log so that it's easier to debug a nested column
balancing

2. Print the struct fields the same as their names.

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

--HG--
extra : moz-landing-system : lando
2019-08-21 00:25:07 +00:00
Ting-Yu Lin
913e451679 Bug 1575305 Part 3 - Initialize colBSize with available block-size when column-span is enabled. r=dbaron
nsBlockFrame already prepares the available block-size for
ColumnSetFrame with ColumnSetWrapper's block-size and max-block-size
applied. (ColumnSet's computed block-size and max block-size is always
unconstrained when column-span is enabled.)

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

--HG--
extra : moz-landing-system : lando
2019-08-21 00:24:09 +00:00
Ting-Yu Lin
6df1d8db45 Bug 1575305 Part 2 - Remove the unused border-padding variable in nsBlockFrame::FindBestBalanceBSize(). r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D42709

--HG--
extra : moz-landing-system : lando
2019-08-21 00:24:00 +00:00
Ting-Yu Lin
206960605d Bug 1569701 Part 2 - Use ColumnSetWrapper's effective computed content block-size to impose constraint for ColumnSet. r=dbaron
Run broken-column-rule-1.html with column-span enabled because it was
regressed by Bug 1548100 Part 2, but fixed by this patch.

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

--HG--
extra : moz-landing-system : lando
2019-08-15 16:59:13 +00:00
Ting-Yu Lin
e4c1298151 Bug 1569701 Part 0 - Use nscoord instead of int for contentBEnd in nsColumnSetFrame::ReflowChildren(). r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D41905

--HG--
extra : moz-landing-system : lando
2019-08-14 23:17:06 +00:00
Ting-Yu Lin
ebf027e14b Bug 1571849 - In ColumnSetFrame, use mParentReflowInput to get the ColumnSetWrapperFrame's reflow input. r=dbaron
In ColumnSetFrame's reflow methods, mCBReflowInput is equal to
mParentReflowInput in most of the cases.

However, a multicol <button> has the HTMLButtonControl as the outermost
frame, where ColumnSetWrapper is its -moz-button-content anonymous
child. In this case, mCBReflowInput is HTMLButtonControl's reflow input.

To get the correct computedBSize of ColumnSetWrapper, we need to use
mParentReflowInput.

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

--HG--
extra : moz-landing-system : lando
2019-08-12 06:41:51 +00:00
L. David Baron
1488be9417 Bug 1571250 - Convert flags passed to ReflowChild, FinishReflowChild, SyncFrameViewAfterReflow and from GetXULLayoutFlags / GetLayoutFlags into an enum class. r=TYLin
It seems better to convert this before adding a new flag (in bug
1547759) and risking replacing the wrong 0 with a flag.

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

--HG--
extra : moz-landing-system : lando
2019-08-08 19:48:19 +00:00
Ting-Yu Lin
86d713320f Bug 1569252 Part 1 - Convert nsIFrame::HasColumnSpanSiblings() property into an nsIFrame bit. r=dbaron
Differential Revision: https://phabricator.services.mozilla.com/D40760

--HG--
extra : moz-landing-system : lando
2019-08-07 20:20:18 +00:00
Ting-Yu Lin
9615a105df Bug 1571930 - Convert a MOZ_ASSERT in nsColumnSetFrame::ReflowChildren() to be non-fatal. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D40910

--HG--
extra : moz-landing-system : lando
2019-08-07 01:28:29 +00:00
Ting-Yu Lin
b14d39764b Bug 1548100 Part 2 - Fix the block-size of the column-rule by consuming available block-size. r=dbaron
After enabling column-span, ColumnSet becomes an anonymous child under
ColumnSetWrapperFrame. It doesn't need to handle border and padding,
containment, and non-auto block-size. ColumnSet's final block-size is
simply the union of ::-moz-column-content frames' rects.

However, we should extend ColumnSet's block-size to consume the
available block-size if the ColumnSetWrapper's block-size is constrained
so that the column rules are drawn to the block-end edge of the multicol
container.

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

--HG--
rename : testing/web-platform/meta/css/css-multicol/multicol-breaking-000.html.ini => testing/web-platform/meta/css/css-multicol/multicol-rule-nested-balancing-001.html.ini
rename : testing/web-platform/meta/css/css-multicol/multicol-breaking-000.html.ini => testing/web-platform/meta/css/css-multicol/multicol-rule-nested-balancing-002.html.ini
rename : testing/web-platform/meta/css/css-multicol/multicol-breaking-000.html.ini => testing/web-platform/meta/css/css-multicol/multicol-span-all-rule-001.html.ini
extra : moz-landing-system : lando
2019-08-01 22:48:55 +00:00
Ciure Andrei
8a5a8ec27a Backed out 2 changesets (bug 1548100) for causing nsColumnSetFrame.cpp perma asertion failures CLOSED TREE
Backed out changeset a06a6a6e1c5e (bug 1548100)
Backed out changeset 03a11c109d07 (bug 1548100)
2019-08-02 00:44:55 +03:00
Ting-Yu Lin
e65d961df7 Bug 1548100 Part 2 - Fix the block-size of the column-rule by consuming available block-size. r=dbaron
After enabling column-span, ColumnSet becomes an anonymous child under
ColumnSetWrapperFrame. It doesn't need to handle border and padding,
containment, and non-auto block-size. ColumnSet's final block-size is
simply the union of ::-moz-column-content frames' rects.

However, we should extend ColumnSet's block-size to consume the
available block-size if the ColumnSetWrapper's block-size is constrained
so that the column rules are drawn to the block-end edge of the multicol
container.

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

--HG--
rename : testing/web-platform/meta/css/css-multicol/multicol-breaking-000.html.ini => testing/web-platform/meta/css/css-multicol/multicol-rule-nested-balancing-001.html.ini
rename : testing/web-platform/meta/css/css-multicol/multicol-breaking-000.html.ini => testing/web-platform/meta/css/css-multicol/multicol-rule-nested-balancing-002.html.ini
rename : testing/web-platform/meta/css/css-multicol/multicol-breaking-000.html.ini => testing/web-platform/meta/css/css-multicol/multicol-span-all-rule-001.html.ini
extra : moz-landing-system : lando
2019-08-01 00:03:22 +00:00
L. David Baron
ce547cd6f5 Bug 1566945 - Add a parameter to nsContainerFrame::InsertFrames for aPrevFrame's line box. r=dholbert
For now, always pass null, except when passing it through from one
overload to another.

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

--HG--
extra : moz-landing-system : lando
2019-07-17 23:34:45 +00:00
Sylvestre Ledru
e77bfc655d Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-07-16 07:33:44 +00:00
L. David Baron
97a432f01b Bug 1564649 - Reflow all columns when a multicol with non-auto block-size balances its columns at a different block-size. r=TYLin
Depends on D37516

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

--HG--
extra : moz-landing-system : lando
2019-07-12 20:24:46 +00:00
L. David Baron
e7834460f9 Bug 1564649 - Remove a duplicate variable where we had two variables for the same thing, and a little related cleanup. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D37515

--HG--
extra : moz-landing-system : lando
2019-07-12 20:24:41 +00:00
Gerald Squelart
2f31b3fef4 Bug 1474771 - Propagate NS_FRAME_IS_DIRTY to descendants when marking as dirty rather than during reflow. r=dholbert
This simplifies dealing with frames that are pushed/pulled between
continuations during reflow, allows us to avoid the complexity of the
fix to 1459937, and hopefully fixes some of the regressions from bug
1308876.

This disables the changes from bug 1459937 by commenting out a single
line in ReparentFrameInternal in nsBlockFrame.cpp, but all the added
code will be removed in the following patch.

Co-authored-by: Gerald Squelart <gsquelart@mozilla.com>
Co-authored-by: L. David Baron <dbaron@dbaron.org>

Depends on D36423

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

--HG--
extra : moz-landing-system : lando
2019-07-01 21:56:43 +00:00
Ting-Yu Lin
6c93720bad Bug 1523595 Part 3 - Apply ColumnSetWrapper's block size constraint to the available size when creating BlockReflowInput for ColumnSet. r=dbaron
We used to apply the column container's block size constraint on top of
the available block size in nsColumnSetFrame::ChooseColumnStrategy().
After column-span is enabled, ColumnSet is no longer the outermost
column container frame. We need to apply ColumnSetWrapper's block size
constraint to the available size when creating the ReflowInput for
ColumnSet so that ColumnSet can use it to compute the max column block
size in ChooseColumnStrategy().

This is calculated in nsBlockFrame::ReflowBlockFrame() instead of
nsColumnSetFrame::ChooseColumnStrategy() because we need
BlockReflowInput::mBCoord to determine the remaining block size.

multicol-breaking-004.html is copied and modified from
multicol-breaking-001.html with border-bottom added to test
"box-decoration-break: clone".

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

--HG--
extra : moz-landing-system : lando
2019-06-19 17:05:22 +00:00
Ting-Yu Lin
3a4933eb98 Bug 1549267 Part 1 - Remove NS_INTRINSICSIZE and NS_AUTOHEIGHT. r=mats
This patch is generated by the following steps.

1) Manually delete NS_INTRINSICSIZE and NS_AUTOHEIGHT in LayoutConstants.

2) Run the following script.
```
  #!/bin/bash
  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 NS_INTRINSICSIZE NS_UNCONSTRAINEDSIZE
  rename NS_AUTOHEIGHT NS_UNCONSTRAINEDSIZE
```

3) ./mach clang-format

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

--HG--
extra : moz-landing-system : lando
2019-06-04 23:41:20 +00:00
Ting-Yu Lin
2598c03a8b Bug 1494100 Part 2 - Check column-span pref before checking the size containment in nsColumnSetFrame. r=dholbert
If column-span is enabled, nsColumnSetFrame becomes an inner frame under
ColumnSetWrapperFrame, and that outer frame is then where we should be
handling size containment.

This patch doesn't change the logic but make the logic easier to
simplify once we start eliminating column-span pref.

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

--HG--
extra : moz-landing-system : lando
2019-05-08 22:49:40 +00:00