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

16548 Коммитов

Автор SHA1 Сообщение Дата
Brad Werth be668ed4e1 Bug 1523844 Part 1: Rename ResolutionChangeOrigin::MainThreadRestore in anticipation of adding a related enum. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D41625

--HG--
extra : moz-landing-system : lando
2019-08-12 22:21:51 +00:00
Alexis Beingessner 22dbda5b64 Bug 1571738 - Fallback as late as possible for svg/color fonts. r=jrmuizel
Also includes some documentation gardening for TextDrawTarget on what we don't support.

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

--HG--
extra : moz-landing-system : lando
2019-08-12 15:40:26 +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
Emilio Cobos Álvarez 6068035edc Bug 1572805 - Use cbindgen for text-emphasis-style. r=boris
I sent https://github.com/eqrion/cbindgen/pull/377 since I got sick of
copy-pasting the private default constructor stuff :)

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

--HG--
extra : moz-landing-system : lando
2019-08-10 18:11:31 +00:00
Daniel Varga 3430859a68 Backed out 2 changesets (bug 1572805) for build-rusttests failure. On a CLOSED TREE
Backed out changeset 849ca4b3f9de (bug 1572805)
Backed out changeset 81b56d76505a (bug 1572805)
2019-08-10 21:07:03 +03:00
Emilio Cobos Álvarez ccd8c3bedc Bug 1572805 - Use cbindgen for text-emphasis-style. r=boris
I sent https://github.com/eqrion/cbindgen/pull/377 since I got sick of
copy-pasting the private default constructor stuff :)

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

--HG--
extra : moz-landing-system : lando
2019-08-10 16:21:15 +00:00
Brendan Dahl b474db77c6 Bug 1551344 - Part 1: Remove XULDocument code. r=smaug,Jamie
All .xul files have been loading as HTMLDocuments for a few weeks now, so
it should be safe to remove the XULDocument implementation.

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

--HG--
extra : moz-landing-system : lando
2019-08-09 19:57:50 +00:00
Ting-Yu Lin e2ec6d3c2d Bug 1572502 - Delete the in-tree FrameIdList.h and FrameTypeList.h. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D41254

--HG--
extra : moz-landing-system : lando
2019-08-09 01:30:56 +00:00
Andrew McCreight 78c8b1ffd6 Bug 1571855 - Disable tautology warning in nsIFrame.h in Clang. r=heycam
ClassID::nsBox_id is zero, so that case is trivial. Disable the
warning in Clang, like it is in GCC. The Clang pragma can't be behind
an #elseif because Clang appears to define __GNUC__, too.

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

--HG--
extra : moz-landing-system : lando
2019-08-08 22:20:01 +00:00
Razvan Maries a025d50160 Merge mozilla-central to autoland. a=merge on a CLOSED TREE
--HG--
extra : rebase_source : b9360eb82974f2add7877b6c9197a1297e0c74af
2019-08-09 02:57:47 +03:00
Razvan Maries cbb99dc4bf Backed out changeset 4c31868ffe1c (bug 1561326) for perma fails on browser_startup_syncIPC.js. a=backout 2019-08-08 22:44:38 +03:00
Brian Grinstead 9dac9754e5 Bug 1561326 - Support CSS min/max width/height for top level windows with root HTML element. r=emilio
Helps support migrating from XUL DOM to an HTML DOM structure. I attempted
to remove the early return when the root element is not a XUL element, but
it appears setting the transparency on a non XUL root is still broken
(test widget/tests/test_mouse_scroll.xul started failing on windows).

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

--HG--
extra : moz-landing-system : lando
2019-08-07 18:20:35 +00:00
Kristen Wright 5855268c8e Bug 1571544 - Convert the two layout.framevisibility.amountscrollbeforeupdate* prefs to static prefs. r=njn
Converts layout.framevisibility.amountscrollbeforeupdatevertical and layout.framevisibility.amountscrollbeforeupdatehorizontal to static prefs.

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

--HG--
extra : moz-landing-system : lando
2019-08-05 23:30:33 +00:00
L. David Baron 99fc596f62 Bug 1547759 - Ensure that we call ApplyRelativePositioning after the frame's new size has been set so it works correctly for RTL. r=jfkthame,dholbert
Differential Revision: https://phabricator.services.mozilla.com/D40568

