Procházet zdrojové kódy

fixed memory leak

Former-commit-id: 3e15e1b5f13f68b93ce54273a805ac2b52dc3a45
Gildas před 6 roky
rodič
revize
686f3e5cfb
2 změnil soubory, kde provedl 10 přidání a 1 odebrání
  1. 9 1
      extension/core/bg/editor.js
  2. 1 0
      extension/core/bg/tabs.js

+ 9 - 1
extension/core/bg/editor.js

@@ -30,9 +30,10 @@ singlefile.extension.core.bg.editor = (() => {
 	return {
 		onMessage,
 		onTabRemoved,
+		onTabUpdated,
 		async open({ content, filename }, options) {
 			const tab = await browser.tabs.create({ active: true, url: "/extension/ui/pages/editor.html" });
-			tabsData.set(tab.id, { content, filename, options });
+			tabsData.set(tab.id, { content, filename, options, url: tab.url });
 		}
 	};
 
@@ -40,6 +41,13 @@ singlefile.extension.core.bg.editor = (() => {
 		tabsData.delete(tabId);
 	}
 
+	async function onTabUpdated(tabId, changeInfo, tab) {
+		const tabData = tabsData.get(tab.id);
+		if (tabData && tabData.url != tab.url) {
+			tabsData.delete(tabId);
+		}
+	}
+
 	async function onMessage(message, sender) {
 		if (message.method.endsWith(".getTabData")) {
 			const tab = sender.tab;

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

@@ -79,6 +79,7 @@ singlefile.extension.core.bg.tabs = (() => {
 		}
 		if (changeInfo.status == "complete") {
 			singlefile.extension.core.bg.autosave.onTabUpdated(tabId, changeInfo, tab);
+			singlefile.extension.core.bg.editor.onTabUpdated(tabId, changeInfo, tab);
 		}
 	}