mirror of
https://github.com/zen-browser/components.git
synced 2025-07-08 14:29:59 +02:00
Tried to fix " Closing Tabs opened from SidePanel renders the browser unusable"
This commit is contained in:
parent
c86b344c17
commit
0a23df721e
1 changed files with 16 additions and 4 deletions
|
@ -12,6 +12,7 @@ class ZenBrowserManagerSidebar extends ZenDOMOperatedFeature {
|
||||||
forwardButton = null;
|
forwardButton = null;
|
||||||
backButton = null;
|
backButton = null;
|
||||||
progressListener = null;
|
progressListener = null;
|
||||||
|
_tabBrowserSet = new WeakMap();
|
||||||
tabBox;
|
tabBox;
|
||||||
|
|
||||||
DEFAULT_MOBILE_USER_AGENT = 'Mozilla/5.0 (Android 12; Mobile; rv:129.0) Gecko/20100101 Firefox/131.0';
|
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) {
|
_createWebPanelBrowser(data) {
|
||||||
const titleContainer = document.getElementById('zen-sidebar-web-panel-title');
|
const titleContainer = document.getElementById('zen-sidebar-web-panel-title');
|
||||||
titleContainer.textContent = 'Loading...';
|
titleContainer.textContent = 'Loading...';
|
||||||
let browser = gBrowser.createBrowser({});
|
let browser = gBrowser.createBrowser({});
|
||||||
const tab = this.sidebar.querySelector(`[zen-sidebar-id='${data.id}']`);
|
const tab = this.sidebar.querySelector(`[zen-sidebar-id='${data.id}']`);
|
||||||
gBrowser._tabForBrowser.set(browser, tab);
|
this.setTabForBrowser(browser, tab);
|
||||||
tab.linkedBrowser = browser;
|
tab.linkedBrowser = browser;
|
||||||
|
tab.permanentKey = browser.permanentKey;
|
||||||
browser.setAttribute('disablefullscreen', 'true');
|
browser.setAttribute('disablefullscreen', 'true');
|
||||||
browser.setAttribute('src', data.url);
|
browser.setAttribute('src', data.url);
|
||||||
browser.setAttribute('zen-sidebar-id', data.id);
|
browser.setAttribute('zen-sidebar-id', data.id);
|
||||||
browser.setAttribute('autoscroll', 'false');
|
|
||||||
browser.setAttribute('autocompletepopup', 'PopupAutoComplete');
|
|
||||||
browser.setAttribute('contextmenu', 'contentAreaContextMenu');
|
|
||||||
browser.addEventListener(
|
browser.addEventListener(
|
||||||
'pagetitlechanged',
|
'pagetitlechanged',
|
||||||
function (event) {
|
function (event) {
|
||||||
|
@ -725,6 +736,7 @@ class ZenBrowserManagerSidebar extends ZenDOMOperatedFeature {
|
||||||
|
|
||||||
contextUnload() {
|
contextUnload() {
|
||||||
let browser = this._getBrowserById(this.contextTab);
|
let browser = this._getBrowserById(this.contextTab);
|
||||||
|
this.removeTabForBrowser(browser);
|
||||||
browser.remove();
|
browser.remove();
|
||||||
document.getElementById('zen-sidebar-web-panel-title').textContent = '';
|
document.getElementById('zen-sidebar-web-panel-title').textContent = '';
|
||||||
this._closeSidebarPanel();
|
this._closeSidebarPanel();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue