Unregister Zotero_Tabs observers when window is unloaded

This commit is contained in:
Abe Jellinek 2025-07-23 11:54:03 -04:00 • committed by Dan Stillman
parent 5e1541c5ee
commit 1eb248553a

View file

@ -77,10 +77,10 @@ var Zotero_Tabs = new function () {
this._focusOptions = {};
// Keep track of item modifications to update the title
Zotero.Notifier.registerObserver(this, ['item'], 'tabs');
this._notifierID = Zotero.Notifier.registerObserver(this, ['item'], 'tabs');
// Update the title when pref of title format is changed
Zotero.Prefs.registerObserver('tabs.title.reader', async () => {
this._prefsObserverID = Zotero.Prefs.registerObserver('tabs.title.reader', async () => {
for (let tab of this._tabs) {
if (!tab.data.itemID) continue;
let item = Zotero.Items.get(tab.data.itemID);
@ -88,6 +88,11 @@ var Zotero_Tabs = new function () {
this.rename(tab.id, title);
}
});
window.addEventListener('unload', () => {
Zotero.Notifier.unregisterObserver(this._notifierID);
Zotero.Prefs.unregisterObserver(this._prefsObserverID);
});
this._unloadInterval = setInterval(() => {
this.unloadUnusedTabs();