aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/layout/inline.rs9
-rw-r--r--tests/wpt/metadata-css/css-transforms-1_dev/html/transform-input-017.htm.ini5
-rw-r--r--tests/wpt/metadata-css/css-transforms-1_dev/html/transform-input-018.htm.ini4
-rw-r--r--tests/wpt/metadata-css/css21_dev/html4/position-relative-035.htm.ini4
4 files changed, 13 insertions, 9 deletions
diff --git a/components/layout/inline.rs b/components/layout/inline.rs
index c95012a6f2a..3e3e6506cb7 100644
--- a/components/layout/inline.rs
+++ b/components/layout/inline.rs
@@ -1928,9 +1928,14 @@ impl InlineMetrics {
#[inline]
pub fn from_font_metrics(font_metrics: &FontMetrics, line_height: Au) -> InlineMetrics {
let leading = line_height - (font_metrics.ascent + font_metrics.descent);
+ // Calculating the half leading here and then using leading - half_leading
+ // below ensure that we don't introduce any rounding accuracy issues here.
+ // The invariant is that the resulting total line height must exactly
+ // equal the requested line_height.
+ let half_leading = leading.scale_by(0.5);
InlineMetrics {
- block_size_above_baseline: font_metrics.ascent + leading.scale_by(0.5),
- depth_below_baseline: font_metrics.descent + leading.scale_by(0.5),
+ block_size_above_baseline: font_metrics.ascent + half_leading,
+ depth_below_baseline: font_metrics.descent + leading - half_leading,
ascent: font_metrics.ascent,
}
}
diff --git a/tests/wpt/metadata-css/css-transforms-1_dev/html/transform-input-017.htm.ini b/tests/wpt/metadata-css/css-transforms-1_dev/html/transform-input-017.htm.ini
deleted file mode 100644
index 2fbc2d5d73d..00000000000
--- a/tests/wpt/metadata-css/css-transforms-1_dev/html/transform-input-017.htm.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[transform-input-017.htm]
- type: reftest
- expected:
- if os == "linux": PASS
- FAIL
diff --git a/tests/wpt/metadata-css/css-transforms-1_dev/html/transform-input-018.htm.ini b/tests/wpt/metadata-css/css-transforms-1_dev/html/transform-input-018.htm.ini
index 23299ad9e96..1c005ae8a57 100644
--- a/tests/wpt/metadata-css/css-transforms-1_dev/html/transform-input-018.htm.ini
+++ b/tests/wpt/metadata-css/css-transforms-1_dev/html/transform-input-018.htm.ini
@@ -1,3 +1,5 @@
[transform-input-018.htm]
type: reftest
- expected: FAIL
+ expected:
+ if os == "mac": PASS
+ FAIL
diff --git a/tests/wpt/metadata-css/css21_dev/html4/position-relative-035.htm.ini b/tests/wpt/metadata-css/css21_dev/html4/position-relative-035.htm.ini
index 9cb4b4c28f7..5587e47e1bc 100644
--- a/tests/wpt/metadata-css/css21_dev/html4/position-relative-035.htm.ini
+++ b/tests/wpt/metadata-css/css21_dev/html4/position-relative-035.htm.ini
@@ -1,3 +1,5 @@
[position-relative-035.htm]
type: reftest
- expected: FAIL
+ expected:
+ if os == "linux": PASS
+ FAIL