Title: [283275] trunk/Source/WebCore
Revision
283275
Author
[email protected]
Date
2021-09-29 16:27:35 -0700 (Wed, 29 Sep 2021)

Log Message

[LFC][IFC] Use the first-line style when measuring text content when applicable
https://bugs.webkit.org/show_bug.cgi?id=230925

Reviewed by Antti Koivisto.

Disable "simplified content measuring" when first-style is present.

* layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::inlineItemWidth const):
* layout/formattingContexts/inline/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (283274 => 283275)


--- trunk/Source/WebCore/ChangeLog	2021-09-29 23:08:05 UTC (rev 283274)
+++ trunk/Source/WebCore/ChangeLog	2021-09-29 23:27:35 UTC (rev 283275)
@@ -1,3 +1,17 @@
+2021-09-29  Alan Bujtas  <[email protected]>
+
+        [LFC][IFC] Use the first-line style when measuring text content when applicable
+        https://bugs.webkit.org/show_bug.cgi?id=230925
+
+        Reviewed by Antti Koivisto.
+
+        Disable "simplified content measuring" when first-style is present.
+
+        * layout/formattingContexts/inline/InlineLineBuilder.cpp:
+        (WebCore::Layout::LineBuilder::inlineItemWidth const):
+        * layout/formattingContexts/inline/InlineTextItem.cpp:
+        (WebCore::Layout::InlineTextItem::createAndAppendTextItems):
+
 2021-09-29  Chris Dumez  <[email protected]>
 
         Use isolated NSURLSessions for each first party registrable domain

Modified: trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp (283274 => 283275)


--- trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp	2021-09-29 23:08:05 UTC (rev 283274)
+++ trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp	2021-09-29 23:27:35 UTC (rev 283275)
@@ -217,9 +217,11 @@
 {
     if (is<InlineTextItem>(inlineItem)) {
         auto& inlineTextItem = downcast<InlineTextItem>(inlineItem);
-        auto& fontCascade = inlineTextItem.layoutBox().style().fontCascade();
-        if (auto contentWidth = inlineTextItem.width())
+        if (auto contentWidth = inlineTextItem.width()) {
+            ASSERT(inlineTextItem.firstLineStyle() == inlineTextItem.style());
             return *contentWidth;
+        }
+        auto& fontCascade = m_isFirstLine ? inlineTextItem.firstLineStyle().fontCascade() : inlineTextItem.style().fontCascade();
         if (!inlineTextItem.isWhitespace() || InlineTextItem::shouldPreserveSpacesAndTabs(inlineTextItem))
             return TextUtil::width(inlineTextItem, fontCascade, contentLogicalLeft);
         return TextUtil::width(inlineTextItem, fontCascade, inlineTextItem.start(), inlineTextItem.start() + 1, contentLogicalLeft);

Modified: trunk/Source/WebCore/layout/formattingContexts/inline/InlineTextItem.cpp (283274 => 283275)


--- trunk/Source/WebCore/layout/formattingContexts/inline/InlineTextItem.cpp	2021-09-29 23:08:05 UTC (rev 283274)
+++ trunk/Source/WebCore/layout/formattingContexts/inline/InlineTextItem.cpp	2021-09-29 23:27:35 UTC (rev 283275)
@@ -88,6 +88,8 @@
     auto inlineItemWidth = [&](auto startPosition, auto length) -> std::optional<InlineLayoutUnit> {
         if (!inlineTextBox.canUseSimplifiedContentMeasuring())
             return { };
+        if (inlineTextBox.style() != inlineTextBox.firstLineStyle())
+            return { };
         return TextUtil::width(inlineTextBox, fontCascade, startPosition, startPosition + length, { });
     };
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to