[LayoutNG] Add NGPageLayoutAlgorithm

Desktop / Chromium - Morten Stenshorne [opera.com] - 11 October 2017 14:23 EDT

This one is used when overflow-y is -webkit-paged-x or -webkit-paged-y.

Such declarations will trigger creation of LayoutPagedFlowThread in legacy layout, very similar to LayoutMultiColumnFlowThread for multicol. The main goal here is to produce a correct fragment structure (anonymous fragments for pages), so that we don't get confused when writing them back to legacy layout. I got some test regressions when trying to clean up some code, so I need to land this first. Apart from that, I haven't made a huge effort to make it lay out correctly.

It may be that this algorithm can also be used for printing, but we'll see.

One text autosizing test has started to fail, for some reason, but it seems that it has started to fail similarly to constrained-and-overflow-scroll-ancestor.html, so maybe it's a good sign. :)

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng Change-Id: I5e9b15f353376c4508952dab80cf347e35bb7b27 Reviewed-on: https://chromium-review.googlesource.com/712635

a557a67 [LayoutNG] Add NGPageLayoutAlgorithm.
.../enable-blink-features=LayoutNG | 9 +-
third_party/WebKit/Source/core/layout/BUILD.gn | 2 +
.../Source/core/layout/ng/geometry/ng_box_strut.h | 4 +-
.../WebKit/Source/core/layout/ng/ng_block_node.cc | 52 ++++++----
.../core/layout/ng/ng_page_layout_algorithm.cc | 112 +++++++++++++++++++++
.../core/layout/ng/ng_page_layout_algorithm.h | 36 +++++++
6 files changed, 185 insertions(+), 30 deletions(-)

Upstream: git.chromium.org

  • Share