diff --git a/apps/terminal/applets/chrome/extensions/disable_new_tab_window_menu/background.js b/apps/terminal/applets/chrome/extensions/disable_new_tab_window_menu/background.js index 7f2556ab8..0ea3a1353 100644 --- a/apps/terminal/applets/chrome/extensions/disable_new_tab_window_menu/background.js +++ b/apps/terminal/applets/chrome/extensions/disable_new_tab_window_menu/background.js @@ -6,24 +6,25 @@ const debug = console.log // 监听标签页的创建事件 chrome.tabs.onCreated.addListener(function (tab) { // 获取当前窗口的所有标签页 - debug('New tab add, tabs : ', tabs) + debug('New tab add, tabs : ', tabs.map(t => t.id)) tabs.push(tab) }); chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) { - debug('Tab changed xx: ', tabId, changeInfo, tab) + debug('Tab status changed: ', tabId, ' => ', changeInfo.status) if (changeInfo.status !== 'loading') { return } const tabFind = tabs.findIndex(t => t.id === tabId) if (tabFind === -1) { - debug('Tab not found: ', tabId, tabs) - return + tabs.push(tab) + } else { + Object.assign(tabs[tabFind], tab) } - Object.assign(tabs[tabFind], tab) const blockUrls = ['chrome://newtab/'] if (!tab.url || blockUrls.includes(tab.url) || tab.url.startsWith('chrome://')) { + alert('安全模式,禁止打开新标签页') debug('Blocked url, destroy: ', tab.url) chrome.tabs.remove(tabId); return @@ -52,3 +53,11 @@ chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) { chrome.tabs.remove(tabId); } }) + +chrome.tabs.onRemoved.addListener(function (tabId, removeInfo) { + debug('Tab removed: ', tabId) + const tabFind = tabs.findIndex(t => t.id === tabId) + if (tabFind !== -1) { + tabs.splice(tabFind, 1) + } +}) diff --git a/apps/terminal/applets/chrome/extensions/disable_new_tab_window_menu/manifest.json b/apps/terminal/applets/chrome/extensions/disable_new_tab_window_menu/manifest.json index 58ad2b4a1..6cef03a67 100644 --- a/apps/terminal/applets/chrome/extensions/disable_new_tab_window_menu/manifest.json +++ b/apps/terminal/applets/chrome/extensions/disable_new_tab_window_menu/manifest.json @@ -7,7 +7,7 @@ "scripts": [ "background.js" ], - "persistent": false + "persistent": true }, "content_scripts": [ {