Title: [246539] trunk/Source/WebCore
Revision
246539
Author
za...@apple.com
Date
2019-06-18 08:23:47 -0700 (Tue, 18 Jun 2019)

Log Message

[LFC][IFC] Line::append() should take care of all the inline types.
https://bugs.webkit.org/show_bug.cgi?id=198961
<rdar://problem/51847712>

Reviewed by Antti Koivisto.

Make all the existing Line::append* functions private.

* layout/FormattingContextGeometry.cpp:
(WebCore::Layout::staticHorizontalPositionForOutOfFlowPositioned): fix a typo.
* layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const):
* layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::append):
* layout/inlineformatting/InlineLine.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (246538 => 246539)


--- trunk/Source/WebCore/ChangeLog	2019-06-18 15:16:33 UTC (rev 246538)
+++ trunk/Source/WebCore/ChangeLog	2019-06-18 15:23:47 UTC (rev 246539)
@@ -1,3 +1,21 @@
+2019-06-18  Zalan Bujtas  <za...@apple.com>
+
+        [LFC][IFC] Line::append() should take care of all the inline types.
+        https://bugs.webkit.org/show_bug.cgi?id=198961
+        <rdar://problem/51847712>
+
+        Reviewed by Antti Koivisto.
+
+        Make all the existing Line::append* functions private.
+
+        * layout/FormattingContextGeometry.cpp:
+        (WebCore::Layout::staticHorizontalPositionForOutOfFlowPositioned): fix a typo.
+        * layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
+        (WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const):
+        * layout/inlineformatting/InlineLine.cpp:
+        (WebCore::Layout::Line::append):
+        * layout/inlineformatting/InlineLine.h:
+
 2019-06-18  Simon Fraser  <simon.fra...@apple.com>
 
         Convert macOS to scroll by changing layer boundsOrigin

Modified: trunk/Source/WebCore/layout/FormattingContextGeometry.cpp (246538 => 246539)


--- trunk/Source/WebCore/layout/FormattingContextGeometry.cpp	2019-06-18 15:16:33 UTC (rev 246538)
+++ trunk/Source/WebCore/layout/FormattingContextGeometry.cpp	2019-06-18 15:23:47 UTC (rev 246539)
@@ -233,7 +233,7 @@
         ASSERT(!container->isPositioned() || layoutBox.isFixedPositioned());
     }
     // Move the static position relative to the padding box. This is very specific to abolutely positioned boxes.
-    auto paddingBoxLeft = layoutState.displayBoxForLayoutBox(containingBlock).paddingBoxTop();
+    auto paddingBoxLeft = layoutState.displayBoxForLayoutBox(containingBlock).paddingBoxLeft();
     return left - paddingBoxLeft;
 }
 

Modified: trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp (246538 => 246539)


--- trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp	2019-06-18 15:16:33 UTC (rev 246538)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp	2019-06-18 15:23:47 UTC (rev 246539)
@@ -143,21 +143,8 @@
         if (uncommittedContent.isEmpty())
             return;
         committedInlineItemCount += uncommittedContent.size();
-        for (auto& uncommittedRun : uncommittedContent.runs()) {
-            auto& inlineItem = uncommittedRun.inlineItem;
-            if (inlineItem.isHardLineBreak())
-                line->appendHardLineBreak(inlineItem);
-            else if (is<InlineTextItem>(inlineItem))
-                line->appendTextContent(downcast<InlineTextItem>(inlineItem), uncommittedRun.logicalWidth);
-            else if (inlineItem.isContainerStart())
-                line->appendInlineContainerStart(inlineItem, uncommittedRun.logicalWidth);
-            else if (inlineItem.isContainerEnd())
-                line->appendInlineContainerEnd(inlineItem, uncommittedRun.logicalWidth);
-            else if (inlineItem.layoutBox().isReplaced())
-                line->appendReplacedInlineBox(inlineItem, uncommittedRun.logicalWidth);
-            else
-                line->appendNonReplacedInlineBox(inlineItem, uncommittedRun.logicalWidth);
-        }
+        for (auto& uncommittedRun : uncommittedContent.runs())
+            line->append(uncommittedRun.inlineItem, uncommittedRun.logicalWidth);
         uncommittedContent.reset();
     };
 

