Explorar o código

fixed memory leak, second attempt

Sebastian Jakubiak %!s(int64=6) %!d(string=hai) anos
pai
achega
20b521f92e
Modificáronse 1 ficheiros con 11 adicións e 3 borrados
  1. 11 3
      extension/core/bg/data/config.js

+ 11 - 3
extension/core/bg/data/config.js

@@ -362,15 +362,23 @@ singlefile.config = (() => {
 			filename: "singlefile-settings.json",
 			saveAs: true
 		};
+		try {
+			return await downloadConfig(downloadInfo);
+		} finally {
+			URL.revokeObjectURL(url);
+		}
+	}
+
+	async function downloadConfig(downloadInfo) {
 		let downloadId;
 		try {
 			downloadId = await browser.downloads.download(downloadInfo);
 		} catch (error) {
-			if (!error.message || !error.message.toLowerCase().includes("canceled")) {
+			if (error.message && error.message.toLowerCase().includes("canceled")) {
+				return {};
+			} else {
 				throw error;
 			}
-		} finally {
-			URL.revokeObjectURL(url);
 		}
 		return new Promise((resolve, reject) => {
 			browser.downloads.onChanged.addListener(onChanged);