script: add skeleton implementation of FontFace API (#35262)

This patch implements the `FontFace` interface, but with some caveats

1. The interface is only exposed on `Window`. Support for Workers will
   be handled in the future.
2. The concept of `css-connected` `FontFace` is not implemented, so
   `@font-face` rules in stylesheets will not be represented in the DOM.
3. The constructor only supports using `url()` strings as source
   and `ArrayBuffer` and `ArrayBufferView` are not supported yet.

A skeleton implementation of the `load` method of `FontFaceSet` is also
implemented in this patch. The intention is to support some web pages
that don't load without this method.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
This commit is contained in:
Mukilan Thiyagarajan 2025-02-19 11:20:01 +05:30 committed by GitHub
parent 29e0fad21e
commit 56840e0a35
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
52 changed files with 1160 additions and 551 deletions

View file

@ -1,156 +0,0 @@
[font-parse-numeric-stretch-style-weight.html]
[Valid value 100 matches 100 for weight in @font-face.]
expected: FAIL
[Valid value 700 matches 700 for weight in @font-face.]
expected: FAIL
[Valid value 900 matches 900 for weight in @font-face.]
expected: FAIL
[Valid value bold matches bold for weight in @font-face.]
expected: FAIL
[Valid value normal matches normal for weight in @font-face.]
expected: FAIL
[Valid value 100 400 matches 100 400 for weight in @font-face.]
expected: FAIL
[Valid value 100 101.5 matches 100 101.5 for weight in @font-face.]
expected: FAIL
[Valid value 999.8 999.9 matches 999.8 999.9 for weight in @font-face.]
expected: FAIL
[Valid value 500 400 matches 500 400 for weight in @font-face.]
expected: FAIL
[Valid value 0% matches 0% for stretch in @font-face.]
expected: FAIL
[Valid value calc(0% - 10%) matches calc(-10%) for stretch in @font-face.]
expected: FAIL
[Valid value 100% matches 100% for stretch in @font-face.]
expected: FAIL
[Valid value 110% matches 110% for stretch in @font-face.]
expected: FAIL
[Valid value 111.5% matches 111.5% for stretch in @font-face.]
expected: FAIL
[Valid value 50% 200% matches 50% 200% for stretch in @font-face.]
expected: FAIL
[Valid value 0.1% 1% matches 0.1% 1% for stretch in @font-face.]
expected: FAIL
[Valid value 900% 901% matches 900% 901% for stretch in @font-face.]
expected: FAIL
[Valid value ultra-condensed matches ultra-condensed for stretch in @font-face.]
expected: FAIL
[Valid value ultra-expanded matches ultra-expanded for stretch in @font-face.]
expected: FAIL
[Valid value normal matches normal for style in @font-face.]
expected: FAIL
[Valid value italic matches italic for style in @font-face.]
expected: FAIL
[Valid value oblique matches oblique for style in @font-face.]
expected: FAIL
[Valid value oblique 10deg matches oblique 10deg for style in @font-face.]
expected: FAIL
[Valid value oblique 10deg 20deg matches oblique 10deg 20deg for style in @font-face.]
expected: FAIL
[Value 0 must not be accepted as weight in @font-face.]
expected: FAIL
[Value 0.9 must not be accepted as weight in @font-face.]
expected: FAIL
[Value -100 200 must not be accepted as weight in @font-face.]
expected: FAIL
[Value 100 -200 must not be accepted as weight in @font-face.]
expected: FAIL
[Value 100 1001 must not be accepted as weight in @font-face.]
expected: FAIL
[Value 1001 must not be accepted as weight in @font-face.]
expected: FAIL
[Value 1000.5 must not be accepted as weight in @font-face.]
expected: FAIL
[Value 100 200 300 must not be accepted as weight in @font-face.]
expected: FAIL
[Value a must not be accepted as weight in @font-face.]
expected: FAIL
[Value a b c must not be accepted as weight in @font-face.]
expected: FAIL
[Value -0.5% must not be accepted as stretch in @font-face.]
expected: FAIL
[Value -1% must not be accepted as stretch in @font-face.]
expected: FAIL
[Value 60% 70% 80% must not be accepted as stretch in @font-face.]
expected: FAIL
[Value a% must not be accepted as stretch in @font-face.]
expected: FAIL
[Value a b c must not be accepted as stretch in @font-face.]
expected: FAIL
[Value 0.1 must not be accepted as stretch in @font-face.]
expected: FAIL
[Value -60% 80% must not be accepted as stretch in @font-face.]
expected: FAIL
[Value ultra-expannnned must not be accepted as stretch in @font-face.]
expected: FAIL
[Value 50% 0 must not be accepted as stretch in @font-face.]
expected: FAIL
[Value oblique 100deg must not be accepted as style in @font-face.]
expected: FAIL
[Value oblique italic must not be accepted as style in @font-face.]
expected: FAIL
[Value oblique -91deg must not be accepted as style in @font-face.]
expected: FAIL
[Value oblique 0 must not be accepted as style in @font-face.]
expected: FAIL
[Value oblique 10 must not be accepted as style in @font-face.]
expected: FAIL
[Value iiitalic must not be accepted as style in @font-face.]
expected: FAIL
[Value 90deg must not be accepted as style in @font-face.]
expected: FAIL
[Value 11 must not be accepted as style in @font-face.]
expected: FAIL
[Value italic 90deg must not be accepted as style in @font-face.]
expected: FAIL