Modified: trunk/Source/WebCore/layout/inlineformatting/InlineLine.cpp (246538 => 246539)


--- trunk/Source/WebCore/layout/inlineformatting/InlineLine.cpp	2019-06-18 15:16:33 UTC (rev 246538)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineLine.cpp	2019-06-18 15:23:47 UTC (rev 246539)
@@ -193,6 +193,21 @@
     return trimmableWidth;
 }
 
+void Line::append(const InlineItem& inlineItem, LayoutUnit logicalWidth)
+{
+    if (inlineItem.isHardLineBreak())
+        return appendHardLineBreak(inlineItem);
+    if (is<InlineTextItem>(inlineItem))
+        return appendTextContent(downcast<InlineTextItem>(inlineItem), logicalWidth);
+    if (inlineItem.isContainerStart())
+        return appendInlineContainerStart(inlineItem, logicalWidth);
+    if (inlineItem.isContainerEnd())
+        return appendInlineContainerEnd(inlineItem, logicalWidth);
+    if (inlineItem.layoutBox().isReplaced())
+        return appendReplacedInlineBox(inlineItem, logicalWidth);
+    appendNonReplacedInlineBox(inlineItem, logicalWidth);
+}
+
 void Line::appendNonBreakableSpace(const InlineItem& inlineItem, const Display::Rect& logicalRect)
 {
     m_content->runs().append(std::make_unique<Content::Run>(inlineItem, logicalRect, Content::Run::TextContext { }, false, false));

Modified: trunk/Source/WebCore/layout/inlineformatting/InlineLine.h (246538 => 246539)


--- trunk/Source/WebCore/layout/inlineformatting/InlineLine.h	2019-06-18 15:16:33 UTC (rev 246538)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineLine.h	2019-06-18 15:23:47 UTC (rev 246539)
@@ -85,13 +85,7 @@
     };
     std::unique_ptr<Content> close();
 
-    void appendTextContent(const InlineTextItem&, LayoutUnit logicalWidth);
-    void appendNonReplacedInlineBox(const InlineItem&, LayoutUnit logicalWidth);
-    void appendReplacedInlineBox(const InlineItem&, LayoutUnit logicalWidth);
-    void appendInlineContainerStart(const InlineItem&, LayoutUnit logicalWidth);
-    void appendInlineContainerEnd(const InlineItem&, LayoutUnit logicalWidth);
-    void appendHardLineBreak(const InlineItem&);
-
+    void append(const InlineItem&, LayoutUnit logicalWidth);
     bool hasContent() const { return !isVisuallyEmpty(); }
 
     LayoutUnit trailingTrimmableWidth() const;
@@ -118,6 +112,13 @@
     LayoutUnit baselineOffset() const { return m_baseline.ascent + m_baselineTop; }
 
     void appendNonBreakableSpace(const InlineItem&, const Display::Rect& logicalRect);
+    void appendTextContent(const InlineTextItem&, LayoutUnit logicalWidth);
+    void appendNonReplacedInlineBox(const InlineItem&, LayoutUnit logicalWidth);
+    void appendReplacedInlineBox(const InlineItem&, LayoutUnit logicalWidth);
+    void appendInlineContainerStart(const InlineItem&, LayoutUnit logicalWidth);
+    void appendInlineContainerEnd(const InlineItem&, LayoutUnit logicalWidth);
+    void appendHardLineBreak(const InlineItem&);
+
     void removeTrailingTrimmableContent();
 
     void adjustBaselineAndLineHeight(const InlineItem&, LayoutUnit runHeight);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to