[LFC][IFC] Add support for inline-block elements.
authorzalan@apple.com <zalan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 1 Nov 2018 14:20:48 +0000 (14:20 +0000)
committerzalan@apple.com <zalan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 1 Nov 2018 14:20:48 +0000 (14:20 +0000)
commitfd57c7a639261f05388c3522eb209a7056b2b770
treeec698c98965b24a05983b238de6dc5d802478c75
parentb6a4b24731e23b83df89f53c5db94521fb23f6f8
[LFC][IFC] Add support for inline-block elements.
https://bugs.webkit.org/show_bug.cgi?id=191143

Reviewed by Antti Koivisto.

Source/WebCore:

This patch add support for laying out non-shrink-to-width inline-block elements.

Test: fast/inline/simple-inline-block.html

* layout/FormattingContext.h:
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
* layout/FormattingContextGeometry.cpp:
(WebCore::Layout::contentHeightForFormattingContextRoot):
(WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth):
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot const):
* layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin):
* layout/layouttree/LayoutInlineContainer.cpp:
(WebCore::Layout::InlineContainer::establishesInlineFormattingContext const):
* layout/layouttree/LayoutInlineContainer.h:
* layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createSubTree):

Tools:

* LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:

* fast/inline/simple-inline-block-expected.txt: Added.
* fast/inline/simple-inline-block.html: Added.
* platform/ios/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237679 268f45cc-cd09-0410-ab3c-d52691b4dbfc
14 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/inline/simple-inline-block-expected.txt [new file with mode: 0644]
LayoutTests/fast/inline/simple-inline-block.html [new file with mode: 0644]
LayoutTests/platform/ios/TestExpectations
Source/WebCore/ChangeLog
Source/WebCore/layout/FormattingContext.h
Source/WebCore/layout/FormattingContextGeometry.cpp
Source/WebCore/layout/inlineformatting/InlineFormattingContext.cpp
Source/WebCore/layout/inlineformatting/InlineFormattingContextGeometry.cpp
Source/WebCore/layout/layouttree/LayoutInlineContainer.cpp
Source/WebCore/layout/layouttree/LayoutInlineContainer.h
Source/WebCore/layout/layouttree/LayoutTreeBuilder.cpp
Tools/ChangeLog
Tools/LayoutReloaded/misc/LFC-passing-tests.txt