Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[LayoutNG] Spanner break token and fragmentation improvements. #24539

Merged
merged 1 commit into from Jul 9, 2020

Conversation

chromium-wpt-export-bot
Copy link
Collaborator

@chromium-wpt-export-bot chromium-wpt-export-bot commented Jul 9, 2020

We were creating incorrect outgoing break tokens from column content
that was interrupted by two or more adjacent spanners. The outgoing
break token would point to the second spanner, rather than any column
content that would follow. To fix this, make sure that we don't
interrupt column layout until we have looked past all adjacent spanners,
to find the right place to resume column layout right away.

This gets especially more fun if we're nested inside another
fragmentation context, because then we may not be able to resume column
content layout in the same outer fragmentation. Therefore we need to
keep proper track of all the spanner break tokens.

Introduce a walker to streamline processing of the multicol parts
(spanners and/or column content), and thus make LayoutChildren() easier
to follow. We're now also better at handling parallel flows established
inside spanners.

Bug: 1066617, 829028
Change-Id: I7ad3f8f19f7258e2f8a588034c0002249efdaf20
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2288705
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#786940}

Copy link
Collaborator

@wpt-pr-bot wpt-pr-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The review process for this patch is being conducted in the Chromium project.

We were creating incorrect outgoing break tokens from column content
that was interrupted by two or more adjacent spanners. The outgoing
break token would point to the second spanner, rather than any column
content that would follow. To fix this, make sure that we don't
interrupt column layout until we have looked past all adjacent spanners,
to find the right place to resume column layout right away.

This gets especially more fun if we're nested inside another
fragmentation context, because then we may not be able to resume column
content layout in the same outer fragmentation. Therefore we need to
keep proper track of all the spanner break tokens.

Introduce a walker to streamline processing of the multicol parts
(spanners and/or column content), and thus make LayoutChildren() easier
to follow. We're now also better at handling parallel flows established
inside spanners.

Bug: 1066617, 829028
Change-Id: I7ad3f8f19f7258e2f8a588034c0002249efdaf20
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2288705
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#786940}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants