|
|
@@ -222,9 +222,11 @@ async function processFontFaceRule(ruleData, fontInfo, fontURLs, fontTests, stat
|
|
|
if (FontFace) {
|
|
|
const fontFace = new FontFace("test-font", source.src);
|
|
|
try {
|
|
|
- await fontFace.load();
|
|
|
- await fontFace.loaded;
|
|
|
- source.valid = true;
|
|
|
+ let timeout;
|
|
|
+ await Promise.race([
|
|
|
+ fontFace.load().then(() => fontFace.loaded).then(() => { source.valid = true; globalThis.clearTimeout(timeout); }),
|
|
|
+ new Promise(resolve => timeout = globalThis.setTimeout(() => { source.valid = true; resolve(); }, FONT_MAX_LOAD_DELAY))
|
|
|
+ ]);
|
|
|
} catch (error) {
|
|
|
const declarationFontURLs = fontURLs.get(srcDeclaration.data);
|
|
|
if (declarationFontURLs) {
|
|
|
@@ -232,11 +234,11 @@ async function processFontFaceRule(ruleData, fontInfo, fontURLs, fontTests, stat
|
|
|
if (fontURL) {
|
|
|
const fontFace = new FontFace("test-font", "url(" + fontURL + ")");
|
|
|
try {
|
|
|
- await Promise.race(
|
|
|
- [
|
|
|
- fontFace.load().then(() => fontFace.loaded).then(() => source.valid = true),
|
|
|
- new Promise(resolve => globalThis.setTimeout(() => { source.valid = true; resolve(); }, FONT_MAX_LOAD_DELAY))
|
|
|
- ]);
|
|
|
+ let timeout;
|
|
|
+ await Promise.race([
|
|
|
+ fontFace.load().then(() => fontFace.loaded).then(() => { source.valid = true; globalThis.clearTimeout(timeout); }),
|
|
|
+ new Promise(resolve => timeout = globalThis.setTimeout(() => { source.valid = true; resolve(); }, FONT_MAX_LOAD_DELAY))
|
|
|
+ ]);
|
|
|
} catch (error) {
|
|
|
// ignored
|
|
|
}
|