[LayoutNG] Fix NeedsLayout crashes, part 1 #15835
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is part 1 of comprehensive fix for current top
LayoutNG crasher.
The crash was caused by some OOF Elements not being laid out.
When an Element was OOF, and did not bubble up through NG
layout, and contained fixed elements, those fixed Elements
were not being laid out.
This fixes the following problem:
LayoutDescendantCandidates did not sweep newly discovered
candidates. The sweep was done outside LayoutDescendantCandidates
in NGOutOfFlowLayoutPart::Run. This missed
sweeping LayoutDescendantCandidates found in Legacy.
Fix is to make LayoutDescendantCandidates perform sweep instead.
Added testcase that replicates root cause of 935805
This fix makes additional 2 tests fail. This happens because
NG and Legacy do not place OOF with inline container inside
same block, causing mismatched location.
Bug: 935805
Change-Id: Ib3df4be4f8112320ab417de74c9be56870ac8260
Reviewed-on: https://chromium-review.googlesource.com/1523427
WPT-Export-Revision: 843d660656d16f12d89b07ff5975cac6384398b7