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