Răsfoiți Sursa

fixed script injection issue

Former-commit-id: 1e138f30935636faf7cf5c45194626bf219803a5
Gildas 6 ani în urmă
părinte
comite
50770b3061
1 a modificat fișierele cu 16 adăugiri și 12 ștergeri
  1. 16 12
      lib/single-file/processors/hooks/content/content-hooks-frames.js

+ 16 - 12
lib/single-file/processors/hooks/content/content-hooks-frames.js

@@ -47,24 +47,28 @@ this.singlefile.lib.processors.hooks.content.frames = this.singlefile.lib.proces
 	const fontFaces = [];
 	const fontFaces = [];
 
 
 	if (document instanceof HTMLDocument) {
 	if (document instanceof HTMLDocument) {
-		let scriptElement = document.createElement("script");
 		if (browser && browser.runtime && browser.runtime.getURL) {
 		if (browser && browser.runtime && browser.runtime.getURL) {
+			addEventListener.call(window, NEW_FONT_FACE_EVENT, event => {
+				const detail = event.detail;
+				if (!fontFaces.find(fontFace => JSON.stringify(fontFace) == JSON.stringify(detail))) {
+					fontFaces.push(event.detail);
+				}
+			});
+			let scriptElement = document.createElement("script");
+			scriptElement.textContent = "(" + injectedScript.toString() + ")()";
+			(document.documentElement || document).appendChild(scriptElement);
+			scriptElement.remove();
+			scriptElement = document.createElement("script");
 			scriptElement.src = browser.runtime.getURL("/lib/single-file/processors/hooks/content/content-hooks-frames-web.js");
 			scriptElement.src = browser.runtime.getURL("/lib/single-file/processors/hooks/content/content-hooks-frames-web.js");
 			scriptElement.async = false;
 			scriptElement.async = false;
+			(document.documentElement || document).appendChild(scriptElement);
+			scriptElement.remove();
 		} else if (this.singlefile.lib.getFileContent) {
 		} else if (this.singlefile.lib.getFileContent) {
+			const scriptElement = document.createElement("script");
 			scriptElement.textContent = this.singlefile.lib.getFileContent("/lib/single-file/processors/hooks/content/content-hooks-frames-web.js");
 			scriptElement.textContent = this.singlefile.lib.getFileContent("/lib/single-file/processors/hooks/content/content-hooks-frames-web.js");
+			(document.documentElement || document).appendChild(scriptElement);
+			scriptElement.remove();
 		}
 		}
-		(document.documentElement || document).appendChild(scriptElement);
-		scriptElement.remove();
-		scriptElement = document.createElement("script");
-		scriptElement.textContent = "(" + injectedScript.toString() + ")()";
-		(document.documentElement || document).appendChild(scriptElement);
-		addEventListener.call(window, NEW_FONT_FACE_EVENT, event => {
-			const detail = event.detail;
-			if (!fontFaces.find(fontFace => JSON.stringify(fontFace) == JSON.stringify(detail))) {
-				fontFaces.push(event.detail);
-			}
-		});
 	}
 	}
 
 
 	return {
 	return {