Bug 1834903 [wpt PR 40210] - Apply font-size-adjust to fallback fonts, a=testonly

Automatic update from web-platform-tests
Apply font-size-adjust to fallback fonts

Fallback fonts ignore font-size-adjust. That is because the primary
font's description is used to create fallback fonts. As a fallback font
can have different font metrics, we should adjust its size.

The subpixel rendering might affect the result on Windows. To make it
happy, we tweak the font size in font-size-adjust-012.html. With this
change, Windows gets a regression on font-size-adjust-010.html due to
unknown reasons. We will handle it in a separate ticket [1].

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=1454612

Test: external/wpt/css/css-fonts/font-size-adjust-012.html
      external/wpt/css/css-fonts/font-size-adjust-metrics-override.html

Bug: 451346
Change-Id: Iab8f14c21fdf501931e62e77e9059737722a050f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4305200
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: ChangSeok Oh <changseok.oh@bytedance.com>
Cr-Commit-Position: refs/heads/main@{#1159352}

--

wpt-commits: 921aaae3e84c182fe2d09ef176a3f03702928a8c
wpt-pr: 40210
This commit is contained in:
ChangSeok Oh 2023-06-19 20:25:57 +00:00 коммит произвёл moz-wptsync-bot
Родитель 2a6b9a1391
Коммит bb80ed1db1
5 изменённых файлов: 120 добавлений и 5 удалений

Просмотреть файл

@ -19,9 +19,9 @@
}
.test {
font-family: var(--primary-font), var(--secondary-font);
font-size: 50px;
font-size: 100px;
color: peru;
height: 50px;
height: 200px;
}
.primary-font {
font-family: var(--primary-font);

Просмотреть файл

@ -23,9 +23,9 @@
}
.test {
font-family: var(--primary-font), var(--secondary-font);
font-size: 50px;
font-size: 100px;
color: peru;
height: 50px;
height: 200px;
}
.primary-font {
font-family: var(--primary-font);

Просмотреть файл

@ -0,0 +1,58 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="help" href="https://www.w3.org/TR/css-fonts-5/#font-size-adjust-prop">
<meta name="assert" content="Tests the simultaneous use of font-size-adjust and metrics override descriptorof of @font-face">
<title>Tests if font metric overrides reflect the adjustment of font-size-adjust.</title>
<style>
@font-face {
font-family: Ahem;
src: local(Ahem), url(/fonts/Ahem.ttf);
}
.reference {
font: 20px Ahem;
position: absolute;
top: 10px;
left: 10px;
}
.overridden-ascent-ref {
display: inline-block;
background-color: green;
width: 1em;
height: 1em; /* Scale a reference block to match the overridden ascent of 100%. */
}
.character {
display: inline-block;
background-color: green;
width: 2em; /* Double-size of an 'X' in Ahem */
height: 2em; /* Double-size of an 'X' in Ahem */
position: absolute;
/* Two times of difference between the overridden ascent and the original ascent */
top: 0.4em;
left: 1em;
}
.overridden-descent-ref {
display: inline-block;
background-color: green;
width: 1em;
height: 0.5em; /* Scale a reference block to match the overridden descen of 50%. */
position: absolute;
top: 2.5em;
left: 3em;
}
</style>
<!--
The three green rectangles below show ascent, character, and descent sizes
from the left. The ascent and descent are overridden by 100% and 50% of the
specified font size, respectively. The test applies font-size-adjust and font
metric overrides simultaneously to text. As we double the text size with
font-size-adjust, the ascent and descent override should scale accordingly
to double their size.
-->
<div class="reference">
<span class="overridden-ascent-ref"></span><span class="character"></span><span class="overridden-descent-ref"></span>
</div>

Просмотреть файл

@ -0,0 +1,55 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="author" href="mailto:changseok@webkit.org">
<link rel="match" href="font-size-adjust-metrics-override-ref.html">
<link rel="help" href="https://www.w3.org/TR/css-fonts-5/#font-size-adjust-prop">
<meta name="assert" content="Tests the simultaneous use of font-size-adjust and metrics override descriptors of @font-face">
<title>Tests if font metric overrides reflect the adjustment of font-size-adjust.</title>
<style>
@font-face {
font-family: Ahem;
src: local(Ahem), url(/fonts/Ahem.ttf);
/* The default ascent and descent are 80% and 20%, respectively. */
ascent-override: 100%;
descent-override: 50%;
}
.size-adjusted {
font: 20px Ahem;
/* Scale up 200% since the Ahem font has an aspect ratio of 0.8 of x-height
to size. */
font-size-adjust: 1.6;
color: green;
position: absolute;
top: 10px;
left: 10px;
}
.overridden-ascent-ref {
display: inline-block;
background-color: green;
vertical-align: top;
width: 1em;
height: 1em; /* Scale a reference block to match the overridden ascent of 100%. */
}
.overridden-descent-ref {
display: inline-block;
background-color: green;
vertical-align: bottom;
width: 1em;
height: 0.5em; /* Scale a reference block to match the overridden descen of 50%. */
}
</style>
<!--
The three green rectangles below show ascent, character, and descent sizes
from the left. The ascent and descent are overridden by 100% and 50% of the
specified font size, respectively. The test applies font-size-adjust and font
metric overrides simultaneously to text. As we double the text size with
font-size-adjust, the ascent and descent override should scale accordingly
to double their size.
-->
<div class="size-adjusted">
<span class="overridden-ascent-ref"></span>X<span class="overridden-descent-ref"></span>
</div>

Просмотреть файл

@ -610,6 +610,8 @@ AHEM SYSTEM FONT: css/css-fonts/font-size-adjust-012.html
AHEM SYSTEM FONT: css/css-fonts/font-size-adjust-012-ref.html
AHEM SYSTEM FONT: css/css-fonts/font-size-adjust-013.html
AHEM SYSTEM FONT: css/css-fonts/font-size-adjust-013-ref.html
AHEM SYSTEM FONT: css/css-fonts/font-size-adjust-metrics-override.html
AHEM SYSTEM FONT: css/css-fonts/font-size-adjust-metrics-override-ref.html
AHEM SYSTEM FONT: css/css-fonts/line-gap-override.html
AHEM SYSTEM FONT: html/dom/render-blocking/remove-attr-unblocks-rendering.optional.html
AHEM SYSTEM FONT: html/dom/render-blocking/remove-element-unblocks-rendering.optional.html