[wpt-sync] Sync PR 15794 - [LayoutNG] Fix for DCHECK(NeedsLayout) for fixed
Categories
(Core :: CSS Parsing and Computation, enhancement, P4)
Tracking
()
Tracking | Status | |
---|---|---|
firefox68 | --- | fixed |
People
(Reporter: wpt-sync, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 15794 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/15794
Details from upstream follow.
Aleks Totic <atotic@chromium.org> wrote:
[LayoutNG] Fix for DCHECK(NeedsLayout) for fixed
All tests pass, and crashes no longer happen. I believe
that code will not longer crash, but there might be
futher instances of incorrect positioning.Fix #1
LayoutDescendantCandidates did not sweep newly discovered
candidates. This was done
manually once inside NGOutOfFlowLayoutPart::Run, and
sweep was not performed for LayoutDescendantCandidates
found in Legacy. Fix is to make LayoutDescendantCandidates
perform sweep instead.Fix #2
fix #1 exposed a bug where duplicate fragments were generated
for a single layout object. This happened when NG was generating
fragments not inside ContainingBlock. Fix one instance of this
inside NGOutOfFlowLayoutPart::IsContainingBlockForDescendant
by making sure that OOF with inline containers are only positioned
inside its ContainingBlock()Fix #3
NGOutOfFlowLayoutPart::LayoutDescendant offset adjustment.
This one I am unsure about because I do not know exactly how
split inlines generate anonymous boxes.
if (container != container_builder_->GetLayoutObject() &&
container->Parent()->IsAnonymousBlock())
It extends the previus special case of css_container
being anonymous. It seems that it should be somehow generalized
to if "anything in ancestor chain to ContainerBlock() is anonymous?"Bug: 935805
Change-Id: I9f7ebbc7223f40fbbf6ba3739d9385bfd59e3641
Reviewed-on: https://chromium-review.googlesource.com/1517093
WPT-Export-Revision: 95b1bcec6c5fec3604fae1e265ed3e78277efec6
Assignee | ||
Comment 1•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 2•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 3•6 years ago
|
||
Assignee | ||
Comment 4•6 years ago
|
||
Assignee | ||
Comment 5•6 years ago
|
||
Comment 8•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/0cde4bc00951
https://hg.mozilla.org/mozilla-central/rev/feaaf527c014
https://hg.mozilla.org/mozilla-central/rev/19bb7a1ca6b5
https://hg.mozilla.org/mozilla-central/rev/c59c26b4a95f
Description
•