-
Morten Stenshorne authored
This is a reland of 4e246b2e Original change's description: > [LayoutNG] Don't let legacy layout re-enter layout of a scrollable block node. > > We'd end up re-entering NGBlockNode::CopyFragmentDataToLayoutBox() for > the same node. > > After layout of a fragment, NGBlockNode::CopyFragmentDataToLayoutBox() would > call LayoutBlock::UpdateAfterLayout(), which would call > scrollbar was toggled, it'd go ahead and call UpdateLayout() on the object, > which would take us back into the NG layout machinery, on the same node, via > Finally we'd re-enter NGBlockNode::CopyFragmentDataToLayoutBox(), causing misc > kinds of misery, such as not being able to paint the block at all. For > multicol, there'd even be a DCHECK failure "Variable fragment inline size not > supported", because the code got confused as to whether a fragment was a first > fragment or not. > > LayoutBox: :UpdateAfterLayout(), which would call > PaintLayer: :UpdateSizeAndScrollingAfterLayout(), which would call > PaintLayerScrollableArea: :UpdateAfterLayout(). If this code detected that a > LayoutNGBlockFlow: :UpdateBlockLayout(), further to NGBlockNode::Layout(). > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 > Change-Id: I832372223e324682bb4e38b3177dce30093df2e1 > Reviewed-on: https://chromium-review.googlesource.com/824265 > Commit-Queue: Morten Stenshorne <mstensho@chromium.org> > Reviewed-by: Emil A Eklund <eae@chromium.org> > Cr-Commit-Position: refs/heads/master@{#524039} TBR=eae@chromium.org Change-Id: I5aceb5c45c8fa60b20fa481318f05c609ca2b46b Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Reviewed-on: https://chromium-review.googlesource.com/826985Reviewed-by:
Morten Stenshorne <mstensho@chromium.org> Commit-Queue: Morten Stenshorne <mstensho@chromium.org> Cr-Commit-Position: refs/heads/master@{#524074}
16fd012f