--HG--
extra : moz-landing-system : lando
2019-08-08 20:04:40 +00:00
L. David Baron b4137c33ae Bug 1547759 - Add a flag to allow FinishReflowChild to handle relative positioning, and convert the caller for which this makes sense. r=jfkthame
Note that this changes the writing mode used for the SetSize call from
the parent's to the child's.  (This controls what position is kept
constant.)  I don't think this changes behavior at all, since there is
(for this caller) a SetRect call just below.

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

--HG--
extra : moz-landing-system : lando
2019-08-05 11:56:05 +00:00
L. David Baron c923b062b3 Bug 1547759 - Pass ReflowInput to FinishReflowChild in almost all cases. r=jfkthame
At first glance, it might look like this would change behavior, since
FinishReflowChild passes aReflowInput to DidReflow, which in turn
notifies aReflowInput's mPercentBSizeObserver.  However, if you examine
how the mPercentBSizeObserver is propagated, it can only be set for the
anonymous block wrapping the children of table cells, the children of
table cells, or additionally a child of a table wrapper frame that has
it set (i.e., a table or its caption, when logically a child of a table
cell).  Since all of the frames for which this is being changed are
either internal table elements that are inside of the table, or are
things that can never be a descendant of a table at all, there should be
no change in behavior.

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

--HG--
extra : moz-landing-system : lando
2019-08-05 11:52:19 +00:00
L. David Baron b4b211d733 Bug 1547759 - Print frame's normal position (when present) in frame dump debugging output. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D40563

--HG--
extra : moz-landing-system : lando
2019-08-05 11:45:55 +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
L. David Baron 85d61d1a95 Bug 1571249 - Remove the IsTableCell() function. r=TYLin
It was made pointless by the previous patch.

This replaces callers that had a frame type for another reason with the
frame type check that IsTableCell did, and callers that needed to call
Type() with an IsTableCellFrame call.

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

--HG--
extra : moz-landing-system : lando
2019-08-08 19:48:12 +00:00
L. David Baron 5afb94be01 Bug 1571249 - Remove BCTableCell as a distinct frame type. r=TYLin
There are two existing callers of IsTableCellFrame that both appear to want to
include BCTableCell frames, but don't.  A patch in bug 1547759 will add a
third that wants the same.

The existing users of frame types all have to work around it being a distinct
type, and none appear to want the distinction.  This removes that complexity.

If any callers want to make the distinction, they could implement QueryFrame
for BCTableCellFrame and use it.  (It's not implemented now, though!)

In a little more detail, prior to this patch (in my debug build, at least):
  * nsQueryFrame::ClassID::nsMathMLmtdFrame_id was 46
  * nsQueryFrame::ClassID::nsTableCellFrame_id was 47
  * nsQueryFrame::ClassID::nsBCTableCellFrame_id was 65
and entries 46 and 47 in sLayoutFrameTypes were
mozilla::LayoutFrameType::TableCell while entry 65 was
mozilla::LayoutFrameType::BCTableCell.

With this patch:
  * nsQueryFrame::ClassID::nsBCTableCellFrame_id is 40
  * nsQueryFrame::ClassID::nsMathMLmtdFrame_id is 41
  * nsQueryFrame::ClassID::nsTableCellFrame_id is 42
and entries 40 through 42 in sLayoutFrameTypes are
mozilla::LayoutFrameType::TableCell.

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

--HG--
extra : moz-landing-system : lando
2019-08-08 19:48:10 +00:00
Ting-Yu Lin 1e717d14b4 Bug 1569252 Part 2 - Let mHasColumnSpanSiblings propagate to all the continuations. r=dbaron
We want mHasColumnSpanSiblings to propagate to all the
continuations (both fixed ones or fluid ones) in nsFrame::Init() so that
we don't need to traverse all the way to FirstInFlow() for the bit in
nsBlockFrame::ComputeFinalBSize().

For the last ColumnSet or the last non-column-span wrapper, we'll need
to unset the bit for them manually after constructing them.

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

--HG--
extra : moz-landing-system : lando
2019-08-07 20:20:25 +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
Emilio Cobos Álvarez af948d7634 Bug 1572114 - Don't bother blocking onload for already-complete shape images. r=bradwerth
That way we don't need to re-request a reflow. This code can run from reflow
itself, so requesting a reflow from here can break invariants.

There's the question of whether this code should be running at all for
continuations, but this patch fixes a bug regardless of whether we do that or
not.

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

--HG--
extra : moz-landing-system : lando
2019-08-07 17:17:05 +00:00
Charlie Marlow f8d1049107 Bug 1411922: Part 1: Add rendering support for text-decoration-skip-ink r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D39377

--HG--
extra : moz-landing-system : lando
2019-08-07 17:41:13 +00:00
Emilio Cobos Álvarez c35938887d Bug 1571460 - Set prev-in-flow before calling nsFrame::Init. r=TYLin
Parts of nsFrame::Init or code called by it should be able to rely on the
invariant that, if the frame has the NS_FRAME_OUT_OF_FLOW bit, the first-in-flow
frame has a placeholder property.

Alternatively to this patch, the NS_FRAME_OUT_OF_FLOW frame bit could be
propagated later, as it used to be.

Differential Revision: https://phabricator.services.mozilla.com//D40815
2019-08-07 16:55:34 +02:00
Cosmin Sabou 76e15b4674 Backed out changeset 3f4421e34ab4 (bug 1571460) for assertion failures on nsTextFrame.cpp. CLOSED TREE 2019-08-07 14:57:58 +03:00
Emilio Cobos Álvarez aab2a5c0a2 Bug 1571460 - Set prev-in-flow before calling nsFrame::Init. r=TYLin
Parts of nsFrame::Init or code called by it should be able to rely on the
invariant that, if the frame has the NS_FRAME_OUT_OF_FLOW bit, the first-in-flow
frame has a placeholder property.

Alternatively to this patch, the NS_FRAME_OUT_OF_FLOW frame bit could be
propagated later, as it used to be.

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

--HG--
extra : moz-landing-system : lando
2019-08-07 10:44:54 +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
Boris Chiou e158ad1169 Bug 1339672 - Support multiple track sizes for grid-auto-{columns|rows}. r=emilio,mats
Support `<track-size>+` on the implicit track sizing properties,
grid-auto-columns and grid-auto-rows.

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

--HG--
extra : moz-landing-system : lando
2019-08-06 18:32:16 +00:00
Andreea Pavel bc9193db19 Backed out changeset e9cc17a8f83f (bug 1571855) for build bustages on a CLOSED TREE 2019-08-07 00:23:58 +03:00
Andrew McCreight 92d2ef8571 Bug 1571855 - Disable tautology warning in nsIFrame.h in Clang. r=heycam
ClassID::nsBox_id is zero, so that case is trivial. Disable the
warning in Clang, like it is in GCC. The Clang pragma can't be behind
an #elseif because Clang appears to define __GNUC__, too.

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

--HG--
extra : moz-landing-system : lando
2019-08-06 20:45:35 +00:00
Masayuki Nakano f3fb0d1af8 Bug 1569613 - Add surrogate pair handling API to `nsTextFragment` r=hsivonen
We check surrogate pair at specific index in `nsTextFragement` in a lot of
places.  This requires boundary check of the index so that it can cause
security issue and crash reason with simple mistake, and also it steals
your time to understand the code what it does especially when it's a
part of an `if` condition.

Therefore, this patch adds new API to `nsTextFragment` and makes the all
surrogate pair handlers of `nsTextFragument` use new API.

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

--HG--
extra : moz-landing-system : lando
2019-08-06 05:43:21 +00:00
Emilio Cobos Álvarez bbb4b8dac6 Bug 1519958 - followup: Fix bustage in 32-bit builds and rust unit tests. r=me
CLOSED TREE
2019-08-05 22:53:35 +02:00
Emilio Cobos Álvarez 30fc8c8c4d Bug 1519958 - Improve stack size of grid templates and re-enable style struct size assertions disabled in the previous patch. r=boris
This re-enables the assertion which was disabled on the previous patch by doing
a bit of boxing around.

Differential Revision: https://phabricator.services.mozilla.com/D36599
2019-08-05 22:13:33 +02:00
Emilio Cobos Álvarez 1f3d6c04f2 Bug 1519958 - Refactor grid types to preserve repeat() at computed value time and use cbindgen. r=mats,boris
I'm _really_ sorry for the size of the patch. I tried to do this in two steps
but it was a lot of work and pretty ugly.

This patch makes us use cbindgen for grid-template-{rows,columns}, in order to:

 * Make us preserve repeat() at computed-value time. This is per spec since
   interpolation needs to know about repeat(). Except for subgrid, which did the
   repeat expansion at parse-time and was a bit more annoying (plus it doesn't
   really animate yet so we don't need it to comply with the spec).

 * Tweaks the WPT tests for interpolation to adopt the resolution at:
   https://github.com/w3c/csswg-drafts/issues/3503.

Trade-off here, as this patch stands, is that this change makes us use less
long-living memory, since we expand repeat() during layout, but at the cost of a
bit of CPU time during layout (conditional on the property applying though,
which wasn't the case before). It should be very easy to store a cached version
of the template, should this be too hot (I expect it isn't), or to change the
representation in other ways to optimize grid layout code if it's worth it.

Another trade-off: I've used SmallPointerArray to handle line-name merging,
pointing to the individual arrays in the style data, rather than actually
heap-allocating the merged lists. This would also be pretty easy to change
should we measure and see that it's not worth it.

This patch also opens the gate to potentially improving memory usage in some
other ways, by reference-counting line-name lists for example, though I don't
have data that suggests it is worth it.

In general, this patch makes much easier to tweak the internal representation of
the grid style data structures. Overall, I think it's a win, the amount of magic
going on in that mako code was a bit huge; it took a bit to wrap my head around
it.

This patch comments out the style struct size assertions. They will be
uncommented in a follow-up patch which contains some improvements for this type,
which are worth getting reviewed separately.

Also, this patch doesn't remove as much code as I would've hoped for because of
I tried not to change most of the dom/grid code for inspector, but I think a
fair bit of the nsGridContainerFrame.cpp code that collects information for it
can be simplified / de-copy-pasted to some extent. But that was a pre-existing
problem and this patch is already quite massive.

Differential Revision: https://phabricator.services.mozilla.com/D36598
2019-08-05 22:13:21 +02:00
Ting-Yu Lin 570f61b02d Bug 1571118 - Keep NS_FRAME_FIRST_REFLOW bit in nsBlockFrame::Reflow() until nsFrame::DidReflow(). r=dholbert
This patch lets nsBlockFrame keep its NS_FRAME_FIRST_REFLOW bit a bit
longer, for the full duration of its first reflow, so that in the future
we may add more code to inspect it if needed before nsFrame::DidReflow()
clears it.

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

--HG--
extra : moz-landing-system : lando
2019-08-05 17:54:34 +00:00
Ting-Yu Lin 83d9aa16f4 Bug 1571135 - Remove the preference that controls breaking floats inside columns. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D40587

--HG--
extra : moz-landing-system : lando
2019-08-05 17:39:19 +00:00
L. David Baron 20201d0cc7 Bug 1404868 - Always reflow float placeholders when they move to a different block fragment. r=TYLin
Differential Revision: https://phabricator.services.mozilla.com/D40276

--HG--
extra : moz-landing-system : lando
2019-08-02 21:05:20 +00:00
L. David Baron 956e709378 Bug 1404868 - Record in the reflow input whether we're in a different page/column than before. r=TYLin
This depends on the line state stored in the previous patch, and will be
used in the following patch.

I'm passing this information through the reflow input here, rather than
doing an extra pass over the frame tree in the following patch, because
I believe it's substantially better for memory locality during reflow.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 23:51:21 +00:00
L. David Baron cbd6753ba8 Bug 1404868 - Record when lines are in a different fragment than the one in which they were previously reflowed. r=TYLin
This will be used in the following patch.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 20:44:53 +00:00
Ting-Yu Lin 26c2894a62 Bug 1570726 Part 2 - Don't call UpdateVisibleDescendantsState() when creating a continuation. r=hiro
After moving the logic that carries NS_FRAME_OUT_OF_FLOW bit from the
prev-in-flow into nsFrame::Init() in Part 1,
testing/web-platform/tests/css/css-multicol/float-and-block.html starts
to crash.

In the test, it has a float element that fragments into two columns.
When creating a continuation for the float frame, we have a callstack
looks like nsFrame::Init() -> UpdateVisibleDescendantsState() ->
GetInFlowParent(). Because NS_FRAME_OUT_OF_FLOW is set in
nsFrame::Init(), GetInFlowParent() tries to get
PlaceholderFrameProperty() on its FirstContinuation(), but the first
continuation is not established until the end of
nsCSSFrameConstructor::CreateContinuingFrame().

This being said, we don't need to UpdateVisibleDescendantsState() when
creating continuations because UpdateVisibleDescendantsState() needs to
traverse a stable frame tree, and the animation code only looks at the
primary frames.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 22:16:11 +00:00
Ting-Yu Lin 5afcc71944 Bug 1570726 Part 1 - Move frame state bits carrying from nsCSSFrameConstructor::CreateContinuingFrame() into nsFrame::Init(). r=dholbert
These frame state bits belong to the generic group, and there is
existing logic in nsFrame::Init() for carrying frame state bits. It's
better to consolidate them in one place.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 17:27:56 +00:00
Botond Ballo 9bd8db2016 Bug 1568826 - Restrict the fix for bug 1549625 to cases where we have a zoomable viewport. r=tnikkel
The fix for bug 1549625 is only necessary in cases where the layout and
visual viewports can diverge (currently mobile, and later desktop zooming),
but it has caused regressions in desktop scenarios that don't involve zooming.

While we can get a proper fix in place (tracked in bug 1543485), restricting
the existing fix to zoomable configurations mitigates the regressions.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 20:31:57 +00:00
Masayuki Nakano 765e91b497 Bug 1569902 - part 1: Stop using attribute to consider whether a `<br>` element is an editor bogus node or not r=m_kato,smaug
Editor creates a `<br>` element when it's root element is empty.
Then, it's stored by `TextEditRules::mBogusNode` and used for checking
whether the editor is empty quickly.  However, this `<br>` element has
`mozeditorbogusnode` attribute whose value is `true`.  However, adding or
removing the attribute is not cheap and web apps can refer such illegal
attribute.

Therefore, this patch makes `HTMLBRElement` take a specific flag whether
it's a bogus node or not.  However, this means that this hacky thing will be
exposed outside editor module.  For making what is the bogus node clearer,
this patch calls the such `<br>` elements as "padding `<br>` element for
empty editor".  So, this patch also includes a lot of renaming methods and
variables, and modifying related comments.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 05:44:40 +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
L. David Baron 0b4a5a5bc8 Bug 1420528 - As with constrained block-size, reflow lines with floats when block-size was *previously* constrained. r=TYLin
On its own (without the previous patch), this fixes bug 1406291.

Combined with the previous patch, this patch fixes this bug (bug
1420528) when column-span is not enabled (today's configuration), and
also fixes 1411799.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 06:57:07 +00:00
L. David Baron 10aa1b483d Bug 1420528 - When a frame that was incomplete doesn't fit, make sure we reflow it again. r=TYLin
This patch fixes bug 1420528 when column-span is enabled, and it also
fixes bug 1468654.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 00:48:05 +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
Ting-Yu Lin 3fda302369 Bug 1506293 Part 2 - Fix the block-size distribution across column-span split. r=dbaron
In frame construction, a block can be split by column-spans into several
fragments and each of the fragments is chained together by non-fluid
continuations. Later in reflow, each fragment can create its own fluid
continuations due to reasons such as the constraint of its available
block-size.

The main idea of this patch is that we calculate the block's final
block-size by shrinkwrapping the children for every fragment except for
those fluid continuations after the final column-span. To do that, we
need to correctly tag each non-column-span-wrappers
nsIFrame::HasColumnSpanSiblings() except the last one.

We also need to modify nsSplittableFrame::ConsumedBSize() so that it
includes the block-size for both fluid and non-fluid continuations.

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

--HG--
extra : moz-landing-system : lando
2019-07-30 18:03:25 +00:00