Bladeren bron

minor fixes

Gildas 7 jaren geleden
bovenliggende
commit
7953dff1a7
3 gewijzigde bestanden met toevoegingen van 14 en 12 verwijderingen
  1. 1 1
      extension/core/content/content-autosave.js
  2. 5 3
      lib/single-file/doc-helper.js
  3. 8 8
      lib/single-file/frame-tree.js

+ 1 - 1
extension/core/content/content-autosave.js

@@ -59,7 +59,7 @@ this.singlefile.autosave = this.singlefile.autosave || (async () => {
 					framesData,
 					url: location.href
 				});
-				docHelper.postProcessDoc(document, window);
+				docHelper.postProcessDoc(document, options);
 				singlefile.pageAutoSaved = true;
 			}
 		}

+ 5 - 3
lib/single-file/doc-helper.js

@@ -64,11 +64,13 @@ this.docHelper = this.docHelper || (() => {
 			if (!options.removeScripts) {
 				ignoredTags = ignoredTags.concat("SCRIPT");
 			}
-			markHiddenCandidates(win, doc.body, markerRemovedContent, markerRemovedCandidate, ignoredTags);
-			markHiddenElements(win, doc.body, markerRemovedContent);
+			if (win) {
+				markHiddenCandidates(win, doc.body, markerRemovedContent, markerRemovedCandidate, ignoredTags);
+				markHiddenElements(win, doc.body, markerRemovedContent);
+			}
 			doc.querySelectorAll(("[" + markerRemovedCandidate + "]")).forEach(element => element.removeAttribute(markerRemovedCandidate));
 		}
-		if (options.compressHTML) {
+		if (win && options.compressHTML) {
 			doc.querySelectorAll("*").forEach(element => {
 				const style = win.getComputedStyle(element);
 				if (style && style.whiteSpace.startsWith("pre")) {

+ 8 - 8
lib/single-file/frame-tree.js

@@ -132,12 +132,12 @@ this.frameTree = this.frameTree || (() => {
 					/* ignored */
 				}
 				timeout.set(async () => {
-					let content;
+					let frameDoc;
 					if (frameElement.src && frameElement.src.match(PREFIX_VALID_FRAME_URL)) {
-						content = await getFrameContent(frameElement.src, parentWindowId, options);
+						frameDoc = await getFrameDoc(frameElement.src, parentWindowId, options);
 					}
-					if (content) {
-						sendInitResponse({ framesData: [{ windowId, processed: true, content }], sessionId });
+					if (frameDoc) {
+						sendInitResponse({ framesData: [getFrameData(frameDoc, null, windowId, options)] });
 					} else {
 						sendInitResponse({ framesData: [{ windowId, processed: true, timeout: true }], sessionId });
 					}
@@ -183,7 +183,7 @@ this.frameTree = this.frameTree || (() => {
 		}
 	}
 
-	async function getFrameContent(frameUrl, parentWindowId, options) {
+	async function getFrameDoc(frameUrl, parentWindowId, options) {
 		let frameContent;
 		try {
 			frameContent = await ((typeof superFetch !== "undefined" && superFetch.fetch) || fetch)(frameUrl);
@@ -214,9 +214,9 @@ this.frameTree = this.frameTree || (() => {
 					}
 				}
 			}
-			const buffer = await frameContent.arrayBuffer();
 			let doc;
 			try {
+				const buffer = await frameContent.arrayBuffer();
 				const content = (new TextDecoder(charSet)).decode(buffer);
 				const domParser = new DOMParser();
 				doc = domParser.parseFromString(content, mimeType);
@@ -229,7 +229,7 @@ this.frameTree = this.frameTree || (() => {
 					const windowId = parentWindowId + WINDOW_ID_SEPARATOR + frameIndex;
 					frameElement.setAttribute(docHelper.windowIdAttributeName(options.sessionId), windowId);
 				});
-				return docHelper.serialize(doc);
+				return doc;
 			}
 		}
 	}
@@ -247,7 +247,7 @@ this.frameTree = this.frameTree || (() => {
 	function getFrameData(document, window, windowId, options) {
 		const docData = docHelper.preProcessDoc(document, window, options);
 		const content = docHelper.serialize(document);
-		docHelper.postProcessDoc(document, window, options);
+		docHelper.postProcessDoc(document, options);
 		const baseURI = document.baseURI.split("#")[0];
 		return {
 			windowId,