Procházet zdrojové kódy

circumvent side effect on Chrome (validate fonts in // of downloads)

Gildas před 7 roky
rodič
revize
1d6c5908cc
1 změnil soubory, kde provedl 4 přidání a 6 odebrání
  1. 4 6
      lib/single-file/single-file-core.js

+ 4 - 6
lib/single-file/single-file-core.js

@@ -886,6 +886,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 	const PREFIX_DATA_URI_IMAGE_SVG = "data:image/svg+xml";
 	const PREFIX_DATA_URI_NO_MIMETYPE = "data:;";
 	const PREFIX_DATA_URI_OCTET_STREAM = /^data:(application|binary)\/octet-stream/;
+	const PREFIX_DATA_URI_VND = "data:application/vnd.";
 	const SINGLE_FILE_VARIABLE_NAME_PREFIX = "--sf-img-";
 
 	class DomProcessorHelper {
@@ -1082,12 +1083,9 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 				const resourceURL = DomUtil.normalizeURL(originalResourceURL);
 				if (!DomUtil.testIgnoredPath(resourceURL)) {
 					if (DomUtil.testValidURL(resourceURL, baseURI, options.url)) {
-						let { content, indexResource, duplicate } = await batchRequest.addURL(resourceURL);
-						if (processFont) {
-							const validFont = await DOM.validFont(content);
-							if (!validFont) {
-								content = EMPTY_DATA_URI;
-							}
+						let [{ content, indexResource, duplicate }, validResource] = await Promise.all([batchRequest.addURL(resourceURL), !processFont || DOM.validFont(resourceURL)]);
+						if (processFont && !content.startsWith(PREFIX_DATA_URI_VND) && !validResource) {
+							content = EMPTY_DATA_URI;
 						}
 						let regExpUrlFunction = DomUtil.getRegExp(urlFunction);
 						if (!stylesheetContent.match(regExpUrlFunction)) {