Index: third_party/WebKit/Source/platform/fonts/SimpleFontData.h |
diff --git a/third_party/WebKit/Source/platform/fonts/SimpleFontData.h b/third_party/WebKit/Source/platform/fonts/SimpleFontData.h |
index 6d81bfc6f2d3d1f1f12a5e2b7010728d59d8e216..5b1749043521e77eae16ab957c264b963a2d0788 100644 |
--- a/third_party/WebKit/Source/platform/fonts/SimpleFontData.h |
+++ b/third_party/WebKit/Source/platform/fonts/SimpleFontData.h |
@@ -118,6 +118,11 @@ class PLATFORM_EXPORT SimpleFontData : public FontData { |
return GetFontMetrics().FloatHeight() - PlatformData().size(); |
} |
+ // "em height" metrics. |
+ // https://drafts.css-houdini.org/font-metrics-api-1/#fontmetrics |
+ LayoutUnit EmHeightAscent(FontBaseline = kAlphabeticBaseline) const; |
+ LayoutUnit EmHeightDescent(FontBaseline = kAlphabeticBaseline) const; |
+ |
float MaxCharWidth() const { return max_char_width_; } |
void SetMaxCharWidth(float max_char_width) { |
max_char_width_ = max_char_width; |
@@ -187,6 +192,9 @@ class PLATFORM_EXPORT SimpleFontData : public FontData { |
PassRefPtr<SimpleFontData> CreateScaledFontData(const FontDescription&, |
float scale_factor) const; |
+ void ComputeEmHeightMetrics() const; |
+ bool NormalizeEmHeightMetrics(float, float) const; |
+ |
FontMetrics font_metrics_; |
float max_char_width_; |
float avg_char_width_; |
@@ -231,6 +239,9 @@ class PLATFORM_EXPORT SimpleFontData : public FontData { |
unsigned visual_overflow_inflation_for_ascent_ : 2; |
unsigned visual_overflow_inflation_for_descent_ : 2; |
+ mutable LayoutUnit em_height_ascent_; |
+ mutable LayoutUnit em_height_descent_; |
+ |
// See discussion on crbug.com/631032 and Skiaissue |
// https://bugs.chromium.org/p/skia/issues/detail?id=5328 : |
// On Mac we're still using path based glyph metrics, and they seem to be |