New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 725277 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Sep 13
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac , Fuchsia
Pri: 3
Type: Feature

Blocking:
issue 591099


Show other hotlists

Hotlists containing this issue:
layoutng


Sign in to add a comment

[LayoutNG] Implement list-item

Project Member Reported by glebl@chromium.org, May 22 2017

Issue description

we fail virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-143.xht because LayoutNG doesn't support LayoutListItem yet.

Here is the LayoutObject tree that demonstrates the problem
    LayoutNGBlockFlow {body} at (8,16) size 784x20
      LayoutNGBlockFlow {p} at (0,0) size 784x20
        LayoutText {#text} at (0,0) size 426x19
          text run at (0,0) width 426: "There should be a single green block with the word \"PASS\" below."
      LayoutNGBlockFlow (floating) {ul} at (0,36) size 42x0 [bgcolor=#FF0000]
        LayoutListItem (floating) {li} at (0,0) size 41.63x0
          LayoutNGBlockFlow (floating) {span} at (0,0) size 41.63x32 [color=#FFFFFF] [bgcolor=#008000]
            LayoutText {#text} at (0,-3) size 42x37
              text run at (0,-3) width 42: "PA"

LayoutListItem is floating but it's handled by Legacy Layout that calculates the size incorrectly. It's 42x0 instead of expected 41.63x32
 
Components: Blink>Layout

Comment 2 by e...@chromium.org, Jun 12 2017

Labels: -Type-Bug Type-Feature
Status: Available (was: Untriaged)

Comment 3 by e...@chromium.org, Oct 12 2017

Owner: kojii@chromium.org
Status: Assigned (was: Available)
I think you've done this already kojii.

Comment 4 by kojii@chromium.org, Feb 14 2018

Blocking: 591099
Cc: catherinechung@chromium.org
Labels: OS-Android OS-Chrome OS-Fuchsia OS-Linux OS-Mac OS-Windows
Summary: [LayoutNG] Implement list-item (was: LayoutNG should handle LayoutListItem)
Project Member

Comment 5 by bugdroid1@chromium.org, Feb 15 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6b6cbd30166857ab465361aeff2f91efb01d3610

commit 6b6cbd30166857ab465361aeff2f91efb01d3610
Author: Koji Ishii <kojii@chromium.org>
Date: Thu Feb 15 16:39:59 2018

[LayoutNG] Cleanup list-item for LayoutNG

As catherinechung@, Francois@msft, and I discuss the list item spec[1]
and implementations, it became more apparent that list item is not
really an inline.

To prepare for larger refactoring, this patch moves list-related
classes into its own directory, layout/ng/list/, and also add a class
for list markers.

[1] https://github.com/w3c/csswg-drafts/issues/1934

Bug:  725277 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I806446fda5cdef99c9b8597cb6825f6cce698b49
Reviewed-on: https://chromium-review.googlesource.com/918101
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537044}
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/basic/containment-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/basic/id_as_selector-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/box_properties/clear_float-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/box_properties/margin-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/box_properties/margin_left-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/cascade/cascade_order-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/classification/display-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/classification/list_style_position-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/classification/list_style_type-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css2.1/t0402-c71-fwd-parsing-02-f-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css2.1/t0505-c16-descendant-01-e-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css2.1/t050803-c14-classes-00-e-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css2.1/t0509-c15-ids-01-e-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css2.1/t1205-c563-list-type-00-b-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/html/css3-modsel-1-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/html/css3-modsel-13-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/html/css3-modsel-15-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/html/css3-modsel-22-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/html/css3-modsel-28-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/html/css3-modsel-28b-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/html/css3-modsel-29-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/html/css3-modsel-29b-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/html/css3-modsel-3a-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/html/css3-modsel-73-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/html/css3-modsel-73b-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/html/css3-modsel-74-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/html/css3-modsel-74b-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-1-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-13-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-15-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-22-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-28-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-28b-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-29-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-29b-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-3-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-3a-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-73-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-73b-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-74-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xhtml/css3-modsel-74b-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-1-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-13-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-15-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-22-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-28-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-28b-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-29-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-29b-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-3-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-3a-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-73-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-73b-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-74-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css3/selectors3/xml/css3-modsel-74b-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/editing/selection/drag-to-contenteditable-iframe-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/editing/selection/selectNode-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/editing/selection/selectNodeContents-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/editing/unsupported-content/list-type-after-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/editing/unsupported-content/list-type-before-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/forms/plaintext-mode-2-expected.txt
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/Source/core/html/ListItemOrdinal.cpp
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/Source/core/layout/LayoutObject.cpp
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/Source/core/layout/LayoutObject.h
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[rename] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/Source/core/layout/ng/list/layout_ng_list_item.cc
[rename] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/Source/core/layout/ng/list/layout_ng_list_item.h
[add] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/Source/core/layout/ng/list/layout_ng_list_marker.cc
[add] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/Source/core/layout/ng/list/layout_ng_list_marker.h
[rename] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/Source/core/layout/ng/list/ng_list_layout_algorithm.cc
[rename] https://crrev.com/6b6cbd30166857ab465361aeff2f91efb01d3610/third_party/WebKit/Source/core/layout/ng/list/ng_list_layout_algorithm.h

Project Member

Comment 6 by bugdroid1@chromium.org, Feb 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cbe9c5b9778ea0c43508e2f088c562b1b7386602

commit cbe9c5b9778ea0c43508e2f088c562b1b7386602
Author: Koji Ishii <kojii@chromium.org>
Date: Mon Feb 19 05:51:31 2018

[LayoutNG] Support block content in list items

The first implementation of CSS list in LayoutNG adds the logic to
NGInlineLayoutAlgorithm, and supports only when content of the list
item is inline level. Extending this to when list items have block
level children wasn't easy. Making them as inline blocks is likely not
web-compatible when floats affect part of the blocks.

The most common case is nested lists, because a list is block level.
This patch renders basic nested lists correctly.

This patch supports list marker as an unpositioned object in
NGBlockLayoutAlgorithm, similar to floats or out-of-flow objects, and
positions them when it lays out the next block, relative to its first
line baseline. It is much simpler than floats or out-of-flow objects,
because it is contained only within the list item.

The approach is still being discussed with Francois (msft) and Cathie.
Also this patch still doesn't support images, and customized
positioning of markers by setting padding/margin. These will be in
following patches.

Two tests that were incorrectly rebaselined were re-rebaselined.
Some image failures turned to text failures that need manual reviews
to rebaseline.

Bug:  725277 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I2e7f46fc6320c6986e4894a263ef99873db2f092
Reviewed-on: https://chromium-review.googlesource.com/919443
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537584}
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/cascade/cascade_order-expected.png
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/cascade/cascade_order-expected.txt
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/forms/date/date-appearance-basic-expected.png
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/inline/README.md
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_item.cc
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[add] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/list/README.md
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/list/layout_ng_list_item.cc
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/list/layout_ng_list_item.h
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/list/layout_ng_list_marker.cc
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/list/layout_ng_list_marker.h
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/list/ng_list_layout_algorithm.cc
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/list/ng_list_layout_algorithm.h
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/cbe9c5b9778ea0c43508e2f088c562b1b7386602/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h

Project Member

Comment 7 by bugdroid1@chromium.org, Feb 26 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b

commit 0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b
Author: Koji Ishii <kojii@chromium.org>
Date: Mon Feb 26 15:57:13 2018

[LayoutNG] Change list markers to out-of-flow for tree building

Following CL:919443, this patch implements list-item further for
block-level content, and unifies the positioning logic with the
logic for inline content.

The anonymous blocks that wrap list markers were not easy that
this patch changes the tree building (LayoutBlockFlow::AddChild)
to handle LayoutNGListMarker as out-of-flow. However, setting
the out-of-flow properties (e.g., position: absolute) affects
many parts of the code base that it is limited only for the
tree building purpose.

Also, in order for the list item block to position its list
marker, NGInlineLayoutAlgorithm no longer positions it. Instead,
the |unpositioned_list_marker_| is moved to NGLayoutResult,
which propagates from line box to the nearest list item block.

Other logic are still in NGInlineLayoutAlgorithm because list
markers forces the line box not empty.

NGBoxFragmentPainter needs a minor change because by adding
list markers to list items, it may appear along with line boxes.

20 tests turned to pass, including some rebaselines for text
rendering differences. 4 tests regressed, that are
1. 'display: contents'; the tree building change needs to take
   this into account.
2. When inside/outside are changed from JS, we fail to compute
   the baseline.
I will investigate them, along with tests that still don't pass
in following patches.

Bug:  725277 
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: I09eb80b3a24a17b8841b4b200ff5d4a249c81853
Reviewed-on: https://chromium-review.googlesource.com/925381
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539144}
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css1/cascade/cascade_order-expected.txt
[add] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/lists/002-expected.png
[add] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/lists/007-expected.png
[add] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/lists/008-expected.png
[add] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/lists/alpha-boundary-values-expected.txt
[add] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/lists/alpha-list-wrap-expected.txt
[add] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/lists/dynamic-marker-crash-expected.png
[add] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/lists/ordered-list-with-no-ol-tag-expected.png
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.cc
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/list/ng_list_layout_algorithm.cc
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/list/ng_list_layout_algorithm.h
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/ng_container_fragment_builder.cc
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/ng_container_fragment_builder.h
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/ng_layout_result.h
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[modify] https://crrev.com/0bc9ce1ed6a9efe9c22007d3f92f51c52b0b363b/third_party/WebKit/Source/core/paint/ng/ng_box_fragment_painter.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Feb 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0865f9bd076062390ba5d6c5a3191fdeca1e1cc3

commit 0865f9bd076062390ba5d6c5a3191fdeca1e1cc3
Author: Koji Ishii <kojii@chromium.org>
Date: Tue Feb 27 03:11:50 2018

[LayoutNG] Update list/README.md

This CL updates layout/ng/list/README.md to catch up changes in
CL:925381.

NOTRY=true

Bug:  725277 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Id67584e531b1e1229f4f12e6a336881dddee76bf
Reviewed-on: https://chromium-review.googlesource.com/938102
Reviewed-by: Aleks Totic <atotic@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539387}
[modify] https://crrev.com/0865f9bd076062390ba5d6c5a3191fdeca1e1cc3/third_party/WebKit/Source/core/layout/ng/list/README.md

