Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(183)

Unified Diff: third_party/WebKit/Source/platform/fonts/SimpleFontData.h

Issue 2643413002: Fix 'text-underline-position: under' to use em height ascent/descent (Closed)
Patch Set: eae review Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698