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

allow using the toolbar button to save the page in the editor (Firefox only)

Former-commit-id: 262bf6553c9bc3f97620e263648abcd409102d76
Gildas 6 лет назад
Родитель
Сommit
6c4138231f
2 измененных файлов с 27 добавлено и 12 удалено
  1. 14 11
      extension/core/content/content-main.js
  2. 13 1
      extension/ui/bg/ui-editor.js

+ 14 - 11
extension/core/content/content-main.js

@@ -21,11 +21,12 @@
  *   Source.
  */
 
-/* global browser, document, window, setTimeout */
+/* global browser, document, window, location, setTimeout */
 
 this.singlefile.extension.core.content.main = this.singlefile.extension.core.content.main || (() => {
 
 	const singlefile = this.singlefile;
+	const MOZ_EXTENSION_PROTOCOL = "moz-extension:";
 
 	let ui, processing = false, processor;
 
@@ -44,17 +45,19 @@ this.singlefile.extension.core.content.main = this.singlefile.extension.core.con
 		if (!ui) {
 			ui = singlefile.extension.ui.content.main;
 		}
-		if (message.method == "content.save") {
-			await savePage(message);
-			return {};
-		}
-		if (message.method == "content.cancelSave") {
-			if (processor) {
-				processor.cancel();
-				ui.onEndPage();
-				browser.runtime.sendMessage({ method: "ui.processCancelled" });
+		if (!location.href.startsWith(MOZ_EXTENSION_PROTOCOL)) {
+			if (message.method == "content.save") {
+				await savePage(message);
+				return {};
+			}
+			if (message.method == "content.cancelSave") {
+				if (processor) {
+					processor.cancel();
+					ui.onEndPage();
+					browser.runtime.sendMessage({ method: "ui.processCancelled" });
+				}
+				return {};
 			}
-			return {};
 		}
 	}
 

+ 13 - 1
extension/ui/bg/ui-editor.js

@@ -138,7 +138,7 @@ singlefile.extension.ui.bg.editor = (() => {
 		}
 	};
 	savePageButton.onclick = () => {
-		editorElement.contentWindow.postMessage(JSON.stringify({ method: "getContent", compressHTML: tabData.options.compressHTML }), "*");
+		savePage();
 	};
 	window.onmessage = event => {
 		const message = JSON.parse(event.data);
@@ -165,6 +165,18 @@ singlefile.extension.ui.bg.editor = (() => {
 		editorElement.contentWindow.postMessage(JSON.stringify({ method: "init", content: tabData.content }), "*");
 	};
 
+	browser.runtime.onMessage.addListener(message => {
+		if (message.method == "content.save") {
+			savePage();
+			browser.runtime.sendMessage({ method: "ui.processInit" });
+			return {};			
+		}
+	});
+
+	function savePage() {
+		editorElement.contentWindow.postMessage(JSON.stringify({ method: "getContent", compressHTML: tabData.options.compressHTML }), "*");
+	}
+
 	return {};
 
 })();