Tried to fix " Closing Tabs opened from SidePanel renders the browser unusable"

This commit is contained in:
mr. M 2024-10-11 23:02:43 +02:00
parent c86b344c17
commit 0a23df721e
No known key found for this signature in database
GPG key ID: CBD57A2AEDBDA1FB

View file

@ -12,6 +12,7 @@ class ZenBrowserManagerSidebar extends ZenDOMOperatedFeature {
forwardButton = null;
backButton = null;
progressListener = null;
_tabBrowserSet = new WeakMap();
tabBox;
DEFAULT_MOBILE_USER_AGENT = 'Mozilla/5.0 (Android 12; Mobile; rv:129.0) Gecko/20100101 Firefox/131.0';
@ -497,19 +498,29 @@ class ZenBrowserManagerSidebar extends ZenDOMOperatedFeature {
};
}
getTabForBrowser(browser) {
return this._tabBrowserSet.get(browser);
}
setTabForBrowser(browser, tab) {
this._tabBrowserSet.set(browser, tab);
}
removeTabForBrowser(browser) {
this._tabBrowserSet.delete(browser);
}
_createWebPanelBrowser(data) {
const titleContainer = document.getElementById('zen-sidebar-web-panel-title');
titleContainer.textContent = 'Loading...';
let browser = gBrowser.createBrowser({});
const tab = this.sidebar.querySelector(`[zen-sidebar-id='${data.id}']`);
gBrowser._tabForBrowser.set(browser, tab);
this.setTabForBrowser(browser, tab);
tab.linkedBrowser = browser;
tab.permanentKey = browser.permanentKey;
browser.setAttribute('disablefullscreen', 'true');
browser.setAttribute('src', data.url);
browser.setAttribute('zen-sidebar-id', data.id);
browser.setAttribute('autoscroll', 'false');
browser.setAttribute('autocompletepopup', 'PopupAutoComplete');
browser.setAttribute('contextmenu', 'contentAreaContextMenu');
browser.addEventListener(
'pagetitlechanged',
function (event) {
@ -725,6 +736,7 @@ class ZenBrowserManagerSidebar extends ZenDOMOperatedFeature {
contextUnload() {
let browser = this._getBrowserById(this.contextTab);
this.removeTabForBrowser(browser);
browser.remove();
document.getElementById('zen-sidebar-web-panel-title').textContent = '';
this._closeSidebarPanel();