diff --git a/LayoutTests/fast/inline/line-box-contain-with-line-height-expected.html b/LayoutTests/fast/inline/line-box-contain-with-line-height-expected.html
new file mode 100644
index 000000000000..4aa67e47aa37
--- /dev/null
+++ b/LayoutTests/fast/inline/line-box-contain-with-line-height-expected.html
@@ -0,0 +1,13 @@
+
+
+
 
diff --git a/LayoutTests/fast/inline/line-box-contain-with-line-height.html b/LayoutTests/fast/inline/line-box-contain-with-line-height.html
new file mode 100644
index 000000000000..dee694480284
--- /dev/null
+++ b/LayoutTests/fast/inline/line-box-contain-with-line-height.html
@@ -0,0 +1,17 @@
+
+
+
diff --git a/Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp b/Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp
index 053b11ebf1ae..4687d0f5c422 100644
--- a/Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp
+++ b/Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp
@@ -470,9 +470,8 @@ void LineBoxBuilder::adjustInlineBoxHeightsForLineBoxContainIfApplicable(LineBox
if (!inlineLevelBox.isInlineBox())
continue;
auto& inlineBoxGeometry = formattingContext().geometryForBox(inlineLevelBox.layoutBox());
- auto layoutBounds = *inlineLevelBox.layoutBounds();
- auto ascent = layoutBounds.ascent + inlineBoxGeometry.marginBorderAndPaddingBefore();
- auto descent = layoutBounds.descent + inlineBoxGeometry.marginBorderAndPaddingAfter();
+ auto ascent = inlineLevelBox.ascent() + inlineBoxGeometry.marginBorderAndPaddingBefore();
+ auto descent = valueOrDefault(inlineLevelBox.descent()) + inlineBoxGeometry.marginBorderAndPaddingAfter();
inlineBoxBoundsMap.set(&inlineLevelBox, TextUtil::EnclosingAscentDescent { ascent, descent });
}
}
@@ -481,12 +480,6 @@ void LineBoxBuilder::adjustInlineBoxHeightsForLineBoxContainIfApplicable(LineBox
// Assign font based layout bounds to all inline boxes.
auto ensureFontMetricsBasedHeight = [&] (auto& inlineBox) {
ASSERT(inlineBox.isInlineBox());
- if (inlineBox.isPreferredLineHeightFontMetricsBased()) {
- auto fontMetricsBaseLayoutBounds = *inlineBox.layoutBounds();
- inlineBoxBoundsMap.set(&inlineBox, TextUtil::EnclosingAscentDescent { fontMetricsBaseLayoutBounds.ascent, fontMetricsBaseLayoutBounds.descent });
- return;
- }
-
auto ascentAndDescent = primaryFontMetricsForInlineBox(inlineBox, lineBox.baselineType());
InlineLayoutUnit lineGap = inlineBox.primarymetricsOfPrimaryFont().lineSpacing();
auto halfLeading = (lineGap - ascentAndDescent.height()) / 2;