mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-27 02:05:07 +02:00
LibWeb: Throw SyntaxError when FontFaceSet contains var
This commit is contained in:
Notes:
github-actions[bot]
2025-07-01 10:51:32 +00:00
Author: https://github.com/Gingeh Commit: https://github.com/LadybirdBrowser/ladybird/commit/0e3386bb4cb Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5263 Reviewed-by: https://github.com/AtkinsSJ ✅
@@ -0,0 +1,44 @@
|
||||
<!DOCTYPE html>
|
||||
<title>SyntaxError thrown when matching loading values with var()</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-font-loading/#font-face-set-load">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-font-loading/#find-the-matching-font-faces">
|
||||
<script src="../../resources/testharness.js"></script>
|
||||
<script src="../../resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
|
||||
function load_on_worker(keyword) {
|
||||
return new Promise((resolve, reject) =>{
|
||||
var blob = new Blob([`
|
||||
self.fonts.load('${keyword}').then(
|
||||
()=>{ self.postMessage('success') },
|
||||
(e)=>{ self.postMessage(e) }
|
||||
);
|
||||
`]);
|
||||
var blob_url = window.URL.createObjectURL(blob);
|
||||
let worker = new Worker(blob_url);
|
||||
worker.onmessage = msg => {
|
||||
if (msg === 'success')
|
||||
resolve(msg.data)
|
||||
else
|
||||
reject(msg.data)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
promise_test(test => {
|
||||
return promise_rejects_dom(test, 'SyntaxError', document.fonts.load('var(--x) serif'));
|
||||
}, 'Loading "var(--x) serif" causes SyntaxError (document)')
|
||||
|
||||
promise_test(test => {
|
||||
return promise_rejects_dom(test, 'SyntaxError', document.fonts.load('var(--x, 10px) serif'));
|
||||
}, 'Loading "var(--x, 10px) serif" causes SyntaxError (document)')
|
||||
|
||||
promise_test(test => {
|
||||
return promise_rejects_dom(test, 'SyntaxError', load_on_worker('var(--x) serif'));
|
||||
}, 'Loading "var(--x) serif" causes SyntaxError (worker)')
|
||||
|
||||
promise_test(test => {
|
||||
return promise_rejects_dom(test, 'SyntaxError', load_on_worker('var(--x, 10px) serif'));
|
||||
}, 'Loading "var(--x, 10px) serif" causes SyntaxError (worker)')
|
||||
|
||||
</script>
|
||||
Reference in New Issue
Block a user