mirror of
https://github.com/zen-browser/desktop.git
synced 2026-03-29 11:51:51 +00:00
feat: Stop using folder refs to prevent leakage, b=no-bug, c=folders
This commit is contained in:
@@ -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)) {
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user