[LFC] Move sizing/positioning logic to helper classes
authorzalan@apple.com <zalan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 May 2018 16:56:12 +0000 (16:56 +0000)
committerzalan@apple.com <zalan@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 23 May 2018 16:56:12 +0000 (16:56 +0000)
commit7b04fd80d2e17e63fcee944bbd00aa4cdd17553d
treeff7fea6161cc4a46d4886d752181f7ab83a637f5
parent4059031135f42b4dab634559e7656e0dd36736f5
[LFC] Move sizing/positioning logic to helper classes
https://bugs.webkit.org/show_bug.cgi?id=185898

Reviewed by Antti Koivisto.

The idea here is to move all the sizing and positioning logic to helper classes so that
the formatting context code stays lean.
This is similar to the dedicated BlockMarginCollapse class for the collapsing logic.
The helper classes have only static functions. These static functions do not mutate the associated DisplayBoxes,
but instead they simply retun the computed values.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeOutOfFlowPosition const):
(WebCore::Layout::FormattingContext::computeOutOfFlowWidth const):
(WebCore::Layout::FormattingContext::computeFloatingWidth const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHeight const):
(WebCore::Layout::FormattingContext::computeFloatingHeight const):
(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedHeight const): Deleted.
(WebCore::Layout::FormattingContext::computeFloatingNonReplacedHeight const): Deleted.
(WebCore::Layout::FormattingContext::computeReplacedHeight const): Deleted.
(WebCore::Layout::FormattingContext::computeReplacedWidth const): Deleted.
(WebCore::Layout::FormattingContext::contentHeightForFormattingContextRoot const): Deleted.
(WebCore::Layout::FormattingContext::computeFloatingNonReplacedWidth const): Deleted.
(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedWidth const): Deleted.
(WebCore::Layout::FormattingContext::computeOutOfFlowReplacedHeight const): Deleted.
(WebCore::Layout::FormattingContext::computeOutOfFlowReplacedWidth const): Deleted.
(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedPosition const): Deleted.
(WebCore::Layout::FormattingContext::computeOutOfFlowReplacedPosition const): Deleted.
(WebCore::Layout::FormattingContext::shrinkToFitWidth const): Deleted.
* layout/FormattingContext.h:
* layout/FormattingContextGeometry.cpp: Copied from Source/WebCore/layout/FormattingContext.cpp.
(WebCore::Layout::contentHeightForFormattingContextRoot):
(WebCore::Layout::shrinkToFitWidth):
(WebCore::Layout::FormattingContextGeometry::outOfFlowNonReplacedHeight):
(WebCore::Layout::FormattingContextGeometry::outOfFlowNonReplacedWidth):
(WebCore::Layout::FormattingContextGeometry::outOfFlowReplacedHeight):
(WebCore::Layout::FormattingContextGeometry::outOfFlowReplacedWidth):
(WebCore::Layout::FormattingContextGeometry::floatingNonReplacedHeight):
(WebCore::Layout::FormattingContextGeometry::floatingNonReplacedWidth):
(WebCore::Layout::FormattingContextGeometry::floatingReplacedHeight):
(WebCore::Layout::FormattingContextGeometry::floatingReplacedWidth):
(WebCore::Layout::FormattingContextGeometry::outOfFlowNonReplacedPosition):
(WebCore::Layout::FormattingContextGeometry::outOfFlowReplacedPosition):
(WebCore::Layout::FormattingContextGeometry::replacedHeight):
(WebCore::Layout::FormattingContextGeometry::replacedWidth):
* layout/FormattingContextGeometry.h: Copied from Source/WebCore/layout/blockformatting/BlockFormattingContext.h.
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeStaticPosition const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeight const):
(WebCore::Layout::BlockFormattingContext::computeInFlowWidth const):
(WebCore::Layout::BlockFormattingContext::computeInFlowNonReplacedWidth const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeInFlowNonReplacedHeight const): Deleted.
* layout/blockformatting/BlockFormattingContext.h:
* layout/blockformatting/BlockFormattingContextGeometry.cpp: Added.
(WebCore::Layout::BlockFormattingContextGeometry::inFlowNonReplacedHeight):
(WebCore::Layout::BlockFormattingContextGeometry::inFlowNonReplacedWidth):
(WebCore::Layout::BlockFormattingContextGeometry::inFlowReplacedHeight):
(WebCore::Layout::BlockFormattingContextGeometry::inFlowReplacedWidth):
(WebCore::Layout::BlockFormattingContextGeometry::staticPosition):
* layout/blockformatting/BlockFormattingContextGeometry.h: Copied from Source/WebCore/layout/blockformatting/BlockFormattingContext.h.
* layout/displaytree/DisplayBox.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232114 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/Sources.txt
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/layout/FormattingContext.cpp
Source/WebCore/layout/FormattingContext.h
Source/WebCore/layout/FormattingContextGeometry.cpp [new file with mode: 0644]
Source/WebCore/layout/blockformatting/BlockFormattingContext.cpp
Source/WebCore/layout/blockformatting/BlockFormattingContext.h
Source/WebCore/layout/blockformatting/BlockFormattingContextGeometry.cpp [new file with mode: 0644]
Source/WebCore/layout/displaytree/DisplayBox.h