- Revision
- 270248
- Author
- [email protected]
- Date
- 2020-11-30 09:39:41 -0800 (Mon, 30 Nov 2020)
Log Message
getComputedStyle rounds lineHeight to nearest pixel
https://bugs.webkit.org/show_bug.cgi?id=216601
Patch by Tyler Wilcock <[email protected]> on 2020-11-30
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
* web-platform-tests/css/css-fonts/parsing/font-computed-expected.txt:
Update test reflecting the fact that serialization of `line-height` from
`getComputedStyle` is now represented fractionally (when appropriate).
Prior to this patch, `line-height` serialization was always an integer value.
Source/WebCore:
When serializing `line-height` for `getComputedStyle`, ensure the
value can be represented fractionally (when appropriate). Prior to this
patch, `line-height` serialization was always an integer value. Per
spec, the used value of `line-height` can be a `<number>` value, which
is fractional. Gecko and Chromium allow fractional `line-height`s to be
returned from `getComputedStyle`, further confirming this.
https://drafts.csswg.org/css2/#propdef-line-height
Test: fast/css/line-height-get-computed-style.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::lineHeightFromStyle): Cast result to `double` instead of
`int` since `line-height` can be represented fractionally.
LayoutTests:
Add test ensuring serialization of `line-height` from
`getComputedStyle` is represented fractionally (when appropriate).
Prior to this patch, `line-height` serialization was always an integer value.
The `line-height-rounding.html` test has been removed, as it expected
`line-height` to serialize as an integer, which seems wrong
considering the used value for `line-height` can be a `<number>`
(which is fractional). Gecko and Chromium allow fractional
`line-height`s to be returned from `getComputedStyle`, further
confirming this.
https://drafts.csswg.org/css2/#propdef-line-height
* fast/css/line-height-get-computed-style-expected.txt: Added.
* fast/css/line-height-get-computed-style.html: Added.
* fast/css/line-height-rounding-expected.txt: Removed.
* fast/css/line-height-rounding.html: Removed.
Modified Paths
Added Paths
Removed Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (270247 => 270248)
--- trunk/LayoutTests/ChangeLog 2020-11-30 17:07:35 UTC (rev 270247)
+++ trunk/LayoutTests/ChangeLog 2020-11-30 17:39:41 UTC (rev 270248)
@@ -1,3 +1,28 @@
+2020-11-30 Tyler Wilcock <[email protected]>
+
+ getComputedStyle rounds lineHeight to nearest pixel
+ https://bugs.webkit.org/show_bug.cgi?id=216601
+
+ Reviewed by Simon Fraser.
+
+ Add test ensuring serialization of `line-height` from
+ `getComputedStyle` is represented fractionally (when appropriate).
+ Prior to this patch, `line-height` serialization was always an integer value.
+
+ The `line-height-rounding.html` test has been removed, as it expected
+ `line-height` to serialize as an integer, which seems wrong
+ considering the used value for `line-height` can be a `<number>`
+ (which is fractional). Gecko and Chromium allow fractional
+ `line-height`s to be returned from `getComputedStyle`, further
+ confirming this.
+
+ https://drafts.csswg.org/css2/#propdef-line-height
+
+ * fast/css/line-height-get-computed-style-expected.txt: Added.
+ * fast/css/line-height-get-computed-style.html: Added.
+ * fast/css/line-height-rounding-expected.txt: Removed.
+ * fast/css/line-height-rounding.html: Removed.
+
2020-11-30 Lauro Moura <[email protected]>
[GLIB] Properly garden webrtc crashes
Added: trunk/LayoutTests/fast/css/line-height-get-computed-style-expected.txt (0 => 270248)
--- trunk/LayoutTests/fast/css/line-height-get-computed-style-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/css/line-height-get-computed-style-expected.txt 2020-11-30 17:39:41 UTC (rev 270248)
@@ -0,0 +1,13 @@
+
+PASS with font-size: 10px, #target.style['line-height'] = 1e+26 should result in a used line-height of 9.999999146971785e+26px
+PASS with font-size: 10px, #target.style['line-height'] = 2.53821 should result in a used line-height of 25.382099151611328px
+PASS with font-size: 10px, #target.style['line-height'] = 2.6666667 should result in a used line-height of 26.666664123535156px
+PASS with font-size: 10px, #target.style['line-height'] = 2.123456789123457 should result in a used line-height of 21.234567642211914px
+PASS with font-size: 10px, #target.style['line-height'] = 2.5 should result in a used line-height of 25px
+PASS with font-size: 10px, #target.style['line-height'] = 2 should result in a used line-height of 20px
+PASS with font-size: 10px, #target.style['line-height'] = 1.05 should result in a used line-height of 10.5px
+PASS with font-size: 10px, #target.style['line-height'] = 1.049 should result in a used line-height of 10.489999771118164px
+PASS with font-size: 10px, #target.style['line-height'] = 1.0491 should result in a used line-height of 10.49100112915039px
+PASS with font-size: 10px, #target.style['line-height'] = 0 should result in a used line-height of 0px
+PASS with font-size: 10px, #target.style['line-height'] = 1 should result in a used line-height of 10px
+
Added: trunk/LayoutTests/fast/css/line-height-get-computed-style.html (0 => 270248)
--- trunk/LayoutTests/fast/css/line-height-get-computed-style.html (rev 0)
+++ trunk/LayoutTests/fast/css/line-height-get-computed-style.html 2020-11-30 17:39:41 UTC (rev 270248)
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>Test line-height `getComputedStyle` serialization</title>
+ <style>
+ #target {
+ font-family: Ahem;
+ font-size: 10px;
+ }
+ </style>
+</head>
+<body>
+<p id="target">text of font-size 10px</p>
+<script src=""
+<script src=""
+<script>
+ let target = document.getElementById('target')
+ const test_line_height = (line_height_percent, expected_line_height) => {
+ test(() => {
+ target.style['line-height'] = line_height_percent
+ const actual_line_height = window.getComputedStyle(target)['line-height']
+ assert_equals(actual_line_height, expected_line_height)
+ }, `with font-size: 10px, #target.style['line-height'] = ${line_height_percent} should result in a used line-height of ${expected_line_height}`)
+ }
+
+ // Per spec, CSS numbers shouldn't serialize with exponents. When the following bug is fixed, this expectation will
+ // need to be updated. https://bugs.webkit.org/show_bug.cgi?id=218880
+ test_line_height(1e+26, '9.999999146971785e+26px')
+
+ // Per spec, CSS numbers shouldn't serialize with more than 6 digits. When the following bug is fixed, the
+ // offending expectations below will need to be updated. https://bugs.webkit.org/show_bug.cgi?id=218880
+ test_line_height(2.53821, '25.382099151611328px')
+ test_line_height(2.6666667, '26.666664123535156px')
+ // 20 decimals.
+ test_line_height(2.12345678912345678912, '21.234567642211914px')
+ test_line_height(2.5, '25px')
+ test_line_height(2, '20px')
+ test_line_height(1.05, '10.5px')
+ test_line_height(1.049, '10.489999771118164px')
+ test_line_height(1.0491, '10.49100112915039px')
+ test_line_height(0, '0px')
+ test_line_height(1, '10px')
+
+ target.remove()
+</script>
+</body>
+</html>
Deleted: trunk/LayoutTests/fast/css/line-height-rounding-expected.txt (270247 => 270248)
--- trunk/LayoutTests/fast/css/line-height-rounding-expected.txt 2020-11-30 17:07:35 UTC (rev 270247)
+++ trunk/LayoutTests/fast/css/line-height-rounding-expected.txt 2020-11-30 17:39:41 UTC (rev 270248)
@@ -1,5 +0,0 @@
-This tests non-integer line height is rounded to the nearest integer.
-
-Test failed:
-FAIL: font size: 10px; line height percent: 1.05; expected line height: 11px; actual line height: 10px
-
Deleted: trunk/LayoutTests/fast/css/line-height-rounding.html (270247 => 270248)
--- trunk/LayoutTests/fast/css/line-height-rounding.html 2020-11-30 17:07:35 UTC (rev 270247)
+++ trunk/LayoutTests/fast/css/line-height-rounding.html 2020-11-30 17:39:41 UTC (rev 270248)
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
-<style type="text/css">
-</style>
-
-<script>
-if (window.testRunner)
- testRunner.dumpAsText();
-
-function checkLineHeight(fontSize, lineHeightPercent, expectedLineHeight) {
- var testElement = document.getElementById('testElement');
- testElement.style.fontSize = fontSize;
- testElement.style.lineHeight = lineHeightPercent;
-
- var style = document.defaultView.getComputedStyle(testElement, null);
- var actualLineHeight = style.getPropertyValue('line-height');
- if (actualLineHeight != expectedLineHeight) {
- return "FAIL: font size: " + fontSize +
- "; line height percent: " + lineHeightPercent +
- "; expected line height: " + expectedLineHeight +
- "; actual line height: " + actualLineHeight + "<br>";
- }
-
- return "";
-}
-
-function test() {
- var message = checkLineHeight("10px", 1.05, '11px'); // 10*1.05 = 10.50
- message += checkLineHeight("10px", 1.049, '10px'); // 10*1.049 = 10.49
- message += checkLineHeight("10px", 0, '0px'); // 10*0 = 0
- message += checkLineHeight("10px", 1, '10px'); // 10*1.00 = 10.00
-
- if (message != "")
- document.getElementById("results").innerHTML = "Test failed:<br>" + message;
- else
- document.getElementById("results").innerHTML = "Test passed.";
-
- document.getElementById('testElement').innerHTML = "";
-}
-
-</script>
-</head>
-<body _onload_="test()">
- <p>This tests non-integer line height is rounded to the nearest integer.</p>
- <p id='testElement'>test data</p>
- <div id='results'></div>
-</body>
-</html>
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (270247 => 270248)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2020-11-30 17:07:35 UTC (rev 270247)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2020-11-30 17:39:41 UTC (rev 270248)
@@ -1,3 +1,15 @@
+2020-11-30 Tyler Wilcock <[email protected]>
+
+ getComputedStyle rounds lineHeight to nearest pixel
+ https://bugs.webkit.org/show_bug.cgi?id=216601
+
+ Reviewed by Simon Fraser.
+
+ * web-platform-tests/css/css-fonts/parsing/font-computed-expected.txt:
+ Update test reflecting the fact that serialization of `line-height` from
+ `getComputedStyle` is now represented fractionally (when appropriate).
+ Prior to this patch, `line-height` serialization was always an integer value.
+
2020-11-30 Sergio Villar Senin <[email protected]>
[css-flex] Import flex-aspect-ratio-img-* tests
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-computed-expected.txt (270247 => 270248)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-computed-expected.txt 2020-11-30 17:07:35 UTC (rev 270247)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-computed-expected.txt 2020-11-30 17:39:41 UTC (rev 270248)
@@ -7,7 +7,7 @@
PASS status-bar should be a supported system font.
FAIL Property font value 'xx-small serif' assert_equals: expected "9px serif" but got "normal normal normal normal 9px/normal serif"
FAIL Property font value 'normal medium/normal sans-serif' assert_equals: expected "16px sans-serif" but got "normal normal normal normal 16px/normal sans-serif"
-FAIL Property font value 'normal normal xx-large/1.2 cursive' assert_equals: expected "32px / 38px cursive" but got "normal normal normal normal 32px/38px cursive"
+FAIL Property font value 'normal normal xx-large/1.2 cursive' assert_equals: expected "32px / 38.400001525878906px cursive" but got "normal normal normal normal 32px/38.400001525878906px cursive"
FAIL Property font value 'normal normal normal larger/calc(120% + 1.2em) fantasy' assert_equals: expected "48px / normal fantasy" but got "normal normal normal normal 48px/normal fantasy"
FAIL Property font value 'normal normal normal normal smaller monospace' assert_equals: expected "33.33333206176758px monospace" but got "normal normal normal normal 33.33333206176758px/normal monospace"
FAIL Property font value 'normal normal normal italic 10px/normal Menu' assert_true: 'normal normal normal italic 10px/normal Menu' is a supported value for font. expected true got false
@@ -63,19 +63,19 @@
FAIL Property font value 'normal small-caps italic lighter calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"' assert_true: 'normal small-caps italic lighter calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"' is a supported value for font. expected true got false
FAIL Property font value 'normal small-caps italic extra-condensed xx-small serif' assert_true: 'normal small-caps italic extra-condensed xx-small serif' is a supported value for font. expected true got false
FAIL Property font value 'normal small-caps 100 medium/normal sans-serif' assert_equals: expected "small-caps 100 16px sans-serif" but got "normal small-caps 100 normal 16px/normal sans-serif"
-FAIL Property font value 'normal small-caps 900 normal xx-large/1.2 cursive' assert_equals: expected "small-caps 900 32px / 38px cursive" but got "normal small-caps 900 normal 32px/38px cursive"
+FAIL Property font value 'normal small-caps 900 normal xx-large/1.2 cursive' assert_equals: expected "small-caps 900 32px / 38.400001525878906px cursive" but got "normal small-caps 900 normal 32px/38.400001525878906px cursive"
FAIL Property font value 'normal small-caps bold italic larger/calc(120% + 1.2em) fantasy' assert_true: 'normal small-caps bold italic larger/calc(120% + 1.2em) fantasy' is a supported value for font. expected true got false
FAIL Property font value 'normal small-caps bolder condensed smaller monospace' assert_equals: expected "small-caps 900 condensed 33.33333206176758px monospace" but got "normal small-caps 900 condensed 33.33333206176758px/normal monospace"
FAIL Property font value 'normal small-caps semi-condensed 10px/normal Menu' assert_equals: expected "small-caps semi-condensed 10px Menu" but got "normal small-caps normal semi-condensed 10px/normal Menu"
-FAIL Property font value 'normal small-caps semi-expanded normal 20%/1.2 "Non-Generic Example Family Name"' assert_equals: expected "small-caps semi-expanded 8px / 9px \"Non-Generic Example Family Name\"" but got "normal small-caps normal semi-expanded 8px/9px \"Non-Generic Example Family Name\""
+FAIL Property font value 'normal small-caps semi-expanded normal 20%/1.2 "Non-Generic Example Family Name"' assert_equals: expected "small-caps semi-expanded 8px / 9.600000381469727px \"Non-Generic Example Family Name\"" but got "normal small-caps normal semi-expanded 8px/9.600000381469727px \"Non-Generic Example Family Name\""
FAIL Property font value 'normal small-caps expanded italic calc(30% - 40px)/calc(120% + 1.2em) serif' assert_true: 'normal small-caps expanded italic calc(30% - 40px)/calc(120% + 1.2em) serif' is a supported value for font. expected true got false
FAIL Property font value 'normal small-caps extra-expanded lighter xx-small sans-serif' assert_equals: expected "small-caps bold extra-expanded 9px sans-serif" but got "normal small-caps bold extra-expanded 9px/normal sans-serif"
FAIL Property font value 'normal 100 medium/normal cursive' assert_equals: expected "100 16px cursive" but got "normal normal 100 normal 16px/normal cursive"
-FAIL Property font value 'normal 900 normal xx-large/1.2 fantasy' assert_equals: expected "900 32px / 38px fantasy" but got "normal normal 900 normal 32px/38px fantasy"
+FAIL Property font value 'normal 900 normal xx-large/1.2 fantasy' assert_equals: expected "900 32px / 38.400001525878906px fantasy" but got "normal normal 900 normal 32px/38.400001525878906px fantasy"
FAIL Property font value 'normal bold normal normal larger/calc(120% + 1.2em) monospace' assert_equals: expected "bold 48px / normal monospace" but got "normal normal bold normal 48px/normal monospace"
FAIL Property font value 'normal bolder normal italic smaller Menu' assert_true: 'normal bolder normal italic smaller Menu' is a supported value for font. expected true got false
FAIL Property font value 'normal lighter normal small-caps 10px/normal "Non-Generic Example Family Name"' assert_true: 'normal lighter normal small-caps 10px/normal "Non-Generic Example Family Name"' is a supported value for font. expected true got false
-FAIL Property font value 'normal 100 normal ultra-expanded 20%/1.2 serif' assert_equals: expected "100 ultra-expanded 8px / 9px serif" but got "normal normal 100 ultra-expanded 8px/9px serif"
+FAIL Property font value 'normal 100 normal ultra-expanded 20%/1.2 serif' assert_equals: expected "100 ultra-expanded 8px / 9.600000381469727px serif" but got "normal normal 100 ultra-expanded 8px/9.600000381469727px serif"
FAIL Property font value 'normal 900 italic calc(30% - 40px)/calc(120% + 1.2em) sans-serif' assert_true: 'normal 900 italic calc(30% - 40px)/calc(120% + 1.2em) sans-serif' is a supported value for font. expected true got false
FAIL Property font value 'normal bold italic normal xx-small cursive' assert_true: 'normal bold italic normal xx-small cursive' is a supported value for font. expected true got false
FAIL Property font value 'normal bolder italic small-caps medium/normal fantasy' assert_true: 'normal bolder italic small-caps medium/normal fantasy' is a supported value for font. expected true got false
@@ -83,11 +83,11 @@
FAIL Property font value 'normal 100 small-caps larger/calc(120% + 1.2em) Menu' assert_equals: expected "small-caps 100 48px / normal Menu" but got "normal small-caps 100 normal 48px/normal Menu"
FAIL Property font value 'normal 900 small-caps normal smaller "Non-Generic Example Family Name"' assert_equals: expected "small-caps 900 33.33333206176758px \"Non-Generic Example Family Name\"" but got "normal small-caps 900 normal 33.33333206176758px/normal \"Non-Generic Example Family Name\""
FAIL Property font value 'normal bold small-caps italic 10px/normal serif' assert_true: 'normal bold small-caps italic 10px/normal serif' is a supported value for font. expected true got false
-FAIL Property font value 'normal bolder small-caps extra-condensed 20%/1.2 sans-serif' assert_equals: expected "small-caps 900 extra-condensed 8px / 9px sans-serif" but got "normal small-caps 900 extra-condensed 8px/9px sans-serif"
+FAIL Property font value 'normal bolder small-caps extra-condensed 20%/1.2 sans-serif' assert_equals: expected "small-caps 900 extra-condensed 8px / 9.600000381469727px sans-serif" but got "normal small-caps 900 extra-condensed 8px/9.600000381469727px sans-serif"
FAIL Property font value 'normal lighter condensed calc(30% - 40px)/calc(120% + 1.2em) cursive' assert_equals: expected "bold condensed 0px / normal cursive" but got "normal normal bold condensed 0px/normal cursive"
FAIL Property font value 'normal 100 semi-condensed normal xx-small fantasy' assert_equals: expected "100 semi-condensed 9px fantasy" but got "normal normal 100 semi-condensed 9px/normal fantasy"
FAIL Property font value 'normal 900 semi-expanded italic medium/normal monospace' assert_true: 'normal 900 semi-expanded italic medium/normal monospace' is a supported value for font. expected true got false
-FAIL Property font value 'normal bold expanded small-caps xx-large/1.2 Menu' assert_equals: expected "small-caps bold expanded 32px / 38px Menu" but got "normal small-caps bold expanded 32px/38px Menu"
+FAIL Property font value 'normal bold expanded small-caps xx-large/1.2 Menu' assert_equals: expected "small-caps bold expanded 32px / 38.400001525878906px Menu" but got "normal small-caps bold expanded 32px/38.400001525878906px Menu"
FAIL Property font value 'normal extra-expanded larger/calc(120% + 1.2em) "Non-Generic Example Family Name"' assert_equals: expected "extra-expanded 48px / normal \"Non-Generic Example Family Name\"" but got "normal normal normal extra-expanded 48px/normal \"Non-Generic Example Family Name\""
FAIL Property font value 'normal ultra-expanded normal smaller serif' assert_equals: expected "ultra-expanded 33.33333206176758px serif" but got "normal normal normal ultra-expanded 33.33333206176758px/normal serif"
FAIL Property font value 'normal ultra-condensed normal normal 10px/normal sans-serif' assert_equals: expected "ultra-condensed 10px sans-serif" but got "normal normal normal ultra-condensed 10px/normal sans-serif"
@@ -99,15 +99,15 @@
FAIL Property font value 'normal extra-expanded italic small-caps larger/calc(120% + 1.2em) serif' assert_true: 'normal extra-expanded italic small-caps larger/calc(120% + 1.2em) serif' is a supported value for font. expected true got false
FAIL Property font value 'normal ultra-expanded italic lighter smaller sans-serif' assert_true: 'normal ultra-expanded italic lighter smaller sans-serif' is a supported value for font. expected true got false
FAIL Property font value 'normal ultra-condensed small-caps 10px/normal cursive' assert_equals: expected "small-caps ultra-condensed 10px cursive" but got "normal small-caps normal ultra-condensed 10px/normal cursive"
-FAIL Property font value 'normal extra-condensed small-caps normal 20%/1.2 fantasy' assert_equals: expected "small-caps extra-condensed 8px / 9px fantasy" but got "normal small-caps normal extra-condensed 8px/9px fantasy"
+FAIL Property font value 'normal extra-condensed small-caps normal 20%/1.2 fantasy' assert_equals: expected "small-caps extra-condensed 8px / 9.600000381469727px fantasy" but got "normal small-caps normal extra-condensed 8px/9.600000381469727px fantasy"
FAIL Property font value 'normal condensed small-caps italic calc(30% - 40px)/calc(120% + 1.2em) monospace' assert_true: 'normal condensed small-caps italic calc(30% - 40px)/calc(120% + 1.2em) monospace' is a supported value for font. expected true got false
FAIL Property font value 'normal semi-condensed small-caps 100 xx-small Menu' assert_equals: expected "small-caps 100 semi-condensed 9px Menu" but got "normal small-caps 100 semi-condensed 9px/normal Menu"
FAIL Property font value 'normal semi-expanded 900 medium/normal "Non-Generic Example Family Name"' assert_equals: expected "900 semi-expanded 16px \"Non-Generic Example Family Name\"" but got "normal normal 900 semi-expanded 16px/normal \"Non-Generic Example Family Name\""
-FAIL Property font value 'normal expanded bold normal xx-large/1.2 serif' assert_equals: expected "bold expanded 32px / 38px serif" but got "normal normal bold expanded 32px/38px serif"
+FAIL Property font value 'normal expanded bold normal xx-large/1.2 serif' assert_equals: expected "bold expanded 32px / 38.400001525878906px serif" but got "normal normal bold expanded 32px/38.400001525878906px serif"
FAIL Property font value 'normal extra-expanded bolder italic larger/calc(120% + 1.2em) sans-serif' assert_true: 'normal extra-expanded bolder italic larger/calc(120% + 1.2em) sans-serif' is a supported value for font. expected true got false
FAIL Property font value 'normal ultra-expanded lighter small-caps smaller cursive' assert_equals: expected "small-caps bold ultra-expanded 33.33333206176758px cursive" but got "normal small-caps bold ultra-expanded 33.33333206176758px/normal cursive"
FAIL Property font value 'italic 10px/normal fantasy' assert_equals: expected "italic 10px fantasy" but got "italic normal normal normal 10px/normal fantasy"
-FAIL Property font value 'italic normal 20%/1.2 monospace' assert_equals: expected "italic 8px / 9px monospace" but got "italic normal normal normal 8px/9px monospace"
+FAIL Property font value 'italic normal 20%/1.2 monospace' assert_equals: expected "italic 8px / 9.600000381469727px monospace" but got "italic normal normal normal 8px/9.600000381469727px monospace"
FAIL Property font value 'italic normal normal calc(30% - 40px)/calc(120% + 1.2em) Menu' assert_equals: expected "italic 0px / normal Menu" but got "italic normal normal normal 0px/normal Menu"
FAIL Property font value 'italic normal normal normal xx-small "Non-Generic Example Family Name"' assert_equals: expected "italic 9px \"Non-Generic Example Family Name\"" but got "italic normal normal normal 9px/normal \"Non-Generic Example Family Name\""
FAIL Property font value 'italic normal normal small-caps medium/normal serif' assert_true: 'italic normal normal small-caps medium/normal serif' is a supported value for font. expected true got false
@@ -127,15 +127,15 @@
FAIL Property font value 'italic normal extra-expanded 900 calc(30% - 40px)/calc(120% + 1.2em) serif' assert_equals: expected "italic 900 extra-expanded 0px / normal serif" but got "italic normal 900 extra-expanded 0px/normal serif"
FAIL Property font value 'italic small-caps xx-small sans-serif' assert_equals: expected "italic small-caps 9px sans-serif" but got "italic small-caps normal normal 9px/normal sans-serif"
FAIL Property font value 'italic small-caps normal medium/normal cursive' assert_equals: expected "italic small-caps 16px cursive" but got "italic small-caps normal normal 16px/normal cursive"
-FAIL Property font value 'italic small-caps normal normal xx-large/1.2 fantasy' assert_equals: expected "italic small-caps 32px / 38px fantasy" but got "italic small-caps normal normal 32px/38px fantasy"
+FAIL Property font value 'italic small-caps normal normal xx-large/1.2 fantasy' assert_equals: expected "italic small-caps 32px / 38.400001525878906px fantasy" but got "italic small-caps normal normal 32px/38.400001525878906px fantasy"
FAIL Property font value 'italic small-caps normal bold larger/calc(120% + 1.2em) monospace' assert_true: 'italic small-caps normal bold larger/calc(120% + 1.2em) monospace' is a supported value for font. expected true got false
FAIL Property font value 'italic small-caps normal ultra-expanded smaller Menu' assert_equals: expected "italic small-caps ultra-expanded 33.33333206176758px Menu" but got "italic small-caps normal ultra-expanded 33.33333206176758px/normal Menu"
FAIL Property font value 'italic small-caps bolder 10px/normal "Non-Generic Example Family Name"' assert_equals: expected "italic small-caps 900 10px \"Non-Generic Example Family Name\"" but got "italic small-caps 900 normal 10px/normal \"Non-Generic Example Family Name\""
-FAIL Property font value 'italic small-caps lighter normal 20%/1.2 serif' assert_equals: expected "italic small-caps bold 8px / 9px serif" but got "italic small-caps bold normal 8px/9px serif"
+FAIL Property font value 'italic small-caps lighter normal 20%/1.2 serif' assert_equals: expected "italic small-caps bold 8px / 9.600000381469727px serif" but got "italic small-caps bold normal 8px/9.600000381469727px serif"
FAIL Property font value 'italic small-caps 100 ultra-condensed calc(30% - 40px)/calc(120% + 1.2em) sans-serif' assert_equals: expected "italic small-caps 100 ultra-condensed 0px / normal sans-serif" but got "italic small-caps 100 ultra-condensed 0px/normal sans-serif"
FAIL Property font value 'italic small-caps extra-condensed xx-small cursive' assert_equals: expected "italic small-caps extra-condensed 9px cursive" but got "italic small-caps normal extra-condensed 9px/normal cursive"
FAIL Property font value 'italic small-caps condensed normal medium/normal fantasy' assert_equals: expected "italic small-caps condensed 16px fantasy" but got "italic small-caps normal condensed 16px/normal fantasy"
-FAIL Property font value 'italic small-caps semi-condensed 900 xx-large/1.2 monospace' assert_equals: expected "italic small-caps 900 semi-condensed 26px / 31px monospace" but got "italic small-caps 900 semi-condensed 26px/31px monospace"
+FAIL Property font value 'italic small-caps semi-condensed 900 xx-large/1.2 monospace' assert_equals: expected "italic small-caps 900 semi-condensed 26px / 31.200000762939453px monospace" but got "italic small-caps 900 semi-condensed 26px/31.200000762939453px monospace"
FAIL Property font value 'italic bold larger/calc(120% + 1.2em) Menu' assert_equals: expected "italic bold 48px / normal Menu" but got "italic normal bold normal 48px/normal Menu"
FAIL Property font value 'italic bolder normal smaller "Non-Generic Example Family Name"' assert_equals: expected "italic 900 33.33333206176758px \"Non-Generic Example Family Name\"" but got "italic normal 900 normal 33.33333206176758px/normal \"Non-Generic Example Family Name\""
FAIL Property font value 'italic lighter normal normal 10px/normal serif' assert_equals: expected "italic bold 10px serif" but got "italic normal bold normal 10px/normal serif"
@@ -143,23 +143,23 @@
FAIL Property font value 'italic 900 normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) cursive' assert_equals: expected "italic 900 semi-expanded 0px / normal cursive" but got "italic normal 900 semi-expanded 0px/normal cursive"
FAIL Property font value 'italic bold small-caps xx-small fantasy' assert_equals: expected "italic small-caps bold 9px fantasy" but got "italic small-caps bold normal 9px/normal fantasy"
FAIL Property font value 'italic bolder small-caps normal medium/normal monospace' assert_equals: expected "italic small-caps 900 13px monospace" but got "italic small-caps 900 normal 13px/normal monospace"
-FAIL Property font value 'italic lighter small-caps expanded xx-large/1.2 Menu' assert_equals: expected "italic small-caps bold expanded 32px / 38px Menu" but got "italic small-caps bold expanded 32px/38px Menu"
+FAIL Property font value 'italic lighter small-caps expanded xx-large/1.2 Menu' assert_equals: expected "italic small-caps bold expanded 32px / 38.400001525878906px Menu" but got "italic small-caps bold expanded 32px/38.400001525878906px Menu"
FAIL Property font value 'italic 100 extra-expanded larger/calc(120% + 1.2em) "Non-Generic Example Family Name"' assert_equals: expected "italic 100 extra-expanded 48px / normal \"Non-Generic Example Family Name\"" but got "italic normal 100 extra-expanded 48px/normal \"Non-Generic Example Family Name\""
FAIL Property font value 'italic 900 ultra-expanded normal smaller serif' assert_equals: expected "italic 900 ultra-expanded 33.33333206176758px serif" but got "italic normal 900 ultra-expanded 33.33333206176758px/normal serif"
FAIL Property font value 'italic bold ultra-condensed small-caps 10px/normal sans-serif' assert_equals: expected "italic small-caps bold ultra-condensed 10px sans-serif" but got "italic small-caps bold ultra-condensed 10px/normal sans-serif"
-FAIL Property font value 'italic extra-condensed 20%/1.2 cursive' assert_equals: expected "italic extra-condensed 8px / 9px cursive" but got "italic normal normal extra-condensed 8px/9px cursive"
+FAIL Property font value 'italic extra-condensed 20%/1.2 cursive' assert_equals: expected "italic extra-condensed 8px / 9.600000381469727px cursive" but got "italic normal normal extra-condensed 8px/9.600000381469727px cursive"
FAIL Property font value 'italic condensed normal calc(30% - 40px)/calc(120% + 1.2em) fantasy' assert_equals: expected "italic condensed 0px / normal fantasy" but got "italic normal normal condensed 0px/normal fantasy"
FAIL Property font value 'italic semi-condensed normal normal xx-small monospace' assert_equals: expected "italic semi-condensed 9px monospace" but got "italic normal normal semi-condensed 9px/normal monospace"
FAIL Property font value 'italic semi-expanded normal small-caps medium/normal Menu' assert_true: 'italic semi-expanded normal small-caps medium/normal Menu' is a supported value for font. expected true got false
-FAIL Property font value 'italic expanded normal bolder xx-large/1.2 "Non-Generic Example Family Name"' assert_equals: expected "italic 900 expanded 32px / 38px \"Non-Generic Example Family Name\"" but got "italic normal 900 expanded 32px/38px \"Non-Generic Example Family Name\""
+FAIL Property font value 'italic expanded normal bolder xx-large/1.2 "Non-Generic Example Family Name"' assert_equals: expected "italic 900 expanded 32px / 38.400001525878906px \"Non-Generic Example Family Name\"" but got "italic normal 900 expanded 32px/38.400001525878906px \"Non-Generic Example Family Name\""
FAIL Property font value 'italic extra-expanded small-caps larger/calc(120% + 1.2em) serif' assert_equals: expected "italic small-caps extra-expanded 48px / normal serif" but got "italic small-caps normal extra-expanded 48px/normal serif"
FAIL Property font value 'italic ultra-expanded small-caps normal smaller sans-serif' assert_equals: expected "italic small-caps ultra-expanded 33.33333206176758px sans-serif" but got "italic small-caps normal ultra-expanded 33.33333206176758px/normal sans-serif"
FAIL Property font value 'italic ultra-condensed small-caps lighter 10px/normal cursive' assert_equals: expected "italic small-caps bold ultra-condensed 10px cursive" but got "italic small-caps bold ultra-condensed 10px/normal cursive"
-FAIL Property font value 'italic extra-condensed 100 20%/1.2 fantasy' assert_equals: expected "italic 100 extra-condensed 8px / 9px fantasy" but got "italic normal 100 extra-condensed 8px/9px fantasy"
+FAIL Property font value 'italic extra-condensed 100 20%/1.2 fantasy' assert_equals: expected "italic 100 extra-condensed 8px / 9.600000381469727px fantasy" but got "italic normal 100 extra-condensed 8px/9.600000381469727px fantasy"
FAIL Property font value 'italic condensed 900 normal calc(30% - 40px)/calc(120% + 1.2em) monospace' assert_equals: expected "italic 900 condensed 0px / normal monospace" but got "italic normal 900 condensed 0px/normal monospace"
FAIL Property font value 'italic semi-condensed bold small-caps xx-small Menu' assert_equals: expected "italic small-caps bold semi-condensed 9px Menu" but got "italic small-caps bold semi-condensed 9px/normal Menu"
FAIL Property font value 'small-caps medium/normal "Non-Generic Example Family Name"' assert_equals: expected "small-caps 16px \"Non-Generic Example Family Name\"" but got "normal small-caps normal normal 16px/normal \"Non-Generic Example Family Name\""
-FAIL Property font value 'small-caps normal xx-large/1.2 serif' assert_equals: expected "small-caps 32px / 38px serif" but got "normal small-caps normal normal 32px/38px serif"
+FAIL Property font value 'small-caps normal xx-large/1.2 serif' assert_equals: expected "small-caps 32px / 38.400001525878906px serif" but got "normal small-caps normal normal 32px/38.400001525878906px serif"
FAIL Property font value 'small-caps normal normal larger/calc(120% + 1.2em) sans-serif' assert_equals: expected "small-caps 48px / normal sans-serif" but got "normal small-caps normal normal 48px/normal sans-serif"
FAIL Property font value 'small-caps normal normal normal smaller cursive' assert_equals: expected "small-caps 33.33333206176758px cursive" but got "normal small-caps normal normal 33.33333206176758px/normal cursive"
FAIL Property font value 'small-caps normal normal italic 10px/normal fantasy' assert_true: 'small-caps normal normal italic 10px/normal fantasy' is a supported value for font. expected true got false
@@ -179,15 +179,15 @@
FAIL Property font value 'small-caps normal condensed lighter larger/calc(120% + 1.2em) fantasy' assert_equals: expected "small-caps bold condensed 48px / normal fantasy" but got "normal small-caps bold condensed 48px/normal fantasy"
FAIL Property font value 'small-caps italic smaller monospace' assert_equals: expected "italic small-caps 33.33333206176758px monospace" but got "italic small-caps normal normal 33.33333206176758px/normal monospace"
FAIL Property font value 'small-caps italic normal 10px/normal Menu' assert_equals: expected "italic small-caps 10px Menu" but got "italic small-caps normal normal 10px/normal Menu"
-FAIL Property font value 'small-caps italic normal normal 20%/1.2 "Non-Generic Example Family Name"' assert_equals: expected "italic small-caps 8px / 9px \"Non-Generic Example Family Name\"" but got "italic small-caps normal normal 8px/9px \"Non-Generic Example Family Name\""
+FAIL Property font value 'small-caps italic normal normal 20%/1.2 "Non-Generic Example Family Name"' assert_equals: expected "italic small-caps 8px / 9.600000381469727px \"Non-Generic Example Family Name\"" but got "italic small-caps normal normal 8px/9.600000381469727px \"Non-Generic Example Family Name\""
FAIL Property font value 'small-caps italic normal 100 calc(30% - 40px)/calc(120% + 1.2em) serif' assert_true: 'small-caps italic normal 100 calc(30% - 40px)/calc(120% + 1.2em) serif' is a supported value for font. expected true got false
FAIL Property font value 'small-caps italic normal semi-condensed xx-small sans-serif' assert_equals: expected "italic small-caps semi-condensed 9px sans-serif" but got "italic small-caps normal semi-condensed 9px/normal sans-serif"
FAIL Property font value 'small-caps italic 900 medium/normal cursive' assert_equals: expected "italic small-caps 900 16px cursive" but got "italic small-caps 900 normal 16px/normal cursive"
-FAIL Property font value 'small-caps italic bold normal xx-large/1.2 fantasy' assert_equals: expected "italic small-caps bold 32px / 38px fantasy" but got "italic small-caps bold normal 32px/38px fantasy"
+FAIL Property font value 'small-caps italic bold normal xx-large/1.2 fantasy' assert_equals: expected "italic small-caps bold 32px / 38.400001525878906px fantasy" but got "italic small-caps bold normal 32px/38.400001525878906px fantasy"
FAIL Property font value 'small-caps italic bolder semi-expanded larger/calc(120% + 1.2em) monospace' assert_equals: expected "italic small-caps 900 semi-expanded 48px / normal monospace" but got "italic small-caps 900 semi-expanded 48px/normal monospace"
FAIL Property font value 'small-caps italic expanded smaller Menu' assert_equals: expected "italic small-caps expanded 33.33333206176758px Menu" but got "italic small-caps normal expanded 33.33333206176758px/normal Menu"
FAIL Property font value 'small-caps italic extra-expanded normal 10px/normal "Non-Generic Example Family Name"' assert_equals: expected "italic small-caps extra-expanded 10px \"Non-Generic Example Family Name\"" but got "italic small-caps normal extra-expanded 10px/normal \"Non-Generic Example Family Name\""
-FAIL Property font value 'small-caps italic ultra-expanded lighter 20%/1.2 serif' assert_equals: expected "italic small-caps bold ultra-expanded 8px / 9px serif" but got "italic small-caps bold ultra-expanded 8px/9px serif"
+FAIL Property font value 'small-caps italic ultra-expanded lighter 20%/1.2 serif' assert_equals: expected "italic small-caps bold ultra-expanded 8px / 9.600000381469727px serif" but got "italic small-caps bold ultra-expanded 8px/9.600000381469727px serif"
FAIL Property font value 'small-caps 100 calc(30% - 40px)/calc(120% + 1.2em) sans-serif' assert_equals: expected "small-caps 100 0px / normal sans-serif" but got "normal small-caps 100 normal 0px/normal sans-serif"
FAIL Property font value 'small-caps 900 normal xx-small cursive' assert_equals: expected "small-caps 900 9px cursive" but got "normal small-caps 900 normal 9px/normal cursive"
FAIL Property font value 'small-caps bold normal normal medium/normal fantasy' assert_equals: expected "small-caps bold 16px fantasy" but got "normal small-caps bold normal 16px/normal fantasy"
@@ -195,23 +195,23 @@
FAIL Property font value 'small-caps lighter normal ultra-condensed larger/calc(120% + 1.2em) Menu' assert_equals: expected "small-caps bold ultra-condensed 48px / normal Menu" but got "normal small-caps bold ultra-condensed 48px/normal Menu"
FAIL Property font value 'small-caps 100 italic smaller "Non-Generic Example Family Name"' assert_equals: expected "italic small-caps 100 33.33333206176758px \"Non-Generic Example Family Name\"" but got "italic small-caps 100 normal 33.33333206176758px/normal \"Non-Generic Example Family Name\""
FAIL Property font value 'small-caps 900 italic normal 10px/normal serif' assert_equals: expected "italic small-caps 900 10px serif" but got "italic small-caps 900 normal 10px/normal serif"
-FAIL Property font value 'small-caps bold italic extra-condensed 20%/1.2 sans-serif' assert_equals: expected "italic small-caps bold extra-condensed 8px / 9px sans-serif" but got "italic small-caps bold extra-condensed 8px/9px sans-serif"
+FAIL Property font value 'small-caps bold italic extra-condensed 20%/1.2 sans-serif' assert_equals: expected "italic small-caps bold extra-condensed 8px / 9.600000381469727px sans-serif" but got "italic small-caps bold extra-condensed 8px/9.600000381469727px sans-serif"
FAIL Property font value 'small-caps bolder condensed calc(30% - 40px)/calc(120% + 1.2em) cursive' assert_equals: expected "small-caps 900 condensed 0px / normal cursive" but got "normal small-caps 900 condensed 0px/normal cursive"
FAIL Property font value 'small-caps lighter semi-condensed normal xx-small fantasy' assert_equals: expected "small-caps bold semi-condensed 9px fantasy" but got "normal small-caps bold semi-condensed 9px/normal fantasy"
FAIL Property font value 'small-caps 100 semi-expanded italic medium/normal monospace' assert_equals: expected "italic small-caps 100 semi-expanded 13px monospace" but got "italic small-caps 100 semi-expanded 13px/normal monospace"
-FAIL Property font value 'small-caps expanded xx-large/1.2 Menu' assert_equals: expected "small-caps expanded 32px / 38px Menu" but got "normal small-caps normal expanded 32px/38px Menu"
+FAIL Property font value 'small-caps expanded xx-large/1.2 Menu' assert_equals: expected "small-caps expanded 32px / 38.400001525878906px Menu" but got "normal small-caps normal expanded 32px/38.400001525878906px Menu"
FAIL Property font value 'small-caps extra-expanded normal larger/calc(120% + 1.2em) "Non-Generic Example Family Name"' assert_equals: expected "small-caps extra-expanded 48px / normal \"Non-Generic Example Family Name\"" but got "normal small-caps normal extra-expanded 48px/normal \"Non-Generic Example Family Name\""
FAIL Property font value 'small-caps ultra-expanded normal normal smaller serif' assert_equals: expected "small-caps ultra-expanded 33.33333206176758px serif" but got "normal small-caps normal ultra-expanded 33.33333206176758px/normal serif"
FAIL Property font value 'small-caps ultra-condensed normal italic 10px/normal sans-serif' assert_true: 'small-caps ultra-condensed normal italic 10px/normal sans-serif' is a supported value for font. expected true got false
-FAIL Property font value 'small-caps extra-condensed normal 900 20%/1.2 cursive' assert_equals: expected "small-caps 900 extra-condensed 8px / 9px cursive" but got "normal small-caps 900 extra-condensed 8px/9px cursive"
+FAIL Property font value 'small-caps extra-condensed normal 900 20%/1.2 cursive' assert_equals: expected "small-caps 900 extra-condensed 8px / 9.600000381469727px cursive" but got "normal small-caps 900 extra-condensed 8px/9.600000381469727px cursive"
FAIL Property font value 'small-caps condensed italic calc(30% - 40px)/calc(120% + 1.2em) fantasy' assert_equals: expected "italic small-caps condensed 0px / normal fantasy" but got "italic small-caps normal condensed 0px/normal fantasy"
FAIL Property font value 'small-caps semi-condensed italic normal xx-small monospace' assert_equals: expected "italic small-caps semi-condensed 9px monospace" but got "italic small-caps normal semi-condensed 9px/normal monospace"
FAIL Property font value 'small-caps semi-expanded italic bold medium/normal Menu' assert_equals: expected "italic small-caps bold semi-expanded 16px Menu" but got "italic small-caps bold semi-expanded 16px/normal Menu"
-FAIL Property font value 'small-caps expanded bolder xx-large/1.2 "Non-Generic Example Family Name"' assert_equals: expected "small-caps 900 expanded 32px / 38px \"Non-Generic Example Family Name\"" but got "normal small-caps 900 expanded 32px/38px \"Non-Generic Example Family Name\""
+FAIL Property font value 'small-caps expanded bolder xx-large/1.2 "Non-Generic Example Family Name"' assert_equals: expected "small-caps 900 expanded 32px / 38.400001525878906px \"Non-Generic Example Family Name\"" but got "normal small-caps 900 expanded 32px/38.400001525878906px \"Non-Generic Example Family Name\""
FAIL Property font value 'small-caps extra-expanded lighter normal larger/calc(120% + 1.2em) serif' assert_equals: expected "small-caps bold extra-expanded 48px / normal serif" but got "normal small-caps bold extra-expanded 48px/normal serif"
FAIL Property font value 'small-caps ultra-expanded 100 italic smaller sans-serif' assert_equals: expected "italic small-caps 100 ultra-expanded 33.33333206176758px sans-serif" but got "italic small-caps 100 ultra-expanded 33.33333206176758px/normal sans-serif"
FAIL Property font value '900 10px/normal cursive' assert_equals: expected "900 10px cursive" but got "normal normal 900 normal 10px/normal cursive"
-FAIL Property font value 'bold normal 20%/1.2 fantasy' assert_equals: expected "bold 8px / 9px fantasy" but got "normal normal bold normal 8px/9px fantasy"
+FAIL Property font value 'bold normal 20%/1.2 fantasy' assert_equals: expected "bold 8px / 9.600000381469727px fantasy" but got "normal normal bold normal 8px/9.600000381469727px fantasy"
FAIL Property font value 'bolder normal normal calc(30% - 40px)/calc(120% + 1.2em) monospace' assert_equals: expected "900 0px / normal monospace" but got "normal normal 900 normal 0px/normal monospace"
FAIL Property font value 'lighter normal normal normal xx-small Menu' assert_equals: expected "bold 9px Menu" but got "normal normal bold normal 9px/normal Menu"
FAIL Property font value '100 normal normal italic medium/normal "Non-Generic Example Family Name"' assert_true: '100 normal normal italic medium/normal "Non-Generic Example Family Name"' is a supported value for font. expected true got false
@@ -231,15 +231,15 @@
FAIL Property font value 'lighter normal extra-expanded small-caps calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"' assert_equals: expected "small-caps bold extra-expanded 0px / normal \"Non-Generic Example Family Name\"" but got "normal small-caps bold extra-expanded 0px/normal \"Non-Generic Example Family Name\""
FAIL Property font value '100 italic xx-small serif' assert_equals: expected "italic 100 9px serif" but got "italic normal 100 normal 9px/normal serif"
FAIL Property font value '900 italic normal medium/normal sans-serif' assert_equals: expected "italic 900 16px sans-serif" but got "italic normal 900 normal 16px/normal sans-serif"
-FAIL Property font value 'bold italic normal normal xx-large/1.2 cursive' assert_equals: expected "italic bold 32px / 38px cursive" but got "italic normal bold normal 32px/38px cursive"
+FAIL Property font value 'bold italic normal normal xx-large/1.2 cursive' assert_equals: expected "italic bold 32px / 38.400001525878906px cursive" but got "italic normal bold normal 32px/38.400001525878906px cursive"
FAIL Property font value 'bolder italic normal small-caps larger/calc(120% + 1.2em) fantasy' assert_true: 'bolder italic normal small-caps larger/calc(120% + 1.2em) fantasy' is a supported value for font. expected true got false
FAIL Property font value 'lighter italic normal ultra-expanded smaller monospace' assert_equals: expected "italic bold ultra-expanded 33.33333206176758px monospace" but got "italic normal bold ultra-expanded 33.33333206176758px/normal monospace"
FAIL Property font value '100 italic small-caps 10px/normal Menu' assert_equals: expected "italic small-caps 100 10px Menu" but got "italic small-caps 100 normal 10px/normal Menu"
-FAIL Property font value '900 italic small-caps normal 20%/1.2 "Non-Generic Example Family Name"' assert_equals: expected "italic small-caps 900 8px / 9px \"Non-Generic Example Family Name\"" but got "italic small-caps 900 normal 8px/9px \"Non-Generic Example Family Name\""
+FAIL Property font value '900 italic small-caps normal 20%/1.2 "Non-Generic Example Family Name"' assert_equals: expected "italic small-caps 900 8px / 9.600000381469727px \"Non-Generic Example Family Name\"" but got "italic small-caps 900 normal 8px/9.600000381469727px \"Non-Generic Example Family Name\""
FAIL Property font value 'bold italic small-caps ultra-condensed calc(30% - 40px)/calc(120% + 1.2em) serif' assert_equals: expected "italic small-caps bold ultra-condensed 0px / normal serif" but got "italic small-caps bold ultra-condensed 0px/normal serif"
FAIL Property font value 'bolder italic extra-condensed xx-small sans-serif' assert_equals: expected "italic 900 extra-condensed 9px sans-serif" but got "italic normal 900 extra-condensed 9px/normal sans-serif"
FAIL Property font value 'lighter italic condensed normal medium/normal cursive' assert_equals: expected "italic bold condensed 16px cursive" but got "italic normal bold condensed 16px/normal cursive"
-FAIL Property font value '100 italic semi-condensed small-caps xx-large/1.2 fantasy' assert_equals: expected "italic small-caps 100 semi-condensed 32px / 38px fantasy" but got "italic small-caps 100 semi-condensed 32px/38px fantasy"
+FAIL Property font value '100 italic semi-condensed small-caps xx-large/1.2 fantasy' assert_equals: expected "italic small-caps 100 semi-condensed 32px / 38.400001525878906px fantasy" but got "italic small-caps 100 semi-condensed 32px/38.400001525878906px fantasy"
FAIL Property font value '900 small-caps larger/calc(120% + 1.2em) monospace' assert_equals: expected "small-caps 900 48px / normal monospace" but got "normal small-caps 900 normal 48px/normal monospace"
FAIL Property font value 'bold small-caps normal smaller Menu' assert_equals: expected "small-caps bold 33.33333206176758px Menu" but got "normal small-caps bold normal 33.33333206176758px/normal Menu"
FAIL Property font value 'bolder small-caps normal normal 10px/normal "Non-Generic Example Family Name"' assert_equals: expected "small-caps 900 10px \"Non-Generic Example Family Name\"" but got "normal small-caps 900 normal 10px/normal \"Non-Generic Example Family Name\""
@@ -247,23 +247,23 @@
FAIL Property font value '100 small-caps normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) sans-serif' assert_equals: expected "small-caps 100 semi-expanded 0px / normal sans-serif" but got "normal small-caps 100 semi-expanded 0px/normal sans-serif"
FAIL Property font value '900 small-caps italic xx-small cursive' assert_equals: expected "italic small-caps 900 9px cursive" but got "italic small-caps 900 normal 9px/normal cursive"
FAIL Property font value 'bold small-caps italic normal medium/normal fantasy' assert_equals: expected "italic small-caps bold 16px fantasy" but got "italic small-caps bold normal 16px/normal fantasy"
-FAIL Property font value 'bolder small-caps italic expanded xx-large/1.2 monospace' assert_equals: expected "italic small-caps 900 expanded 26px / 31px monospace" but got "italic small-caps 900 expanded 26px/31px monospace"
+FAIL Property font value 'bolder small-caps italic expanded xx-large/1.2 monospace' assert_equals: expected "italic small-caps 900 expanded 26px / 31.200000762939453px monospace" but got "italic small-caps 900 expanded 26px/31.200000762939453px monospace"
FAIL Property font value 'lighter small-caps extra-expanded larger/calc(120% + 1.2em) Menu' assert_equals: expected "small-caps bold extra-expanded 48px / normal Menu" but got "normal small-caps bold extra-expanded 48px/normal Menu"
FAIL Property font value '100 small-caps ultra-expanded normal smaller "Non-Generic Example Family Name"' assert_equals: expected "small-caps 100 ultra-expanded 33.33333206176758px \"Non-Generic Example Family Name\"" but got "normal small-caps 100 ultra-expanded 33.33333206176758px/normal \"Non-Generic Example Family Name\""
FAIL Property font value '900 small-caps ultra-condensed italic 10px/normal serif' assert_equals: expected "italic small-caps 900 ultra-condensed 10px serif" but got "italic small-caps 900 ultra-condensed 10px/normal serif"
-FAIL Property font value 'bold extra-condensed 20%/1.2 sans-serif' assert_equals: expected "bold extra-condensed 8px / 9px sans-serif" but got "normal normal bold extra-condensed 8px/9px sans-serif"
+FAIL Property font value 'bold extra-condensed 20%/1.2 sans-serif' assert_equals: expected "bold extra-condensed 8px / 9.600000381469727px sans-serif" but got "normal normal bold extra-condensed 8px/9.600000381469727px sans-serif"
FAIL Property font value 'bolder condensed normal calc(30% - 40px)/calc(120% + 1.2em) cursive' assert_equals: expected "900 condensed 0px / normal cursive" but got "normal normal 900 condensed 0px/normal cursive"
FAIL Property font value 'lighter semi-condensed normal normal xx-small fantasy' assert_equals: expected "bold semi-condensed 9px fantasy" but got "normal normal bold semi-condensed 9px/normal fantasy"
FAIL Property font value '100 semi-expanded normal italic medium/normal monospace' assert_true: '100 semi-expanded normal italic medium/normal monospace' is a supported value for font. expected true got false
-FAIL Property font value '900 expanded normal small-caps xx-large/1.2 Menu' assert_equals: expected "small-caps 900 expanded 32px / 38px Menu" but got "normal small-caps 900 expanded 32px/38px Menu"
+FAIL Property font value '900 expanded normal small-caps xx-large/1.2 Menu' assert_equals: expected "small-caps 900 expanded 32px / 38.400001525878906px Menu" but got "normal small-caps 900 expanded 32px/38.400001525878906px Menu"
FAIL Property font value 'bold extra-expanded italic larger/calc(120% + 1.2em) "Non-Generic Example Family Name"' assert_equals: expected "italic bold extra-expanded 48px / normal \"Non-Generic Example Family Name\"" but got "italic normal bold extra-expanded 48px/normal \"Non-Generic Example Family Name\""
FAIL Property font value 'bolder ultra-expanded italic normal smaller serif' assert_equals: expected "italic 900 ultra-expanded 33.33333206176758px serif" but got "italic normal 900 ultra-expanded 33.33333206176758px/normal serif"
FAIL Property font value 'lighter ultra-condensed italic small-caps 10px/normal sans-serif' assert_equals: expected "italic small-caps bold ultra-condensed 10px sans-serif" but got "italic small-caps bold ultra-condensed 10px/normal sans-serif"
-FAIL Property font value '100 extra-condensed small-caps 20%/1.2 cursive' assert_equals: expected "small-caps 100 extra-condensed 8px / 9px cursive" but got "normal small-caps 100 extra-condensed 8px/9px cursive"
+FAIL Property font value '100 extra-condensed small-caps 20%/1.2 cursive' assert_equals: expected "small-caps 100 extra-condensed 8px / 9.600000381469727px cursive" but got "normal small-caps 100 extra-condensed 8px/9.600000381469727px cursive"
FAIL Property font value '900 condensed small-caps normal calc(30% - 40px)/calc(120% + 1.2em) fantasy' assert_equals: expected "small-caps 900 condensed 0px / normal fantasy" but got "normal small-caps 900 condensed 0px/normal fantasy"
FAIL Property font value 'bold semi-condensed small-caps italic xx-small monospace' assert_equals: expected "italic small-caps bold semi-condensed 9px monospace" but got "italic small-caps bold semi-condensed 9px/normal monospace"
FAIL Property font value 'semi-expanded medium/normal Menu' assert_equals: expected "semi-expanded 16px Menu" but got "normal normal normal semi-expanded 16px/normal Menu"
-FAIL Property font value 'expanded normal xx-large/1.2 "Non-Generic Example Family Name"' assert_equals: expected "expanded 32px / 38px \"Non-Generic Example Family Name\"" but got "normal normal normal expanded 32px/38px \"Non-Generic Example Family Name\""
+FAIL Property font value 'expanded normal xx-large/1.2 "Non-Generic Example Family Name"' assert_equals: expected "expanded 32px / 38.400001525878906px \"Non-Generic Example Family Name\"" but got "normal normal normal expanded 32px/38.400001525878906px \"Non-Generic Example Family Name\""
FAIL Property font value 'extra-expanded normal normal larger/calc(120% + 1.2em) serif' assert_equals: expected "extra-expanded 48px / normal serif" but got "normal normal normal extra-expanded 48px/normal serif"
FAIL Property font value 'ultra-expanded normal normal normal smaller sans-serif' assert_equals: expected "ultra-expanded 33.33333206176758px sans-serif" but got "normal normal normal ultra-expanded 33.33333206176758px/normal sans-serif"
FAIL Property font value 'ultra-condensed normal normal italic 10px/normal cursive' assert_true: 'ultra-condensed normal normal italic 10px/normal cursive' is a supported value for font. expected true got false
@@ -283,15 +283,15 @@
FAIL Property font value 'extra-expanded normal lighter small-caps larger/calc(120% + 1.2em) cursive' assert_equals: expected "small-caps bold extra-expanded 48px / normal cursive" but got "normal small-caps bold extra-expanded 48px/normal cursive"
FAIL Property font value 'ultra-expanded italic smaller fantasy' assert_equals: expected "italic ultra-expanded 33.33333206176758px fantasy" but got "italic normal normal ultra-expanded 33.33333206176758px/normal fantasy"
FAIL Property font value 'ultra-condensed italic normal 10px/normal monospace' assert_equals: expected "italic ultra-condensed 10px monospace" but got "italic normal normal ultra-condensed 10px/normal monospace"
-FAIL Property font value 'extra-condensed italic normal normal 20%/1.2 Menu' assert_equals: expected "italic extra-condensed 8px / 9px Menu" but got "italic normal normal extra-condensed 8px/9px Menu"
+FAIL Property font value 'extra-condensed italic normal normal 20%/1.2 Menu' assert_equals: expected "italic extra-condensed 8px / 9.600000381469727px Menu" but got "italic normal normal extra-condensed 8px/9.600000381469727px Menu"
FAIL Property font value 'condensed italic normal small-caps calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"' assert_true: 'condensed italic normal small-caps calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"' is a supported value for font. expected true got false
FAIL Property font value 'semi-condensed italic normal 100 xx-small serif' assert_equals: expected "italic 100 semi-condensed 9px serif" but got "italic normal 100 semi-condensed 9px/normal serif"
FAIL Property font value 'semi-expanded italic small-caps medium/normal sans-serif' assert_equals: expected "italic small-caps semi-expanded 16px sans-serif" but got "italic small-caps normal semi-expanded 16px/normal sans-serif"
-FAIL Property font value 'expanded italic small-caps normal xx-large/1.2 cursive' assert_equals: expected "italic small-caps expanded 32px / 38px cursive" but got "italic small-caps normal expanded 32px/38px cursive"
+FAIL Property font value 'expanded italic small-caps normal xx-large/1.2 cursive' assert_equals: expected "italic small-caps expanded 32px / 38.400001525878906px cursive" but got "italic small-caps normal expanded 32px/38.400001525878906px cursive"
FAIL Property font value 'extra-expanded italic small-caps 900 larger/calc(120% + 1.2em) fantasy' assert_equals: expected "italic small-caps 900 extra-expanded 48px / normal fantasy" but got "italic small-caps 900 extra-expanded 48px/normal fantasy"
FAIL Property font value 'ultra-expanded italic bold smaller monospace' assert_equals: expected "italic bold ultra-expanded 33.33333206176758px monospace" but got "italic normal bold ultra-expanded 33.33333206176758px/normal monospace"
FAIL Property font value 'ultra-condensed italic bolder normal 10px/normal Menu' assert_equals: expected "italic 900 ultra-condensed 10px Menu" but got "italic normal 900 ultra-condensed 10px/normal Menu"
-FAIL Property font value 'extra-condensed italic lighter small-caps 20%/1.2 "Non-Generic Example Family Name"' assert_equals: expected "italic small-caps bold extra-condensed 8px / 9px \"Non-Generic Example Family Name\"" but got "italic small-caps bold extra-condensed 8px/9px \"Non-Generic Example Family Name\""
+FAIL Property font value 'extra-condensed italic lighter small-caps 20%/1.2 "Non-Generic Example Family Name"' assert_equals: expected "italic small-caps bold extra-condensed 8px / 9.600000381469727px \"Non-Generic Example Family Name\"" but got "italic small-caps bold extra-condensed 8px/9.600000381469727px \"Non-Generic Example Family Name\""
FAIL Property font value 'condensed small-caps calc(30% - 40px)/calc(120% + 1.2em) serif' assert_equals: expected "small-caps condensed 0px / normal serif" but got "normal small-caps normal condensed 0px/normal serif"
FAIL Property font value 'semi-condensed small-caps normal xx-small sans-serif' assert_equals: expected "small-caps semi-condensed 9px sans-serif" but got "normal small-caps normal semi-condensed 9px/normal sans-serif"
FAIL Property font value 'semi-expanded small-caps normal normal medium/normal cursive' assert_equals: expected "small-caps semi-expanded 16px cursive" but got "normal small-caps normal semi-expanded 16px/normal cursive"
@@ -299,19 +299,19 @@
FAIL Property font value 'extra-expanded small-caps normal 100 larger/calc(120% + 1.2em) monospace' assert_equals: expected "small-caps 100 extra-expanded 48px / normal monospace" but got "normal small-caps 100 extra-expanded 48px/normal monospace"
FAIL Property font value 'ultra-expanded small-caps italic smaller Menu' assert_equals: expected "italic small-caps ultra-expanded 33.33333206176758px Menu" but got "italic small-caps normal ultra-expanded 33.33333206176758px/normal Menu"
FAIL Property font value 'ultra-condensed small-caps italic normal 10px/normal "Non-Generic Example Family Name"' assert_equals: expected "italic small-caps ultra-condensed 10px \"Non-Generic Example Family Name\"" but got "italic small-caps normal ultra-condensed 10px/normal \"Non-Generic Example Family Name\""
-FAIL Property font value 'extra-condensed small-caps italic 900 20%/1.2 serif' assert_equals: expected "italic small-caps 900 extra-condensed 8px / 9px serif" but got "italic small-caps 900 extra-condensed 8px/9px serif"
+FAIL Property font value 'extra-condensed small-caps italic 900 20%/1.2 serif' assert_equals: expected "italic small-caps 900 extra-condensed 8px / 9.600000381469727px serif" but got "italic small-caps 900 extra-condensed 8px/9.600000381469727px serif"
FAIL Property font value 'condensed small-caps bold calc(30% - 40px)/calc(120% + 1.2em) sans-serif' assert_equals: expected "small-caps bold condensed 0px / normal sans-serif" but got "normal small-caps bold condensed 0px/normal sans-serif"
FAIL Property font value 'semi-condensed small-caps bolder normal xx-small cursive' assert_equals: expected "small-caps 900 semi-condensed 9px cursive" but got "normal small-caps 900 semi-condensed 9px/normal cursive"
FAIL Property font value 'semi-expanded small-caps lighter italic medium/normal fantasy' assert_equals: expected "italic small-caps bold semi-expanded 16px fantasy" but got "italic small-caps bold semi-expanded 16px/normal fantasy"
-FAIL Property font value 'expanded 100 xx-large/1.2 monospace' assert_equals: expected "100 expanded 26px / 31px monospace" but got "normal normal 100 expanded 26px/31px monospace"
+FAIL Property font value 'expanded 100 xx-large/1.2 monospace' assert_equals: expected "100 expanded 26px / 31.200000762939453px monospace" but got "normal normal 100 expanded 26px/31.200000762939453px monospace"
FAIL Property font value 'extra-expanded 900 normal larger/calc(120% + 1.2em) Menu' assert_equals: expected "900 extra-expanded 48px / normal Menu" but got "normal normal 900 extra-expanded 48px/normal Menu"
FAIL Property font value 'ultra-expanded bold normal normal smaller "Non-Generic Example Family Name"' assert_equals: expected "bold ultra-expanded 33.33333206176758px \"Non-Generic Example Family Name\"" but got "normal normal bold ultra-expanded 33.33333206176758px/normal \"Non-Generic Example Family Name\""
FAIL Property font value 'ultra-condensed bolder normal italic 10px/normal serif' assert_true: 'ultra-condensed bolder normal italic 10px/normal serif' is a supported value for font. expected true got false
-FAIL Property font value 'extra-condensed lighter normal small-caps 20%/1.2 sans-serif' assert_equals: expected "small-caps bold extra-condensed 8px / 9px sans-serif" but got "normal small-caps bold extra-condensed 8px/9px sans-serif"
+FAIL Property font value 'extra-condensed lighter normal small-caps 20%/1.2 sans-serif' assert_equals: expected "small-caps bold extra-condensed 8px / 9.600000381469727px sans-serif" but got "normal small-caps bold extra-condensed 8px/9.600000381469727px sans-serif"
FAIL Property font value 'condensed 100 italic calc(30% - 40px)/calc(120% + 1.2em) cursive' assert_equals: expected "italic 100 condensed 0px / normal cursive" but got "italic normal 100 condensed 0px/normal cursive"
FAIL Property font value 'semi-condensed 900 italic normal xx-small fantasy' assert_equals: expected "italic 900 semi-condensed 9px fantasy" but got "italic normal 900 semi-condensed 9px/normal fantasy"
FAIL Property font value 'semi-expanded bold italic small-caps medium/normal monospace' assert_equals: expected "italic small-caps bold semi-expanded 13px monospace" but got "italic small-caps bold semi-expanded 13px/normal monospace"
-FAIL Property font value 'expanded bolder small-caps xx-large/1.2 Menu' assert_equals: expected "small-caps 900 expanded 32px / 38px Menu" but got "normal small-caps 900 expanded 32px/38px Menu"
+FAIL Property font value 'expanded bolder small-caps xx-large/1.2 Menu' assert_equals: expected "small-caps 900 expanded 32px / 38.400001525878906px Menu" but got "normal small-caps 900 expanded 32px/38.400001525878906px Menu"
FAIL Property font value 'extra-expanded lighter small-caps normal larger/calc(120% + 1.2em) "Non-Generic Example Family Name"' assert_equals: expected "small-caps bold extra-expanded 48px / normal \"Non-Generic Example Family Name\"" but got "normal small-caps bold extra-expanded 48px/normal \"Non-Generic Example Family Name\""
FAIL Property font value 'ultra-expanded 100 small-caps italic smaller serif' assert_equals: expected "italic small-caps 100 ultra-expanded 33.33333206176758px serif" but got "italic small-caps 100 ultra-expanded 33.33333206176758px/normal serif"
Modified: trunk/Source/WebCore/ChangeLog (270247 => 270248)
--- trunk/Source/WebCore/ChangeLog 2020-11-30 17:07:35 UTC (rev 270247)
+++ trunk/Source/WebCore/ChangeLog 2020-11-30 17:39:41 UTC (rev 270248)
@@ -1,3 +1,25 @@
+2020-11-30 Tyler Wilcock <[email protected]>
+
+ getComputedStyle rounds lineHeight to nearest pixel
+ https://bugs.webkit.org/show_bug.cgi?id=216601
+
+ Reviewed by Simon Fraser.
+
+ When serializing `line-height` for `getComputedStyle`, ensure the
+ value can be represented fractionally (when appropriate). Prior to this
+ patch, `line-height` serialization was always an integer value. Per
+ spec, the used value of `line-height` can be a `<number>` value, which
+ is fractional. Gecko and Chromium allow fractional `line-height`s to be
+ returned from `getComputedStyle`, further confirming this.
+
+ https://drafts.csswg.org/css2/#propdef-line-height
+
+ Test: fast/css/line-height-get-computed-style.html
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::lineHeightFromStyle): Cast result to `double` instead of
+ `int` since `line-height` can be represented fractionally.
+
2020-11-30 Aditya Keerthi <[email protected]>
Use real dates and times as placeholders for date/time inputs with editable components
Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (270247 => 270248)
--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp 2020-11-30 17:07:35 UTC (rev 270247)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp 2020-11-30 17:39:41 UTC (rev 270248)
@@ -1804,7 +1804,7 @@
// for how high to be in pixels does include things like minimum font size and the zoom factor.
// On the other hand, since font-size doesn't include the zoom factor, we really can't do
// that here either.
- return zoomAdjustedPixelValue(static_cast<int>(length.percent() * style.fontDescription().computedSize()) / 100, style);
+ return zoomAdjustedPixelValue(static_cast<double>(length.percent() * style.fontDescription().computedSize()) / 100, style);
}
return zoomAdjustedPixelValue(floatValueForLength(length, 0), style);
}