Explorar o código

replace scripts.get with scripts.inject

Former-commit-id: d469bc7414571065c48b60008db5e99c94c0c167
Gildas %!s(int64=6) %!d(string=hai) anos
pai
achega
39e41198b4
Modificáronse 3 ficheiros con 23 adicións e 28 borrados
  1. 2 22
      extension/core/bg/business.js
  2. 0 1
      extension/core/bg/tabs.js
  3. 21 5
      extension/lib/core/bg/scripts.js

+ 2 - 22
extension/core/bg/business.js

@@ -33,7 +33,7 @@ singlefile.extension.core.bg.business = (() => {
 
 	const pendingSaves = new Map();
 	const currentSaves = new Map();
-	let maxParallelWorkers, scripts;
+	let maxParallelWorkers;
 
 	return {
 		isSavingTab: tab => currentSaves.has(tab.id),
@@ -44,7 +44,6 @@ singlefile.extension.core.bg.business = (() => {
 	async function saveTab(tab, options = {}) {
 		const config = singlefile.extension.core.bg.config;
 		const autosave = singlefile.extension.core.bg.autosave;
-		const tabs = singlefile.extension.core.bg.tabs;
 		const ui = singlefile.extension.ui.bg.main;
 		maxParallelWorkers = (await config.get()).maxParallelWorkers;
 		const tabId = tab.id;
@@ -60,28 +59,9 @@ singlefile.extension.core.bg.business = (() => {
 				ui.onStart(tabId, INJECT_SCRIPTS_STEP);
 				const tabOptions = await config.getOptions(tab.url);
 				Object.keys(options).forEach(key => tabOptions[key] = options[key]);
-				let scriptsInjected;
-				if (!scripts) {
-					scripts = await singlefile.extension.lib.core.bg.scripts.get();
-				}
-				if (!tabOptions.removeFrames) {
-					try {
-						await tabs.executeScript(tabId, { code: scripts.frameScript, allFrames: true, matchAboutBlank: true, runAt: "document_start" });
-					} catch (error) {
-						// ignored
-					}
-				}
-				try {
-					await tabs.executeScript(tabId, { code: scripts.contentScript, allFrames: false, runAt: "document_idle" });
-					scriptsInjected = true;
-				} catch (error) {
-					// ignored
-				}
+				const scriptsInjected = await singlefile.extension.lib.core.bg.scripts.inject(tabId, tabOptions);
 				if (scriptsInjected) {
 					ui.onStart(tabId, EXECUTE_SCRIPTS_STEP);
-					if (tabOptions.frameId) {
-						await tabs.executeScript(tabId, { code: "document.documentElement.dataset.requestedFrameId = true", frameId: tabOptions.frameId, matchAboutBlank: true, runAt: "document_start" });
-					}
 					await requestSaveTab(tabId, "content.save", tabOptions);
 				} else {
 					ui.onForbiddenDomain(tab);

+ 0 - 1
extension/core/bg/tabs.js

@@ -32,7 +32,6 @@ singlefile.extension.core.bg.tabs = (() => {
 		onMessage,
 		get: options => browser.tabs.query(options),
 		sendMessage: (tabId, message, options) => browser.tabs.sendMessage(tabId, message, options),
-		executeScript: (tabId, scriptData) => browser.tabs.executeScript(tabId, scriptData),
 		remove: tabId => browser.tabs.remove(tabId)
 	};
 

+ 21 - 5
extension/lib/core/bg/scripts.js

@@ -72,12 +72,28 @@ singlefile.extension.lib.core.bg.scripts = (() => {
 
 	initScripts();
 	return {
-		async get() {
+		async inject(tabId, options) {
 			await initScripts();
-			return {
-				contentScript: moduleScript + "\n" + contentScript,
-				frameScript
-			};
+			let scriptsInjected;
+			if (!options.removeFrames) {
+				try {
+					await browser.tabs.executeScript(tabId, { code: frameScript, allFrames: true, matchAboutBlank: true, runAt: "document_start" });
+				} catch (error) {
+					// ignored
+				}
+			}
+			try {
+				await browser.tabs.executeScript(tabId, { code: moduleScript + "\n" + contentScript, allFrames: false, runAt: "document_idle" });
+				scriptsInjected = true;
+			} catch (error) {
+				// ignored
+			}
+			if (scriptsInjected) {
+				if (options.frameId) {
+					await browser.tabs.executeScript(tabId, { code: "document.documentElement.dataset.requestedFrameId = true", frameId: options.frameId, matchAboutBlank: true, runAt: "document_start" });
+				}
+			}
+			return scriptsInjected;
 		}
 	};