[webkit-changes] [WebKit/WebKit] 460831: [IFC] Make list marker handling logical coordinate...

Alan Baradlay noreply at github.com
Wed Dec 28 15:23:39 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 46083178178c8f6c54e1136813c1ea81b1a3c301
      https://github.com/WebKit/WebKit/commit/46083178178c8f6c54e1136813c1ea81b1a3c301
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2022-12-28 (Wed, 28 Dec 2022)

  Changed paths:
    M LayoutTests/platform/ios/css1/box_properties/padding_right-expected.txt
    M LayoutTests/platform/ios/fast/lists/001-expected.txt
    M LayoutTests/platform/ios/fast/lists/002-expected.txt
    M LayoutTests/platform/ios/fast/lists/002-vertical-expected.txt
    M LayoutTests/platform/mac/css1/box_properties/margin_right-expected.txt
    M LayoutTests/platform/mac/css1/box_properties/padding_right-expected.txt
    M LayoutTests/platform/mac/fast/lists/001-expected.txt
    M LayoutTests/platform/mac/fast/lists/002-expected.txt
    M LayoutTests/platform/mac/fast/lists/002-vertical-expected.txt
    M Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.h
    M Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp

  Log Message:
  -----------
  [IFC] Make list marker handling logical coordinate space based
https://bugs.webkit.org/show_bug.cgi?id=249899

Reviewed by Antti Koivisto.

This is in preparation for supporting nested list markers with intrusive floats.
(Nested list markers -> when multiple of them are collapsed to the same line)

In this patch we start resolving list marker positions at line box construction time in logical space
where resolving position means computing the correct (negative) margin start for the marker (negative margin pulls the list marker to logical left direction while
keeping the rest of the line content intact).
This simplifies position logic (no need to take vertical/rtl direction into account) and also helps when dealing with intrusive floats.

* LayoutTests/platform/ios/css1/box_properties/padding_right-expected.txt:
* LayoutTests/platform/ios/fast/lists/001-expected.txt:
* LayoutTests/platform/ios/fast/lists/002-expected.txt:
* LayoutTests/platform/ios/fast/lists/002-vertical-expected.txt:
* LayoutTests/platform/mac/css1/box_properties/margin_right-expected.txt:
* LayoutTests/platform/mac/css1/box_properties/padding_right-expected.txt:
* LayoutTests/platform/mac/fast/lists/001-expected.txt:
* LayoutTests/platform/mac/fast/lists/002-expected.txt:
* LayoutTests/platform/mac/fast/lists/002-vertical-expected.txt:
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.cpp:
(WebCore::Layout::InlineFormattingGeometry::adjustMarginStartForListMarker const):
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.h:
* Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::outsideListMarkerVisualPosition const): Deleted.
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateListMarkerDimensions):

Canonical link: https://commits.webkit.org/258349@main




More information about the webkit-changes mailing list