New issue
Advanced search Search tips

Issue 728378 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task



Sign in to add a comment

[LayoutNG] implement overflow

Project Member Reported by atotic@chromium.org, May 31 2017

Issue description

Implementation:

Part 1: overflow tests
Part 2: basic overflow
Part 3: make overflow work with absolute position

 
Project Member

Comment 1 by bugdroid1@chromium.org, Jun 7 2017

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

Project Member

Comment 2 by bugdroid1@chromium.org, Jun 16 2017

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

Project Member

Comment 3 by bugdroid1@chromium.org, Jun 21 2017

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

Project Member

Comment 4 by bugdroid1@chromium.org, Mar 21 2018

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

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 7 2018

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

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 13 2018

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

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-testbranch
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

Project Member

Comment 8 by bugdroid1@chromium.org, Apr 26 2018

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

Labels: -Type-Bug Type-Task
Summary: [LayoutNG] implement overflow (was: [layoutng] implement overflow)
Project Member

Comment 10 by bugdroid1@chromium.org, May 21 2018

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

Project Member

Comment 11 by bugdroid1@chromium.org, May 22 2018

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

Project Member

Comment 13 by bugdroid1@chromium.org, Jun 2 2018

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

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 25 2018

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

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 29 2018

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

Sign in to add a comment