Răsfoiți Sursa

allow embedding images having "binary/octet-stream" as content-type

Gildas 7 ani în urmă
părinte
comite
d90a0fcede
1 a modificat fișierele cu 3 adăugiri și 3 ștergeri
  1. 3 3
      lib/single-file/single-file-core.js

+ 3 - 3
lib/single-file/single-file-core.js

@@ -839,7 +839,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 	const PREFIX_DATA_URI_VIDEO = "data:video/";
 	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/octet-stream";
+	const PREFIX_DATA_URI_OCTET_STREAM = /^data:(application|binary)\/octet-stream/;
 	const SINGLE_FILE_VARIABLE_NAME_PREFIX = "--sf-img-";
 
 	class DomProcessorHelper {
@@ -1097,7 +1097,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 							if (removeElementIfMissing && content == EMPTY_DATA_URI) {
 								resourceElement.remove();
 							} else {
-								if (content.startsWith(prefixDataURI) || content.startsWith(PREFIX_DATA_URI_NO_MIMETYPE) || content.startsWith(PREFIX_DATA_URI_OCTET_STREAM)) {
+								if (content.startsWith(prefixDataURI) || content.startsWith(PREFIX_DATA_URI_NO_MIMETYPE) || content.match(PREFIX_DATA_URI_OCTET_STREAM)) {
 									if (processDuplicates && duplicate && options.groupDuplicateImages && !content.startsWith(PREFIX_DATA_URI_IMAGE_SVG) && DomUtil.replaceImageSource(resourceElement, SINGLE_FILE_VARIABLE_NAME_PREFIX + indexResource, options)) {
 										DomUtil.insertVariable(doc, indexResource, content, options);
 									} else {
@@ -1158,7 +1158,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 							resourceURL = new URL(resourceURL, baseURI).href;
 							if (DomUtil.testValidURL(resourceURL, baseURI, options.url)) {
 								const { content } = await batchRequest.addURL(resourceURL);
-								if (!content.startsWith(prefixDataURI) && !content.startsWith(PREFIX_DATA_URI_NO_MIMETYPE) && !content.startsWith(PREFIX_DATA_URI_OCTET_STREAM)) {
+								if (!content.startsWith(prefixDataURI) && !content.startsWith(PREFIX_DATA_URI_NO_MIMETYPE) && !content.match(PREFIX_DATA_URI_OCTET_STREAM)) {
 									resourceElement.setAttribute(attributeName, EMPTY_IMAGE);
 								}
 								return content + (srcsetValue.w ? " " + srcsetValue.w + "w" : srcsetValue.d ? " " + srcsetValue.d + "x" : "");