feat: Stop using folder refs to prevent leakage, b=no-bug, c=folders

This commit is contained in:
mr. m
2026-02-28 11:22:55 +01:00
parent 881c411a26
commit ee3ec4c1ea
3 changed files with 6 additions and 13 deletions

View File

@@ -39,7 +39,6 @@ class nsZenLiveFoldersManager {
this.liveFolders = new Map();
this.registry = new Map();
this.dismissedItems = new Set();
this.folderRefs = new WeakMap();
}
get window() {
@@ -217,7 +216,6 @@ class nsZenLiveFoldersManager {
});
this.liveFolders.set(folder.id, liveFolder);
this.folderRefs.set(liveFolder, folder);
liveFolder.start();
this.saveState();
@@ -458,20 +456,14 @@ class nsZenLiveFoldersManager {
}
getFolderForLiveFolder(liveFolder) {
if (this.folderRefs.has(liveFolder)) {
return this.folderRefs.get(liveFolder);
}
if (!this.window) {
return null;
}
const folder = lazy.ZenWindowSync.getItemFromWindow(this.window, liveFolder.id);
if (folder?.isZenFolder) {
this.folderRefs.set(liveFolder, folder);
return folder;
}
return folder;
return null;
}
#makeCompositeId(folderId, itemId) {
@@ -578,7 +570,6 @@ class nsZenLiveFoldersManager {
});
this.liveFolders.set(entry.id, liveFolder);
this.folderRefs.set(liveFolder, folder);
liveFolder.tabsState = entry.tabsState || [];
liveFolder.state.lastErrorId = entry.data.state.lastErrorId;
if (entry.dismissedItems && Array.isArray(entry.dismissedItems)) {

View File

@@ -78,7 +78,8 @@ export class nsGithubLiveFolderProvider extends nsZenLiveFolderProvider {
this.state.repos = activeRepos;
return items;
} catch {
} catch (error) {
console.error("Error fetching or parsing GitHub issues:", error);
return "zen-live-folder-failed-fetch";
}
}

View File

@@ -80,7 +80,8 @@ export class nsRssLiveFolderProvider extends nsZenLiveFolderProvider {
}
}
return items;
} catch {
} catch (error) {
console.error("Error fetching or parsing RSS feed:", error);
return "zen-live-folder-failed-fetch";
}
}