Implementation: Part 1: overflow tests Part 2: basic overflow Part 3: make overflow work with absolute position
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/322f674790e53f25053adf10e2afd0109806dd06 commit 322f674790e53f25053adf10e2afd0109806dd06 Author: Aleks Totic <atotic@chromium.org> Date: Wed Jun 07 14:39:38 2017 [layoutng] Overflow implementation. Does not handle absolute positioned overflow yet. Some TestExpectations lines have cosmetic changes: [ Failure Crash ] becomes [ Crash Failure ] I've done this because TestExpectations are generated automatically, and I did not want to hand edit. Bug: 728378 Change-Id: If8697a7dda9c7bdd1a4f47fb9bfaf18833489370 Reviewed-on: https://chromium-review.googlesource.com/520166 Commit-Queue: Aleks Totic <atotic@chromium.org> Reviewed-by: Christian Biesinger <cbiesinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#477638} [modify] https://crrev.com/322f674790e53f25053adf10e2afd0109806dd06/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/322f674790e53f25053adf10e2afd0109806dd06/third_party/WebKit/LayoutTests/VirtualTestSuites [add] https://crrev.com/322f674790e53f25053adf10e2afd0109806dd06/third_party/WebKit/LayoutTests/virtual/layout_ng/overflow/README.txt [modify] https://crrev.com/322f674790e53f25053adf10e2afd0109806dd06/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc [modify] https://crrev.com/322f674790e53f25053adf10e2afd0109806dd06/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8c786107328126ee099cd5043a3ffdae90810c92 commit 8c786107328126ee099cd5043a3ffdae90810c92 Author: Aleks Totic <atotic@chromium.org> Date: Fri Jun 16 22:27:55 2017 Implement GetScrollbarSizes Bug: 728378 Change-Id: I7ab137606217f2f5a7a3093e5872a980f55b3edf Reviewed-on: https://chromium-review.googlesource.com/538992 Commit-Queue: Aleks Totic <atotic@chromium.org> Reviewed-by: Christian Biesinger <cbiesinger@chromium.org> Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org> Cr-Commit-Position: refs/heads/master@{#480199} [modify] https://crrev.com/8c786107328126ee099cd5043a3ffdae90810c92/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc [modify] https://crrev.com/8c786107328126ee099cd5043a3ffdae90810c92/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/aec4b616ab0ec19a7aa7e1af100ceef75dde5285 commit aec4b616ab0ec19a7aa7e1af100ceef75dde5285 Author: Aleks Totic <atotic@chromium.org> Date: Wed Jun 21 17:01:07 2017 [LayoutNG] Take scrollbar into account when computing sizes Bug: 728378 Change-Id: Ic3eb2ee97432d8261a75dd70b34fb064babb0966 Reviewed-on: https://chromium-review.googlesource.com/540776 Commit-Queue: Aleks Totic <atotic@chromium.org> Reviewed-by: Christian Biesinger <cbiesinger@chromium.org> Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org> Cr-Commit-Position: refs/heads/master@{#481224} [modify] https://crrev.com/aec4b616ab0ec19a7aa7e1af100ceef75dde5285/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG [modify] https://crrev.com/aec4b616ab0ec19a7aa7e1af100ceef75dde5285/third_party/WebKit/LayoutTests/TestExpectations [add] https://crrev.com/aec4b616ab0ec19a7aa7e1af100ceef75dde5285/third_party/WebKit/LayoutTests/overflow/overflow-position-004.html [modify] https://crrev.com/aec4b616ab0ec19a7aa7e1af100ceef75dde5285/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc [modify] https://crrev.com/aec4b616ab0ec19a7aa7e1af100ceef75dde5285/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h [modify] https://crrev.com/aec4b616ab0ec19a7aa7e1af100ceef75dde5285/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc [modify] https://crrev.com/aec4b616ab0ec19a7aa7e1af100ceef75dde5285/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/64f1197e6bffc374c1678757eae8b212340a590b commit 64f1197e6bffc374c1678757eae8b212340a590b Author: Aleks Totic <atotic@chromium.org> Date: Wed Mar 21 05:53:02 2018 [LayoutNG] Add LayoutOverflow for NG Children I had to update bad expectations for several files. New expectations match Legacy. Bug: 728378 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng Change-Id: I64c10c269dd38f55a707cb7a0135f9f3a1207b97 Reviewed-on: https://chromium-review.googlesource.com/971465 Reviewed-by: Koji Ishii <kojii@chromium.org> Commit-Queue: Aleks Totic <atotic@chromium.org> Cr-Commit-Position: refs/heads/master@{#544643} [modify] https://crrev.com/64f1197e6bffc374c1678757eae8b212340a590b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG [modify] https://crrev.com/64f1197e6bffc374c1678757eae8b212340a590b/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/64f1197e6bffc374c1678757eae8b212340a590b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/color_and_background/background_attachment-expected.txt [modify] https://crrev.com/64f1197e6bffc374c1678757eae8b212340a590b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/color_and_background/background_repeat-expected.txt [modify] https://crrev.com/64f1197e6bffc374c1678757eae8b212340a590b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css2.1/t1202-counters-08-b-expected.txt [modify] https://crrev.com/64f1197e6bffc374c1678757eae8b212340a590b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/line-thickness-underline-strikethrough-overline-expected.txt [modify] https://crrev.com/64f1197e6bffc374c1678757eae8b212340a590b/third_party/WebKit/Source/core/layout/ng/layout_ng_mixin.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b3a9a9c6ec5a391cb5a9a64e22f3a7d0a8f3f51c commit b3a9a9c6ec5a391cb5a9a64e22f3a7d0a8f3f51c Author: Aleks Totic <atotic@chromium.org> Date: Sat Apr 07 05:11:29 2018 [LayoutNG] Fix SelfVisualOverflowRect with inline children Bug: shadows would not paint on compositor boundary because SelfVisualOverflowRect was incorrect. The fix has 2 parts: NGPhysicalTextFragment uses BoxDecorationOutsets when computing SelfVisualRect PaintInvalidator::ComputeVisualRectInBacking needs VisualRectWithContents, not SelfVisualRect. I've also added a DumpFlag to PhysicalFragment for printing overflow, but do not print them by default. Bug: 728378 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_layout_ng Change-Id: I3f3b8f1bb49d6e55ce71aafc4c65f3f25437a3bc Reviewed-on: https://chromium-review.googlesource.com/988259 Commit-Queue: Aleks Totic <atotic@chromium.org> Reviewed-by: Koji Ishii <kojii@chromium.org> Cr-Commit-Position: refs/heads/master@{#549040} [modify] https://crrev.com/b3a9a9c6ec5a391cb5a9a64e22f3a7d0a8f3f51c/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG [modify] https://crrev.com/b3a9a9c6ec5a391cb5a9a64e22f3a7d0a8f3f51c/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc [modify] https://crrev.com/b3a9a9c6ec5a391cb5a9a64e22f3a7d0a8f3f51c/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc [modify] https://crrev.com/b3a9a9c6ec5a391cb5a9a64e22f3a7d0a8f3f51c/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h [modify] https://crrev.com/b3a9a9c6ec5a391cb5a9a64e22f3a7d0a8f3f51c/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c489d68f077ebf2303930c1c412736a45fc32113 commit c489d68f077ebf2303930c1c412736a45fc32113 Author: Aleks Totic <atotic@chromium.org> Date: Fri Apr 13 19:51:46 2018 [LayoutNG] Add inline outlines to containing block's SelfVisualRect. Inline outlines are painted by containing block. Containing block's SelfVisualRect did not include outline rects. The fix: - Refactors inline outline computation into NGOutlineUtils, so it can be shared between paint and layout. - Computes inline outline rects in NGPhysicalBoxFragment constructor. - Propagates outline to Legacy in LayoutNGMixin::AddOverflowFromChildren - Because overflow is flipped blocks, corrects some calls to AddOverflow Lots of work to correct a single failing test. Bug: 728378 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: I252515113c8fb4e81dd59f377f4be00471596000 Reviewed-on: https://chromium-review.googlesource.com/1011828 Commit-Queue: Aleks Totic <atotic@chromium.org> Reviewed-by: Koji Ishii <kojii@chromium.org> Cr-Commit-Position: refs/heads/master@{#550727} [modify] https://crrev.com/c489d68f077ebf2303930c1c412736a45fc32113/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG [delete] https://crrev.com/59bba7da52e54e99801065ec3d879f3ea2cb4049/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem-expected.txt [modify] https://crrev.com/c489d68f077ebf2303930c1c412736a45fc32113/third_party/blink/renderer/core/layout/BUILD.gn [modify] https://crrev.com/c489d68f077ebf2303930c1c412736a45fc32113/third_party/blink/renderer/core/layout/layout_object.h [modify] https://crrev.com/c489d68f077ebf2303930c1c412736a45fc32113/third_party/blink/renderer/core/layout/ng/geometry/ng_physical_offset_rect.cc [modify] https://crrev.com/c489d68f077ebf2303930c1c412736a45fc32113/third_party/blink/renderer/core/layout/ng/geometry/ng_physical_offset_rect.h [modify] https://crrev.com/c489d68f077ebf2303930c1c412736a45fc32113/third_party/blink/renderer/core/layout/ng/inline/ng_inline_fragment_traversal.cc [modify] https://crrev.com/c489d68f077ebf2303930c1c412736a45fc32113/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc [add] https://crrev.com/c489d68f077ebf2303930c1c412736a45fc32113/third_party/blink/renderer/core/layout/ng/ng_outline_utils.cc [add] https://crrev.com/c489d68f077ebf2303930c1c412736a45fc32113/third_party/blink/renderer/core/layout/ng/ng_outline_utils.h [modify] https://crrev.com/c489d68f077ebf2303930c1c412736a45fc32113/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.cc [modify] https://crrev.com/c489d68f077ebf2303930c1c412736a45fc32113/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.h [modify] https://crrev.com/c489d68f077ebf2303930c1c412736a45fc32113/third_party/blink/renderer/core/paint/ng/ng_fragment_painter.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a9b9446fef4c96a4481709e6918249332b73b62a commit a9b9446fef4c96a4481709e6918249332b73b62a Author: Aleks Totic <atotic@chromium.org> Date: Thu Apr 26 23:33:28 2018 [LayoutNG] Implement bottom block padding for overflow Fix FlippedBlocks overflow Fix overflow-basic-002.html per spec. Bug: 728378 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng Change-Id: I0b42895b327f17e7896d6d03026555aa0aba67da Reviewed-on: https://chromium-review.googlesource.com/1026250 Commit-Queue: Aleks Totic <atotic@chromium.org> Reviewed-by: Christian Biesinger <cbiesinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#554183} [modify] https://crrev.com/a9b9446fef4c96a4481709e6918249332b73b62a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG [modify] https://crrev.com/a9b9446fef4c96a4481709e6918249332b73b62a/third_party/WebKit/LayoutTests/TestExpectations [delete] https://crrev.com/446756a8dfdc13764945702413d478a5c0bf9e76/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/overflow/parent-overflow-expected.txt [modify] https://crrev.com/a9b9446fef4c96a4481709e6918249332b73b62a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/images/alt-text-wrapping-expected.txt [modify] https://crrev.com/a9b9446fef4c96a4481709e6918249332b73b62a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/virtual/gpu-rasterization/images/alt-text-wrapping-expected.txt [modify] https://crrev.com/a9b9446fef4c96a4481709e6918249332b73b62a/third_party/WebKit/LayoutTests/overflow/overflow-basic-002.html [modify] https://crrev.com/a9b9446fef4c96a4481709e6918249332b73b62a/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a8038d12eb93698fb89417574b45a3785dbd333a commit a8038d12eb93698fb89417574b45a3785dbd333a Author: Aleks Totic <atotic@chromium.org> Date: Mon May 21 21:59:35 2018 [LayoutNG] Initial implementation of scrollable overflow. This patch was inspired by trying to fix scrollbar appearance of external/wpt/pointerevents/pointerevent_touch-action-span-test_touch-manual.html Vertical scrollbar was missing, and horizontal scrollbar was too short. Scrollable overflow is the space fragment will contribute to its container's scrollable area. For box, and text fragments, this area is equivalent to its border-box. Lineboxes are different, linebox size is independent of its scrollable area because linebox height is line height, and not "border-box" height. https://drafts.csswg.org/css2/visudet.html#inline-non-replaced "The vertical padding, border and margin of an inline, non-replaced box start at the top and bottom of the content area, and has nothing to do with the 'line-height'. But only the 'line-height' is used when calculating the height of the line box." This patch adds ScrollableOverflow method to all fragments. ScrollableOverflow of all fragment types except Linebox return border-box. Linebox returns sum of its children scroll overflows. This fixed "missing vertical scrollbar" portion of my test case. Tests: I've added 2 tests for overflow with inline children. overflow-inline-001.html tests padding and layout overflow. This tests currently fails, will have to wait for the part 2 of this patch, "Inline_end padding for inline children". overflow-inline-002.html tests linebox ScrollableOverflow. 1 test was rebased because results are closer to Legacy with NG (1px diff) Bug: 728378 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: Id1bc204f0863eac23926c3cd1dbef0c544eb9b29 Reviewed-on: https://chromium-review.googlesource.com/1067243 Commit-Queue: Aleks Totic <atotic@chromium.org> Reviewed-by: Koji Ishii <kojii@chromium.org> Cr-Commit-Position: refs/heads/master@{#560367} [modify] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG [modify] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/formatting_model/inline_elements-expected.png [modify] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/formatting_model/inline_elements-expected.txt [modify] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/WebKit/LayoutTests/overflow/overflow-basic-002.html [add] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/WebKit/LayoutTests/overflow/overflow-inline-001.html [add] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/WebKit/LayoutTests/overflow/overflow-inline-002.html [modify] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.cc [modify] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.cc [modify] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.h [modify] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc [modify] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.cc [modify] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h [modify] https://crrev.com/a8038d12eb93698fb89417574b45a3785dbd333a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bf1887d625945951021df20b377cdb3f6d2b540b commit bf1887d625945951021df20b377cdb3f6d2b540b Author: Aleks Totic <atotic@chromium.org> Date: Tue May 22 22:15:19 2018 [LayoutNG] Implement container overflow inline padding Container adds inline_end padding to inline children Bug: 728378 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng Change-Id: I43008ae9ec0b201eff0197fe457bc3a7483e4566 Reviewed-on: https://chromium-review.googlesource.com/1068139 Commit-Queue: Aleks Totic <atotic@chromium.org> Reviewed-by: Koji Ishii <kojii@chromium.org> Cr-Commit-Position: refs/heads/master@{#560810} [modify] https://crrev.com/bf1887d625945951021df20b377cdb3f6d2b540b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG [modify] https://crrev.com/bf1887d625945951021df20b377cdb3f6d2b540b/third_party/blink/renderer/core/layout/ng/geometry/ng_physical_offset_rect.cc [modify] https://crrev.com/bf1887d625945951021df20b377cdb3f6d2b540b/third_party/blink/renderer/core/layout/ng/geometry/ng_physical_offset_rect.h [modify] https://crrev.com/bf1887d625945951021df20b377cdb3f6d2b540b/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7c2a0da203f23cbd4e9b42ca2cc19c5f24bd5045 commit 7c2a0da203f23cbd4e9b42ca2cc19c5f24bd5045 Author: Aleks Totic <atotic@chromium.org> Date: Thu May 24 21:45:51 2018 [LayoutNG] NGPhysicalBoxFragment::ScrollableOverflow implementation Bug: 728378 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng Change-Id: Iea3a95e237792af3d1f99dc23e8b68b3ce10c60d Reviewed-on: https://chromium-review.googlesource.com/1071088 Commit-Queue: Aleks Totic <atotic@chromium.org> Reviewed-by: Koji Ishii <kojii@chromium.org> Cr-Commit-Position: refs/heads/master@{#561645} [add] https://crrev.com/7c2a0da203f23cbd4e9b42ca2cc19c5f24bd5045/third_party/WebKit/LayoutTests/overflow/overflow-inline-003.html [modify] https://crrev.com/7c2a0da203f23cbd4e9b42ca2cc19c5f24bd5045/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.cc [modify] https://crrev.com/7c2a0da203f23cbd4e9b42ca2cc19c5f24bd5045/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.h [modify] https://crrev.com/7c2a0da203f23cbd4e9b42ca2cc19c5f24bd5045/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/950e5afa9b087143e1303200c1f789229f4e37b0 commit 950e5afa9b087143e1303200c1f789229f4e37b0 Author: Aleks Totic <atotic@chromium.org> Date: Sat Jun 02 03:29:19 2018 [LayoutNG] Rename VisualOverflowRect->InkOverflow This matches CSS terminology. also: NGPaintFragment::VisualOverflowRect -> SelfInkOverflow. NGPaintFragment::VisualContentRect -> ChildrenInkOverflow. NGPhysicalFragment::SelfVisualRect -> SelfInkOverflow NGPhysicalFragment::VisualRectWithContents -> PhysicalFragment::InkOverflow NGPhysicalContainerFragment::ContentsVisualRect -> NGPhysicalContainerFragment::ContentsInkOverflow Bug: 728378 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: Id85334f373a822f057c9f07f976bc22f9aa49298 Reviewed-on: https://chromium-review.googlesource.com/1083592 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Reviewed-by: Emil A Eklund <eae@chromium.org> Commit-Queue: Aleks Totic <atotic@chromium.org> Cr-Commit-Position: refs/heads/master@{#563922} [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/layout_inline.cc [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.cc [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.cc [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.h [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.cc [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.h [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/ng_fragment_builder.cc [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.cc [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.h [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.cc [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.cc [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/paint/README.md [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.cc [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/paint/ng/ng_paint_fragment.h [modify] https://crrev.com/950e5afa9b087143e1303200c1f789229f4e37b0/third_party/blink/renderer/core/paint/paint_invalidator.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6dc8794a2cd1bf4839c63afd815cfdce896ad50b commit 6dc8794a2cd1bf4839c63afd815cfdce896ad50b Author: Aleks Totic <atotic@chromium.org> Date: Mon Jun 25 20:51:29 2018 [LayoutNG] Bugfix: ScrollableOverflow for PhysicalLineBoxFragment Part 1: PhysicalLineFragment ScrollableOverflow ScrollableOverflow was not taking relative position into account. PhyiscalLineFragment used to recompute overflow when created. This can't be done if relative position is needed, because resolving % relative position needs size of containing block. New code computes ScrollbleOverflow dynamically for PhysicalLineFragment. Part 2: Make RelativeUtils API physical. It is a better fit for PhysicalFragments. Part 3: NGMixin::AddScrollableOverflow should also add overflow from oof children. Another tricky bug: If ContainingBlock() is inline, Legacy positions OOF block wrt inline block, while NG positions OOF block wrt inline's block container. Because OOF blocks affect scrollable overflow, NG must be responsible for making sure OOF block is included in container's overflow. This patch makes 3 tests pass, and 1 new test fail: compositing/culling/tile-occlusion-boundaries.html The failure is caused by NG not using transfroms for scrollable overflow computation. To fix this, we must make fragments tranform-aware. Filed a bug to do so. Bug: 728378 Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng Change-Id: Ib511a95cc71648e806d0cc1376f1f6303152ecee Reviewed-on: https://chromium-review.googlesource.com/1113030 Commit-Queue: Aleks Totic <atotic@chromium.org> Reviewed-by: Koji Ishii <kojii@chromium.org> Cr-Commit-Position: refs/heads/master@{#570171} [modify] https://crrev.com/6dc8794a2cd1bf4839c63afd815cfdce896ad50b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG [modify] https://crrev.com/6dc8794a2cd1bf4839c63afd815cfdce896ad50b/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.cc [modify] https://crrev.com/6dc8794a2cd1bf4839c63afd815cfdce896ad50b/third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.cc [modify] https://crrev.com/6dc8794a2cd1bf4839c63afd815cfdce896ad50b/third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.h [modify] https://crrev.com/6dc8794a2cd1bf4839c63afd815cfdce896ad50b/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc [modify] https://crrev.com/6dc8794a2cd1bf4839c63afd815cfdce896ad50b/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.cc [modify] https://crrev.com/6dc8794a2cd1bf4839c63afd815cfdce896ad50b/third_party/blink/renderer/core/layout/ng/ng_relative_utils.cc [modify] https://crrev.com/6dc8794a2cd1bf4839c63afd815cfdce896ad50b/third_party/blink/renderer/core/layout/ng/ng_relative_utils.h [modify] https://crrev.com/6dc8794a2cd1bf4839c63afd815cfdce896ad50b/third_party/blink/renderer/core/layout/ng/ng_relative_utils_test.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/890c61fe68807dcd29fe4c3346ac2fed5f4aa268 commit 890c61fe68807dcd29fe4c3346ac2fed5f4aa268 Author: Aleks Totic <atotic@chromium.org> Date: Fri Jun 29 00:44:53 2018 [LayoutNG] NGLayoutInputNode::GetLayoutObject -> GetLayoutBox Rename NGLayoutInputObject::GetLayoutObject to GetLayoutBox() Bug: 728378 Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng Change-Id: Ie4a1beed8aed3268ecfca4d62113490f393f01de Reviewed-on: https://chromium-review.googlesource.com/1119360 Commit-Queue: Aleks Totic <atotic@chromium.org> Reviewed-by: Emil A Eklund <eae@chromium.org> Reviewed-by: Christian Biesinger <cbiesinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#571345} [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/inline/ng_baseline.cc [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/inline/ng_inline_item_result.cc [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.cc [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/ng_block_node.cc [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/ng_flex_layout_algorithm.cc [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/ng_floats_utils.cc [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/ng_fragment_builder.cc [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.cc [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.h [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h [modify] https://crrev.com/890c61fe68807dcd29fe4c3346ac2fed5f4aa268/third_party/blink/renderer/core/layout/text_autosizer.cc
Comment 1 by bugdroid1@chromium.org
, Jun 7 2017