Просмотр исходного кода

fixed handling of blob: resources

Gildas 7 лет назад
Родитель
Сommit
18a2e1fe6d
1 измененных файлов с 3 добавлено и 3 удалено
  1. 3 3
      lib/single-file/single-file-core.js

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

@@ -1355,7 +1355,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 	const FILE_URI_PREFIX = /^file:\/\//;
 	const FILE_URI_PREFIX = /^file:\/\//;
 	const EMPTY_URL = /^https?:\/\/+\s*$/;
 	const EMPTY_URL = /^https?:\/\/+\s*$/;
 	const ABOUT_BLANK_URI = "about:blank";
 	const ABOUT_BLANK_URI = "about:blank";
-	const NOT_EMPTY_URL = /^(https?|file):\/\/.+/;
+	const NOT_EMPTY_URL = /^(https?:\/\/|file:\/\/|blob:).+/;
 	const REGEXP_URL_FN = /(url\s*\(\s*'(.*?)'\s*\))|(url\s*\(\s*"(.*?)"\s*\))|(url\s*\(\s*(.*?)\s*\))/gi;
 	const REGEXP_URL_FN = /(url\s*\(\s*'(.*?)'\s*\))|(url\s*\(\s*"(.*?)"\s*\))|(url\s*\(\s*(.*?)\s*\))/gi;
 	const REGEXP_URL_SIMPLE_QUOTES_FN = /^url\s*\(\s*'(.*?)'\s*\)$/i;
 	const REGEXP_URL_SIMPLE_QUOTES_FN = /^url\s*\(\s*'(.*?)'\s*\)$/i;
 	const REGEXP_URL_DOUBLE_QUOTES_FN = /^url\s*\(\s*"(.*?)"\s*\)$/i;
 	const REGEXP_URL_DOUBLE_QUOTES_FN = /^url\s*\(\s*"(.*?)"\s*\)$/i;
@@ -1427,7 +1427,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 		}
 		}
 
 
 		static testIgnoredPath(resourceURL) {
 		static testIgnoredPath(resourceURL) {
-			return resourceURL && (resourceURL.startsWith(DATA_URI_PREFIX) || resourceURL.startsWith(BLOB_URI_PREFIX) || resourceURL == ABOUT_BLANK_URI);
+			return resourceURL && (resourceURL.startsWith(DATA_URI_PREFIX) /*|| resourceURL.startsWith(BLOB_URI_PREFIX)*/ || resourceURL == ABOUT_BLANK_URI);
 		}
 		}
 
 
 		static testValidPath(resourceURL, baseURI, docURL) {
 		static testValidPath(resourceURL, baseURI, docURL) {
@@ -1435,7 +1435,7 @@ this.SingleFileCore = this.SingleFileCore || (() => {
 		}
 		}
 
 
 		static testValidURL(resourceURL, baseURI, docURL) {
 		static testValidURL(resourceURL, baseURI, docURL) {
-			return DomUtil.testValidPath(resourceURL, baseURI, docURL) && (resourceURL.match(HTTP_URI_PREFIX) || resourceURL.match(FILE_URI_PREFIX)) && resourceURL.match(NOT_EMPTY_URL);
+			return DomUtil.testValidPath(resourceURL, baseURI, docURL) && (resourceURL.match(HTTP_URI_PREFIX) || resourceURL.match(FILE_URI_PREFIX) || resourceURL.startsWith(BLOB_URI_PREFIX)) && resourceURL.match(NOT_EMPTY_URL);
 		}
 		}
 
 
 		static matchImport(stylesheetContent) {
 		static matchImport(stylesheetContent) {