Преглед изворни кода

better handling of duplicate stylesheets

Former-commit-id: d065aa04739e09d11e56746b56e73d2a9fbf6c2c
Gildas пре 6 година
родитељ
комит
ecc03a7f34
1 измењених фајлова са 3 додато и 3 уклоњено
  1. 3 3
      lib/single-file/single-file-core.js

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

@@ -1420,7 +1420,6 @@ this.singlefile.lib.core = this.singlefile.lib.core || (() => {
 							// ignored
 						}
 						if (Util.testValidURL(resourceURL) && !importedStyleSheets.has(resourceURL)) {
-							importedStyleSheets.add(resourceURL);
 							const content = await util.getContent(resourceURL, {
 								maxResourceSize: options.maxResourceSize,
 								maxResourceSizeEnabled: options.maxResourceSizeEnabled,
@@ -1435,7 +1434,9 @@ this.singlefile.lib.core = this.singlefile.lib.core || (() => {
 							}
 							importedStylesheetContent = Util.wrapMediaQuery(importedStylesheetContent, match.media);
 							if (stylesheetContent.includes(cssImport)) {
-								importedStylesheetContent = await ProcessorHelper.resolveImportURLs(importedStylesheetContent, resourceURL, options, workStylesheet, importedStyleSheets);
+								const ancestorStyleSheets = new Set(importedStyleSheets);
+								ancestorStyleSheets.add(resourceURL);
+								importedStylesheetContent = await ProcessorHelper.resolveImportURLs(importedStylesheetContent, resourceURL, options, workStylesheet, ancestorStyleSheets);
 								workStylesheet.textContent = importedStylesheetContent;
 								if (workStylesheet.sheet.cssRules.length) {
 									stylesheetContent = stylesheetContent.replace(regExpCssImport, importedStylesheetContent);
@@ -1444,7 +1445,6 @@ this.singlefile.lib.core = this.singlefile.lib.core || (() => {
 								}
 							}
 						} else {
-							importedStyleSheets.add(resourceURL);
 							stylesheetContent = stylesheetContent.replace(regExpCssImport, "");
 						}
 					} else {