Chromium Code Reviews| Index: third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
| diff --git a/third_party/WebKit/Source/core/layout/LayoutBlock.cpp b/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
| index 533e7795aa74dc62a7986affcf706dca4ab6783c..e55c3ab87b8f8bda61bc6ea9878968e41649887d 100644 |
| --- a/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
| +++ b/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
| @@ -1690,7 +1690,12 @@ int LayoutBlock::baselinePosition(FontBaseline baselineType, |
| // Note that inline-block counts as replaced here. |
| ASSERT(linePositionMode == PositionOfInteriorLineBoxes); |
| - const FontMetrics& fontMetrics = style(firstLine)->getFontMetrics(); |
| + const SimpleFontData* fontData = style(firstLine)->font().primaryFont(); |
| + DCHECK(fontData); |
| + if (!fontData) |
| + return -1; |
|
wkorman
2016/10/13 22:54:30
Is -1 the correct error value? I see LayoutTheme::
eae
2016/10/13 23:09:58
Yeah, -1 is the magic value for unknown baseline.
|
| + |
| + const FontMetrics& fontMetrics = fontData->getFontMetrics(); |
| return (fontMetrics.ascent(baselineType) + |
| (lineHeight(firstLine, direction, linePositionMode) - |
| fontMetrics.height()) / |
| @@ -1759,8 +1764,9 @@ int LayoutBlock::inlineBlockBaseline(LineDirectionMode lineDirection) const { |
| .toInt(); // Translate to our coordinate space. |
| } |
| } |
| - if (!haveNormalFlowChild && hasLineIfEmpty()) { |
| - const FontMetrics& fontMetrics = firstLineStyle()->getFontMetrics(); |
| + const SimpleFontData* fontData = firstLineStyle()->font().primaryFont(); |
| + if (!haveNormalFlowChild && hasLineIfEmpty() && fontData) { |
|
wkorman
2016/10/13 22:54:30
Perhaps worth putting fontData first to save on ch
eae
2016/10/13 23:09:58
Acknowledged.
|
| + const FontMetrics& fontMetrics = fontData->getFontMetrics(); |
| return (fontMetrics.ascent() + |
| (lineHeight(true, lineDirection, PositionOfInteriorLineBoxes) - |
| fontMetrics.height()) / |