Parcourir la source

added watchdog to prevent stuck process

Former-commit-id: 9082c1dc4c27f4be50eeeab0445a535676d539ce
= il y a 6 ans
Parent
commit
ef80a5b971
1 fichiers modifiés avec 4 ajouts et 3 suppressions
  1. 4 3
      lib/single-file/modules/css-fonts-alt-minifier.js

+ 4 - 3
lib/single-file/modules/css-fonts-alt-minifier.js

@@ -58,6 +58,7 @@ this.singlefile.lib.modules.fontsAltMinifier = this.singlefile.lib.modules.fonts
 		"extra-expanded": "150%",
 		"ultra-expanded": "200%"
 	};
+	const FONT_MAX_LOAD_DELAY = 5000;
 
 	return {
 		process: async (doc, stylesheets, fontURLs) => {
@@ -219,9 +220,9 @@ this.singlefile.lib.modules.fontsAltMinifier = this.singlefile.lib.modules.fonts
 					const fontURL = fontURLs.get(srcDeclaration.data);
 					const fontFace = new FontFace("test-font", "url(" + fontURL + ")");
 					try {
-						await fontFace.load();
-						await fontFace.loaded;
-						source.valid = true;
+						await Promise.race(
+							[fontFace.load().then(() => fontFace.loaded).then(() => source.valid = true),
+							new Promise(resolve => setTimeout(resolve, FONT_MAX_LOAD_DELAY))]);
 					} catch (error) {
 						// ignored
 					}