mirror of
https://github.com/zen-browser/desktop.git
synced 2026-04-28 10:14:12 +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.liveFolders = new Map();
|
||||||
this.registry = new Map();
|
this.registry = new Map();
|
||||||
this.dismissedItems = new Set();
|
this.dismissedItems = new Set();
|
||||||
this.folderRefs = new WeakMap();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get window() {
|
get window() {
|
||||||
@@ -217,7 +216,6 @@ class nsZenLiveFoldersManager {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.liveFolders.set(folder.id, liveFolder);
|
this.liveFolders.set(folder.id, liveFolder);
|
||||||
this.folderRefs.set(liveFolder, folder);
|
|
||||||
|
|
||||||
liveFolder.start();
|
liveFolder.start();
|
||||||
this.saveState();
|
this.saveState();
|
||||||
@@ -458,20 +456,14 @@ class nsZenLiveFoldersManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getFolderForLiveFolder(liveFolder) {
|
getFolderForLiveFolder(liveFolder) {
|
||||||
if (this.folderRefs.has(liveFolder)) {
|
|
||||||
return this.folderRefs.get(liveFolder);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this.window) {
|
if (!this.window) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
const folder = lazy.ZenWindowSync.getItemFromWindow(this.window, liveFolder.id);
|
const folder = lazy.ZenWindowSync.getItemFromWindow(this.window, liveFolder.id);
|
||||||
if (folder?.isZenFolder) {
|
if (folder?.isZenFolder) {
|
||||||
this.folderRefs.set(liveFolder, folder);
|
return folder;
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
return folder;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#makeCompositeId(folderId, itemId) {
|
#makeCompositeId(folderId, itemId) {
|
||||||
@@ -578,7 +570,6 @@ class nsZenLiveFoldersManager {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.liveFolders.set(entry.id, liveFolder);
|
this.liveFolders.set(entry.id, liveFolder);
|
||||||
this.folderRefs.set(liveFolder, folder);
|
|
||||||
liveFolder.tabsState = entry.tabsState || [];
|
liveFolder.tabsState = entry.tabsState || [];
|
||||||
liveFolder.state.lastErrorId = entry.data.state.lastErrorId;
|
liveFolder.state.lastErrorId = entry.data.state.lastErrorId;
|
||||||
if (entry.dismissedItems && Array.isArray(entry.dismissedItems)) {
|
if (entry.dismissedItems && Array.isArray(entry.dismissedItems)) {
|
||||||
|
|||||||
@@ -78,7 +78,8 @@ export class nsGithubLiveFolderProvider extends nsZenLiveFolderProvider {
|
|||||||
this.state.repos = activeRepos;
|
this.state.repos = activeRepos;
|
||||||
|
|
||||||
return items;
|
return items;
|
||||||
} catch {
|
} catch (error) {
|
||||||
|
console.error("Error fetching or parsing GitHub issues:", error);
|
||||||
return "zen-live-folder-failed-fetch";
|
return "zen-live-folder-failed-fetch";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,7 +80,8 @@ export class nsRssLiveFolderProvider extends nsZenLiveFolderProvider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return items;
|
return items;
|
||||||
} catch {
|
} catch (error) {
|
||||||
|
console.error("Error fetching or parsing RSS feed:", error);
|
||||||
return "zen-live-folder-failed-fetch";
|
return "zen-live-folder-failed-fetch";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user