Assertion failure: sideToMeasureFrom == eSideBottom (We already checked that we're dealing with a vertical axis, and we're not using the top side, so that only leaves the bottom...), at src/layout/generic/nsFlexContainerFrame.cpp:1987
Categories
(Core :: Layout, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr52 | --- | wontfix |
firefox-esr60 | --- | wontfix |
firefox-esr68 | --- | wontfix |
firefox56 | --- | wontfix |
firefox57 | --- | wontfix |
firefox58 | --- | wontfix |
firefox59 | --- | wontfix |
firefox60 | --- | wontfix |
firefox63 | --- | wontfix |
firefox64 | --- | wontfix |
firefox65 | --- | wontfix |
firefox67 | --- | wontfix |
firefox68 | --- | wontfix |
firefox69 | --- | wontfix |
firefox70 | --- | wontfix |
firefox71 | --- | fixed |
People
(Reporter: jkratzer, Assigned: bradwerth)
References
(Blocks 2 open bugs, Regression)
Details
(Keywords: assertion, regression, testcase, Whiteboard: [fuzzblocker])
Attachments
(4 files, 3 obsolete files)
Reporter | ||
Comment 1•7 years ago
|
||
Reporter | ||
Updated•7 years ago
|
Updated•7 years ago
|
Updated•7 years ago
|
Comment 2•7 years ago
|
||
Assignee | ||
Updated•7 years ago
|
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Comment 5•7 years ago
|
||
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Comment 9•7 years ago
|
||
Comment 10•7 years ago
|
||
Comment 12•7 years ago
|
||
Comment 13•7 years ago
|
||
Updated•7 years ago
|
Updated•6 years ago
|
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 14•5 years ago
|
||
Assignee | ||
Comment 15•5 years ago
|
||
Depends on D45424
Assignee | ||
Comment 16•5 years ago
|
||
Assignee | ||
Comment 17•5 years ago
|
||
Daniel, the test added here now checks the anti-parallel case, and I think it may reveal a failure of the flex algorithm. In the new test added by https://phabricator.services.mozilla.com/D45425, the "container reverse" flex container has a yellow single-line item aligned to the last baseline. What that currently does is align it to the baseline nearest the container start side, but the reference case (which is possibly constructed incorrectly) shows that it should align to the end side baseline.
I've read the spec (https://drafts.csswg.org/css-flexbox-1/#change-2016-flex-direction-baseline) and I can't understand its conclusions on this point since it refers to baseline selection amongst items, not within a multi-line item. One additional data point: removing the sideways-lr writing mode shows that our behavior does not match Chrome in this regard, before or after these patches.
I could remove this flex item to land the test, but it wouldn't be as interesting. Is there a larger issue here that should be a blocker for this test as written?
Assignee | ||
Comment 18•5 years ago
|
||
Comment 19•5 years ago
|
||
(In reply to Brad Werth [:bradwerth] from comment #17)
I think the reference case is wrong there, and it's also a bit hard to reason about the testcase since (at least on my system) the flex container is only about as wide as two lines of text. If you make the flex container a bit wider, as I just suggested in phab, then it's easier to visualize & reason about what's happening.
Here's what I see:
(1) the yellow and orange items are aligning their last-baselines with each other
(2) collectively, those two items are snapped to the right side (the cross-end side) of the flex container.
This results in the yellow item looking like it's offset by 1 line from the right edge of the flex container.
That is what the code currently intend to do, I believe, and I think it's correct, modulo my "However" below (which is outside the scope of this bug).
However, in fact it seems (2) may be incorrect per spec there.... at one point, I'm pretty sure "baseline" was specced as falling back to flex-start
and (either explicitly or implicitly) last-baseline fell back to flex-end
, and that's what we currently aim to do. But now the spec says they fall back to start
and end
which means they're technically not supposed to care about the wrap-reverse
cross-axis reversal here. So I think per spec, the group of last-baseline aligned things are always supposed to be aligned to the flex container's block-end side (the left side in this case). Having said that, that's not what we do or what Chrome does, so there may be some webcompat risk from making that change. In any case, that change would be outside the scope of this bug.
Comment 20•5 years ago
|
||
Here's a screenshot of what I see in the reftest's lower flex container, in a build with both patches, after I've made the flex container a little wider to help visualize the alignment differences.
I believe this is the correct rendering (modulo the flex-end vs. end "however" in my previous comment).
Updated•5 years ago
|
Assignee | ||
Comment 21•5 years ago
|
||
Comment 22•5 years ago
|
||
Comment 23•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/402bb5b5966b
https://hg.mozilla.org/mozilla-central/rev/09570c23c56c
Updated•5 years ago
|
Comment 24•5 years ago
|
||
WPT import in https://github.com/web-platform-tests/wpt/pull/19451.
Updated•5 years ago
|
Updated•5 years ago
|
Updated•3 years ago
|
Description
•