Chromium Code Reviews| Index: third_party/WebKit/Source/core/layout/LayoutInline.cpp |
| diff --git a/third_party/WebKit/Source/core/layout/LayoutInline.cpp b/third_party/WebKit/Source/core/layout/LayoutInline.cpp |
| index ea9c613c8b79173161b52e40db1e856924363531..522ca1c5aa55e84a64c2e247ae8b5e6fdd202302 100644 |
| --- a/third_party/WebKit/Source/core/layout/LayoutInline.cpp |
| +++ b/third_party/WebKit/Source/core/layout/LayoutInline.cpp |
| @@ -618,8 +618,18 @@ static inline void computeItemTopHeight(const LayoutInline* container, |
| LayoutUnit* top, |
| LayoutUnit* height) { |
| bool firstLine = rootBox.isFirstLineStyle(); |
| - auto metrics = rootBox.getLineLayoutItem().style(firstLine)->getFontMetrics(); |
| - auto containerMetrics = container->style(firstLine)->getFontMetrics(); |
| + const SimpleFontData* fontData = |
| + rootBox.getLineLayoutItem().style(firstLine)->font().primaryFont(); |
| + const SimpleFontData* containerFontData = |
| + container->style(firstLine)->font().primaryFont(); |
| + DCHECK(fontData && containerFontData); |
| + if (!fontData || !containerFontData) { |
| + *top = LayoutUnit(); |
| + *height = LayoutUnit(); |
| + return; |
| + } |
| + auto metrics = fontData->getFontMetrics(); |
| + auto containerMetrics = containerFontData->getFontMetrics(); |
| *top = rootBox.logicalTop() + (metrics.ascent() - containerMetrics.ascent()); |
| *height = LayoutUnit(containerMetrics.height()); |
| } |
| @@ -1340,7 +1350,11 @@ int LayoutInline::baselinePosition(FontBaseline baselineType, |
| LineDirectionMode direction, |
| LinePositionMode linePositionMode) const { |
| ASSERT(linePositionMode == PositionOnContainingLine); |
| - const FontMetrics& fontMetrics = style(firstLine)->getFontMetrics(); |
| + const SimpleFontData* fontData = style(firstLine)->font().primaryFont(); |
| + DCHECK(fontData); |
| + if (!fontData) |
| + return 0; |
|
wkorman
2016/10/13 22:54:30
But then here 0 is the right value?
eae
2016/10/13 23:09:58
Changed to -1, good catch.
|
| + const FontMetrics& fontMetrics = fontData->getFontMetrics(); |
| return (fontMetrics.ascent(baselineType) + |
| (lineHeight(firstLine, direction, linePositionMode) - |
| fontMetrics.height()) / |