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] Use the containing LayoutBlock for legacy write-back. #9996

Merged
merged 1 commit into from Mar 14, 2018

Conversation

Projects
None yet
4 participants
@chromium-wpt-export-bot
Copy link
Collaborator

chromium-wpt-export-bot commented Mar 13, 2018

The LayoutBox associated with a block node will normally be the
containing block (on the legacy side) of its children (on the NG side),
but this isn't an invariant. Multicol and list item markers are
two examples.

Remove the kembo DCHECK, since it seems impossible to come up with a
complete list of exceptions to the rule (that the node's box should be
the containing block of the child nodes' boxes). Instead always get the
right containing block from legacy layout. Don't use that of the node.

With the DCHECK removed, a lot of tests stop crashing, and some just
start passing instead. One known effect of this change is that floats
that are direct children of multicol containers are painted correctly.
They used to be added to the float list of the multicol container,
rather than that of the flow thread, which caused two problems: paint
order (regular blocks got painted on top of them), and that they
appeared unfragmented (they just overflowed the multicol container
instead). Added a test for that.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I1ee926c39fbedfd52d87e9cf790996909914efb2
Reviewed-on: https://chromium-review.googlesource.com/960027
Commit-Queue: Morten Stenshorne mstensho@chromium.org
Reviewed-by: Emil A Eklund eae@chromium.org
Reviewed-by: Ian Kilpatrick ikilpatrick@chromium.org
Reviewed-by: Aleks Totic atotic@chromium.org
Cr-Commit-Position: refs/heads/master@{#543065}

@wpt-pr-bot
Copy link
Collaborator

wpt-pr-bot left a comment

Already reviewed downstream.

@w3c-bots

This comment has been minimized.

Copy link

w3c-bots commented Mar 13, 2018

Build PASSED

Started: 2018-03-14 13:43:25
Finished: 2018-03-14 13:47:30

View more information about this build on:

@chromium-wpt-export-bot chromium-wpt-export-bot force-pushed the chromium-export-cl-960027 branch from 505e476 to 83eca8d Mar 14, 2018

[LayoutNG] Use the containing LayoutBlock for legacy write-back.
The LayoutBox associated with a block node will *normally* be the
containing block (on the legacy side) of its children (on the NG side),
but this isn't an invariant. Multicol and list item markers are
two examples.

Remove the kembo DCHECK, since it seems impossible to come up with a
complete list of exceptions to the rule (that the node's box should be
the containing block of the child nodes' boxes). Instead always get the
right containing block from legacy layout. Don't use that of the node.

With the DCHECK removed, a lot of tests stop crashing, and some just
start passing instead. One known effect of this change is that floats
that are direct children of multicol containers are painted correctly.
They used to be added to the float list of the multicol container,
rather than that of the flow thread, which caused two problems: paint
order (regular blocks got painted on top of them), and that they
appeared unfragmented (they just overflowed the multicol container
instead). Added a test for that.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I1ee926c39fbedfd52d87e9cf790996909914efb2
Reviewed-on: https://chromium-review.googlesource.com/960027
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543065}

@chromium-wpt-export-bot chromium-wpt-export-bot force-pushed the chromium-export-cl-960027 branch from 83eca8d to bde8abe Mar 14, 2018

@chromium-wpt-export-bot chromium-wpt-export-bot merged commit 258c8ad into master Mar 14, 2018

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details

@chromium-wpt-export-bot chromium-wpt-export-bot deleted the chromium-export-cl-960027 branch Mar 14, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.