[webkit-changes] [WebKit/WebKit] a35d57: [LFC][IFC] Basic support for shape-outside

Antti Koivisto noreply at github.com
Wed Mar 8 08:30:07 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a35d5737773453b705543bb528321594f70dda92
      https://github.com/WebKit/WebKit/commit/a35d5737773453b705543bb528321594f70dda92
  Author: Antti Koivisto <antti at apple.com>
  Date:   2023-03-08 (Wed, 08 Mar 2023)

  Changed paths:
    M Source/WebCore/layout/floats/FloatingContext.cpp
    M Source/WebCore/layout/floats/FloatingState.h
    M Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
    M Source/WebCore/layout/layouttree/LayoutBox.cpp
    M Source/WebCore/layout/layouttree/LayoutBox.h

  Log Message:
  -----------
  [LFC][IFC] Basic support for shape-outside
https://bugs.webkit.org/show_bug.cgi?id=253561
rdar://106416578

Reviewed by Alan Baradlay.

Add (somewhat incomplete) IFC and integration support for shape-outside.
Not enabled yet.

* Source/WebCore/layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::constraints const):
* Source/WebCore/layout/floats/FloatingState.h:
(WebCore::Layout::FloatingState::FloatItem::borderBoxRect const):
(WebCore::Layout::FloatingState::FloatItem::shape const):

Use the shape for constraints if present.

* Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForChild):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):

Update the shape.

* Source/WebCore/layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::shape const):
(WebCore::Layout::Box::setShape):

Save shape to rare data.

* Source/WebCore/layout/layouttree/LayoutBox.h:

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




More information about the webkit-changes mailing list