Quellcode durchsuchen

fixed "save frame" feature

Gildas vor 7 Jahren
Ursprung
Commit
24392f66ee

+ 1 - 1
extension/core/bg/messages.js

@@ -23,7 +23,7 @@
 singlefile.messages = (() => {
 
 	browser.runtime.onMessage.addListener((message, sender) => {
-		if (message.loadFileURI) {
+		if (message.loadFileURI || message.savePage) {
 			return singlefile.tabs.onMessage(message, sender);
 		}
 		if (message.download) {

+ 8 - 3
extension/core/bg/tabs.js

@@ -29,11 +29,16 @@ singlefile.tabs = (() => {
 	return {
 		onMessage,
 		get: options => browser.tabs.query(options),
-		sendMessage: (tabId, message) => browser.tabs.sendMessage(tabId, message)
+		sendMessage: (tabId, message, options) => browser.tabs.sendMessage(tabId, message, options)
 	};
 
-	async function onMessage(message) {
-		return singlefile.config.getOptions(message.url);
+	async function onMessage(message, sender) {
+		if (message.loadFileURI) {
+			return singlefile.config.getOptions(message.url);
+		}
+		if (message.savePage) {
+			return singlefile.tabs.sendMessage(sender.tab.id, message, { frameId: 0 });
+		}
 	}
 
 	function onTabCreated(tab) {

+ 7 - 3
extension/core/content/content-frame.js

@@ -26,11 +26,15 @@ this.singlefile.frame = this.singlefile.frame || (() => {
 		browser.runtime.onMessage.addListener(message => {
 			if (message.saveFrame) {
 				message.options.content = docHelper.serialize(document);
-				message.saveFrameFrame = null;
-				message.options.frameId = null;
+				delete message.saveFrame;
+				delete message.options.frameId;
 				message.savePage = true;
 				message.options.url = document.location.href;
-				top.postMessage("__SingleFile__::" + JSON.stringify(message), "*");
+				if (this.browser && browser.runtime && browser.runtime.sendMessage) {
+					browser.runtime.sendMessage(message);
+				} else {
+					top.postMessage("__SingleFile__::" + JSON.stringify(message), "*");
+				}
 			}
 		});
 	}