[LayoutNG] Make sure |CreateLine| is called #16865
Merged
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.
|NGLineLayoutOpportunity| stores |line_left| and |line_right|
values, and compute inline size by diffing the two.
Because of this, when |line_left + inline_size| exceeds
|LayoutUnit::Max()| and clamped, |AvailableFloatInlineSize()|
will not match to the originally given size.
This causes NGInlineLayoutAlgorithm to consider there are no
opportunities that can fit the line, and skips the call to
|CreateLine()|. This causes invalid baseline computation,
|AssertNotLaidOut|, paint invalidation failures, and some
other problems.
Due to its impact, this patch adds a CHECK in addition to the
fix of this case.
Change-Id: I571a48a62c2327c8f49feb30a252ac4c05a88f57
Bug: 963794, 963060
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1614004
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#660483}