LibWeb: Resolve relative lengths in @font-face using correct viewport

As with everywhere else we should be using the document rather than the
window's viewports.

Fixes #6467
This commit is contained in:
Callum Law 2025-10-15 20:55:58 +13:00 committed by Tim Ledbetter
parent 29fb63c928
commit 3708fc6aa7
Notes: github-actions[bot] 2025-10-16 09:28:48 +00:00
6 changed files with 92 additions and 1 deletions

View file

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<link
rel="match"
href="../../expected/font-face-descriptor-relative-length-iframe-ref.html"
/>
</head>
<body>
<iframe
id="iframe"
width="500"
srcdoc="
<!DOCTYPE html>
<html>
<style>
@font-face {
font-family: test;
src: url(../../data/fail.woff) format(woff);
font-weight: 400;
}
@font-face {
font-family: test;
src: url(../../data/pass.woff) format(woff);
/* Should compute to '100' because 100vw = 500px */
font-weight: calc(100 + (sign(100vw - 500px) * 1000));
}
#foo {
font-family: test;
font-weight: 100;
}
</style>
<body>
<p>Test passes if the word PASS appears below.</p>
<p id='foo'>P</p>
</body>
</html>"
onload="waitForFonts()"
></iframe>
<script>
function waitForFonts() {
iframe.contentDocument.fonts.ready.then(() => {
document.documentElement.classList = "";
});
}
</script>
</body>
</html>