1
0
Fork 1
mirror of https://github.com/zen-browser/desktop.git synced 2025-07-10 21:35:29 +02:00

Add debug logging for pinned tab manager and ensure session store initialization

This commit is contained in:
mr. M 2025-01-18 21:38:12 +01:00
parent 1e3b1a6605
commit c44c63d5ce
No known key found for this signature in database
GPG key ID: CBD57A2AEDBDA1FB
4 changed files with 18 additions and 6 deletions

View file

@ -170,6 +170,7 @@ pref('zen.tab-unloader.enabled', true);
pref('zen.tab-unloader.timeout-minutes', 20); pref('zen.tab-unloader.timeout-minutes', 20);
pref('zen.tab-unloader.excluded-urls', "example.com,example.org"); pref('zen.tab-unloader.excluded-urls', "example.com,example.org");
pref('zen.pinned-tab-manager.debug', false);
pref('zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url', false); pref('zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url', false);
pref('zen.pinned-tab-manager.close-shortcut-behavior', 'switch'); pref('zen.pinned-tab-manager.close-shortcut-behavior', 'switch');

View file

@ -51,6 +51,7 @@
if (!this.enabled) { if (!this.enabled) {
return; return;
} }
this._canLog = Services.prefs.getBoolPref('zen.pinned-tab-manager.debug', false);
this.observer = new ZenPinnedTabsObserver(); this.observer = new ZenPinnedTabsObserver();
this._initClosePinnedTabShortcut(); this._initClosePinnedTabShortcut();
this._insertItemsIntoTabContextMenu(); this._insertItemsIntoTabContextMenu();
@ -71,6 +72,12 @@
await this._refreshPinnedTabs(newWorkspace, { init: onInit }); await this._refreshPinnedTabs(newWorkspace, { init: onInit });
} }
log(message) {
if (this._canLog) {
console.log(`[ZenPinnedTabManager] ${message}`);
}
}
onTabIconChanged(tab, url = null) { onTabIconChanged(tab, url = null) {
const iconUrl = url ?? tab.iconImage.src; const iconUrl = url ?? tab.iconImage.src;
if (tab.hasAttribute('zen-essential')) { if (tab.hasAttribute('zen-essential')) {
@ -128,6 +135,7 @@
this._pinsCache = []; this._pinsCache = [];
} }
this.log(`Initialized pins cache with ${this._pinsCache.length} pins`);
return this._pinsCache; return this._pinsCache;
} }
@ -224,6 +232,7 @@
SessionStore.setTabState(newTab, state); SessionStore.setTabState(newTab, state);
} }
this.log(`Created new pinned tab for pin ${pin.uuid} (isEssential: ${pin.isEssential})`);
gBrowser.pinTab(newTab); gBrowser.pinTab(newTab);
newTab.initialize(); newTab.initialize();
@ -372,6 +381,7 @@
return; return;
} }
this.log(`Setting pinned attributes for tab ${tab.linkedBrowser.currentURI.spec}`);
const browser = tab.linkedBrowser; const browser = tab.linkedBrowser;
const uuid = gZenUIManager.generateUuidv4(); const uuid = gZenUIManager.generateUuidv4();
@ -413,6 +423,7 @@
return; return;
} }
this.log(`Removing pinned attributes for tab ${tab.getAttribute('zen-pin-id')}`);
await ZenPinnedTabsStorage.removePin(tab.getAttribute('zen-pin-id')); await ZenPinnedTabsStorage.removePin(tab.getAttribute('zen-pin-id'));
if (!isClosing) { if (!isClosing) {

View file

@ -1,6 +1,5 @@
var ZenPinnedTabsStorage = { var ZenPinnedTabsStorage = {
async init() { async init() {
await SessionStore.promiseInitialized;
await this._ensureTable(); await this._ensureTable();
}, },
@ -47,6 +46,7 @@ var ZenPinnedTabsStorage = {
CREATE INDEX IF NOT EXISTS idx_zen_pins_changes_uuid ON zen_pins_changes(uuid) CREATE INDEX IF NOT EXISTS idx_zen_pins_changes_uuid ON zen_pins_changes(uuid)
`); `);
await SessionStore.promiseInitialized;
this._resolveInitialized(); this._resolveInitialized();
}); });
}, },

View file

@ -30,9 +30,7 @@ var ZenWorkspaces = new (class extends ZenMultiWindowFeature {
}); });
async waitForPromises() { async waitForPromises() {
await SessionStore.promiseInitialized; await Promise.all([this.promiseDBInitialized, this.promisePinnedInitialized, SessionStore.promiseInitialized]);
await this.promiseDBInitialized;
await this.promisePinnedInitialized;
} }
async init() { async init() {
@ -384,13 +382,13 @@ var ZenWorkspaces = new (class extends ZenMultiWindowFeature {
} }
async initializeWorkspaces() { async initializeWorkspaces() {
await this.waitForPromises();
await this.initializeWorkspacesButton(); await this.initializeWorkspacesButton();
if (this.workspaceEnabled) { if (this.workspaceEnabled) {
this._initializeWorkspaceCreationIcons(); this._initializeWorkspaceCreationIcons();
this._initializeWorkspaceTabContextMenus(); this._initializeWorkspaceTabContextMenus();
await this.workspaceBookmarks(); await this.workspaceBookmarks();
window.addEventListener('TabBrowserInserted', this.onTabBrowserInserted.bind(this)); window.addEventListener('TabBrowserInserted', this.onTabBrowserInserted.bind(this));
await this.waitForPromises();
let workspaces = await this._workspaces(); let workspaces = await this._workspaces();
let activeWorkspace = null; let activeWorkspace = null;
if (workspaces.workspaces.length === 0) { if (workspaces.workspaces.length === 0) {
@ -1358,7 +1356,9 @@ var ZenWorkspaces = new (class extends ZenMultiWindowFeature {
this.tabContainer.removeAttribute('dont-animate-tabs'); this.tabContainer.removeAttribute('dont-animate-tabs');
// Also animate the workspace indicator label // Also animate the workspace indicator label
this._animateElement(document.getElementById('zen-current-workspace-indicator'), direction, out, () => onAnimationEnd()); this._animateElement(document.getElementById('zen-current-workspace-indicator'), direction, out, () => onAnimationEnd());
this._animateElement(document.getElementById('tabbrowser-arrowscrollbox-periphery'), direction, out, () => onAnimationEnd()); this._animateElement(document.getElementById('tabbrowser-arrowscrollbox-periphery'), direction, out, () =>
onAnimationEnd()
);
for (const tab of tabs) { for (const tab of tabs) {
this._animateElement(tab, direction, out, () => onAnimationEnd()); this._animateElement(tab, direction, out, () => onAnimationEnd());
} }