Project Member

Comment 9 by bugdroid1@chromium.org, Mar 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/02b2c6f22f804473316a98fbbbb80887a5b9343f

commit 02b2c6f22f804473316a98fbbbb80887a5b9343f
Author: Koji Ishii <kojii@chromium.org>
Date: Thu Mar 08 19:30:12 2018

[LayoutNG] Fix list marker positioning when the first child is block

This patch fixes list marker positioning when the first child of
the list item is block-level, and the child does not produce a
baseline. Before this patch, list marker is positioned at the
synthesized baseline. This is not well-defined, but 3 browsers
positions the list marker at the first child that has a baseline.
This is filed to CSS WG at
https://github.com/w3c/csswg-drafts/issues/2417.

By doing so, a new case appears where there are no children that
has a baseline. This case is also not well-defined and non-
interoperable. Blink/Edge/WebKit creates an empty line box in
this case, but this isn't easy as we have to insert an empty
line box before the children we have already laid out. This
patch follows Gecko behavior to position the list marker at the
top of the list item.

Also, whether list marker should affect block size or not is not
defined and not interoperable. For now, this patch includes the
list marker block size into list item's block size because it
looks more reasonable to me, and Blink/Edge/WebKit do so. This
is filed as:
https://github.com/w3c/csswg-drafts/issues/2418

SetListMarkerPosition() is a left over in the last patch and
therefore this patch removed it.

Some tests turn to good, though they need to rebaseline due to
list marker image differences.

Bug:  725277 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: If47ab7daea214c0593a917a0c8f505274dae5ca2
Reviewed-on: https://chromium-review.googlesource.com/952843
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541864}
[modify] https://crrev.com/02b2c6f22f804473316a98fbbbb80887a5b9343f/third_party/WebKit/Source/core/layout/ng/list/ng_list_layout_algorithm.cc
[modify] https://crrev.com/02b2c6f22f804473316a98fbbbb80887a5b9343f/third_party/WebKit/Source/core/layout/ng/list/ng_list_layout_algorithm.h
[modify] https://crrev.com/02b2c6f22f804473316a98fbbbb80887a5b9343f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/02b2c6f22f804473316a98fbbbb80887a5b9343f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/02b2c6f22f804473316a98fbbbb80887a5b9343f/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.cc
[modify] https://crrev.com/02b2c6f22f804473316a98fbbbb80887a5b9343f/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.h

Comment 10 Deleted

Comment 11 Deleted

Project Member

Comment 12 by bugdroid1@chromium.org, Apr 11 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ef86432aeeac4fa3c6e472125afafbe040581f21

commit ef86432aeeac4fa3c6e472125afafbe040581f21
Author: Koji Ishii <kojii@chromium.org>
Date: Wed Apr 11 00:43:03 2018

[LayoutNG] Refactor NGListLayoutAlgorithm as NGUnpositionedListMarker

This patch is a refactor, no behavior nor logic changes.

In the last refactoring, list markers are propagated to list item as
NGBlockNode and uses static functions of NGListLayoutAlgorithm.

This patch refactors NGListLayoutAlgorithm as
NGUnpositionedListMarker, that holds the list marker node and
positioning functions as instance functions. Also common code are
extracted to private functions.

Unfortunately, gerrit/git no longer recognize this as rename and
that the diff is large, but the logic does not change. This is to
prepare for further fixes that include logic changes.

Bug:  725277 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ic5c411c0ba977d95695b5feea194a422ea3b5d01
Reviewed-on: https://chromium-review.googlesource.com/1001215
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549700}
[modify] https://crrev.com/ef86432aeeac4fa3c6e472125afafbe040581f21/third_party/blink/renderer/core/layout/BUILD.gn
[modify] https://crrev.com/ef86432aeeac4fa3c6e472125afafbe040581f21/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[delete] https://crrev.com/c9790a3beefb04623d157b88f352422c36af18ca/third_party/blink/renderer/core/layout/ng/list/ng_list_layout_algorithm.cc
[delete] https://crrev.com/c9790a3beefb04623d157b88f352422c36af18ca/third_party/blink/renderer/core/layout/ng/list/ng_list_layout_algorithm.h
[add] https://crrev.com/ef86432aeeac4fa3c6e472125afafbe040581f21/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.cc
[add] https://crrev.com/ef86432aeeac4fa3c6e472125afafbe040581f21/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.h
[modify] https://crrev.com/ef86432aeeac4fa3c6e472125afafbe040581f21/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/ef86432aeeac4fa3c6e472125afafbe040581f21/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc
[modify] https://crrev.com/ef86432aeeac4fa3c6e472125afafbe040581f21/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
[modify] https://crrev.com/ef86432aeeac4fa3c6e472125afafbe040581f21/third_party/blink/renderer/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/ef86432aeeac4fa3c6e472125afafbe040581f21/third_party/blink/renderer/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/ef86432aeeac4fa3c6e472125afafbe040581f21/third_party/blink/renderer/core/layout/ng/ng_layout_result.h

Project Member

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

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b71361654f918e79822e8db957ffc2ee361e3ff2

commit b71361654f918e79822e8db957ffc2ee361e3ff2
Author: Koji Ishii <kojii@chromium.org>
Date: Wed Apr 11 10:01:31 2018

[LayoutNG] Fix list markers not to overlap with previous blocks

This patch fixes when list marker is taller than the content of the
list item, list markers not to intrude previous blocks.

This behavior is not defined, but Blink, WebKit, and Edge do this
by including list marker height into the first line box. This turned
out to require a bit complex propagation. Instead, this patch
includes list marker height into the list item.

This is being tracked in
https://github.com/w3c/csswg-drafts/issues/2418
but I think this patch has close enough behavior and turns following
tests good enough to rebaseline.

  fast/css/first-child-pseudo-class.html
  fast/css/first-of-type-pseudo-class.html
  fast/css/last-child-pseudo-class.html
  fast/css/last-of-type-pseudo-class.html
  fast/css/only-child-pseudo-class.html
  fast/css/only-of-type-pseudo-class.html

Bug:  725277 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ic911a96f7804a91d6dccf2bf64bc6fd49169e8cb
Reviewed-on: https://chromium-review.googlesource.com/994915
Reviewed-by: cathie chen <cathiechen@tencent.com>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549843}
[modify] https://crrev.com/b71361654f918e79822e8db957ffc2ee361e3ff2/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.cc
[modify] https://crrev.com/b71361654f918e79822e8db957ffc2ee361e3ff2/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.h
[modify] https://crrev.com/b71361654f918e79822e8db957ffc2ee361e3ff2/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/b71361654f918e79822e8db957ffc2ee361e3ff2/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.h

Project Member

Comment 14 by bugdroid1@chromium.org, Apr 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f28ad35215756ffa4c7b419473c9c611a61c0304

commit f28ad35215756ffa4c7b419473c9c611a61c0304
Author: Koji Ishii <kojii@chromium.org>
Date: Mon Apr 16 02:28:23 2018

[LayoutNG] flag-specific rebaselines after list marker change

This patch rebaselines image and/or text failures after the
list marker change in CL:994915.

The CL prevents list markers overlapping with previous content
by including the list marker height into the list item. While
it is slightly differnet from what Blink does, I think this is
reasonably close to rebaseline, given the behavior is not well-
defined and Gecko behaves differently.

We may revisit this if this difference turned out to be more
significant than I think.

TBR=eae@chromium.org, mstensho@chromium.org
NOTRY=true

Bug:  725277 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I773bc19ca2d27c96266d15d75b8f20de12952b30
Reviewed-on: https://chromium-review.googlesource.com/1013674
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550925}
[modify] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/first-child-pseudo-class-expected.png
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/first-child-pseudo-class-expected.txt
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/first-of-type-pseudo-class-expected.png
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/first-of-type-pseudo-class-expected.txt
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/last-child-pseudo-class-expected.png
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/last-child-pseudo-class-expected.txt
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/last-of-type-pseudo-class-expected.png
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/last-of-type-pseudo-class-expected.txt
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/only-child-pseudo-class-expected.png
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/only-child-pseudo-class-expected.txt
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/only-of-type-pseudo-class-expected.png
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/only-of-type-pseudo-class-expected.txt

Project Member

Comment 15 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/+/f28ad35215756ffa4c7b419473c9c611a61c0304

commit f28ad35215756ffa4c7b419473c9c611a61c0304
Author: Koji Ishii <kojii@chromium.org>
Date: Mon Apr 16 02:28:23 2018

[LayoutNG] flag-specific rebaselines after list marker change

This patch rebaselines image and/or text failures after the
list marker change in CL:994915.

The CL prevents list markers overlapping with previous content
by including the list marker height into the list item. While
it is slightly differnet from what Blink does, I think this is
reasonably close to rebaseline, given the behavior is not well-
defined and Gecko behaves differently.

We may revisit this if this difference turned out to be more
significant than I think.

TBR=eae@chromium.org, mstensho@chromium.org
NOTRY=true

Bug:  725277 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I773bc19ca2d27c96266d15d75b8f20de12952b30
Reviewed-on: https://chromium-review.googlesource.com/1013674
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550925}
[modify] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/first-child-pseudo-class-expected.png
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/first-child-pseudo-class-expected.txt
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/first-of-type-pseudo-class-expected.png
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/first-of-type-pseudo-class-expected.txt
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/last-child-pseudo-class-expected.png
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/last-child-pseudo-class-expected.txt
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/last-of-type-pseudo-class-expected.png
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/last-of-type-pseudo-class-expected.txt
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/only-child-pseudo-class-expected.png
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/only-child-pseudo-class-expected.txt
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/only-of-type-pseudo-class-expected.png
[add] https://crrev.com/f28ad35215756ffa4c7b419473c9c611a61c0304/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/only-of-type-pseudo-class-expected.txt

Cc: cathiec...@tencent.com
Project Member

Comment 17 by bugdroid1@chromium.org, Jul 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/347323ce0f71964c59a50c507f14484baff8a386

commit 347323ce0f71964c59a50c507f14484baff8a386
Author: cathiechen <cathiechen@tencent.com>
Date: Thu Jul 12 05:58:16 2018

[LayoutNG]Make the first marker of nested list occupying a whole line

In legacy Layout, there's line-break between marker and the nesting
<ul>/<ol>. In order to keep consistency with it, add NeedsOccupyWholeLine()
in LayoutNGListMarker to indicate that marker would occupy a line.
During Layout(), this kind of marker won't be added to container_builder_,
and layout directly. And its margin will be handled after layout.

Bug:  725277 

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng;luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ie9f6dbca0945c8e031ec7bb44594db2e96773462
Reviewed-on: https://chromium-review.googlesource.com/1132819
Commit-Queue: cathie chen <cathiechen@tencent.com>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574495}
[modify] https://crrev.com/347323ce0f71964c59a50c507f14484baff8a386/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[add] https://crrev.com/347323ce0f71964c59a50c507f14484baff8a386/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/doctypes/001-expected.txt
[add] https://crrev.com/347323ce0f71964c59a50c507f14484baff8a386/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/doctypes/003-expected.txt
[add] https://crrev.com/347323ce0f71964c59a50c507f14484baff8a386/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/doctypes/004-expected.txt
[modify] https://crrev.com/347323ce0f71964c59a50c507f14484baff8a386/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker.cc
[modify] https://crrev.com/347323ce0f71964c59a50c507f14484baff8a386/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker.h
[modify] https://crrev.com/347323ce0f71964c59a50c507f14484baff8a386/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.h
[modify] https://crrev.com/347323ce0f71964c59a50c507f14484baff8a386/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/347323ce0f71964c59a50c507f14484baff8a386/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc

Project Member

Comment 18 by bugdroid1@chromium.org, Jul 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f75a5ea8e5ea7655288d45bf10a33d54b739207c

commit f75a5ea8e5ea7655288d45bf10a33d54b739207c
Author: cathiechen <cathiechen@tencent.com>
Date: Tue Jul 17 02:41:11 2018

[LayoutNG] Make <LI>'s line-height effective when list-style-type: none

Like legacy layout, in order to match other browsers when list-style-type
is none, pretend there's an invisible marker in <LI>.

Bug:  725277 
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I35d3122f9a99a4262ee41236650ff41aa09ff53d
Reviewed-on: https://chromium-review.googlesource.com/1138044
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: cathie chen <cathiechen@tencent.com>
Cr-Commit-Position: refs/heads/master@{#575526}
[modify] https://crrev.com/f75a5ea8e5ea7655288d45bf10a33d54b739207c/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/f75a5ea8e5ea7655288d45bf10a33d54b739207c/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Jul 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/370da7c8f21c4f5511362f6a9d8b49d76b2777d4

commit 370da7c8f21c4f5511362f6a9d8b49d76b2777d4
Author: cathiechen <cathiechen@tencent.com>
Date: Thu Jul 19 14:02:07 2018

[LayoutNG] Make li without ul/ol layout as list-style-position: inside

Like the legacy layout, make single li as list-style-position: inside.
We consider li is with ul/ol by default. If not, use not_in_list_changed_
to indict that we should UpdateMarker().

Bug:  725277 
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I5a245fd12c204f5dd4d68c6ce7aacd4582cedb78
Reviewed-on: https://chromium-review.googlesource.com/1141745
Commit-Queue: cathie chen <cathiechen@tencent.com>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576474}
[modify] https://crrev.com/370da7c8f21c4f5511362f6a9d8b49d76b2777d4/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/370da7c8f21c4f5511362f6a9d8b49d76b2777d4/third_party/blink/renderer/core/html/html_li_element.cc
[modify] https://crrev.com/370da7c8f21c4f5511362f6a9d8b49d76b2777d4/third_party/blink/renderer/core/html/list_item_ordinal.cc
[modify] https://crrev.com/370da7c8f21c4f5511362f6a9d8b49d76b2777d4/third_party/blink/renderer/core/html/list_item_ordinal.h
[modify] https://crrev.com/370da7c8f21c4f5511362f6a9d8b49d76b2777d4/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Aug 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3239828a3c63b764fe4613ce99442b6d81892256

commit 3239828a3c63b764fe4613ce99442b6d81892256
Author: cathiechen <cathiechen@tencent.com>
Date: Thu Aug 02 15:41:57 2018

[LayoutNG] Skip marker while FirstLetterPseudoElement find first letter

Like legacy layout, skip list marker while finding the first letter.

Bug:  725277 
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I467c766f8e362f7e12b8d9c7b0251fee02e1b0a2
Reviewed-on: https://chromium-review.googlesource.com/1156111
Commit-Queue: cathie chen <cathiechen@tencent.com>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580202}
[modify] https://crrev.com/3239828a3c63b764fe4613ce99442b6d81892256/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[add] https://crrev.com/3239828a3c63b764fe4613ce99442b6d81892256/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/dynamic/first-letter-after-list-marker-expected.txt
[modify] https://crrev.com/3239828a3c63b764fe4613ce99442b6d81892256/third_party/blink/renderer/core/dom/first_letter_pseudo_element.cc

Cc: kojii@chromium.org
Owner: cathiec...@tencent.com
Status: Fixed (was: Assigned)
This is done, so much thank you to cathiechen@tencent.com.
It's my pleasure! :)

Sign in to add a comment