pages/search: prevent history pollution

This commit is contained in:
He4eT 2024-01-23 03:44:47 +01:00
commit e8f5b3cda9
3 changed files with 42 additions and 7 deletions

View file

@ -3,15 +3,44 @@ browser.action.onClicked.addListener((() =>
url: '/pages/search/search.html' url: '/pages/search/search.html'
}))) })))
browser.runtime.onMessage.addListener((message, sender) => { /* */
switch (message.action) {
case 'closeSender': let registeredTabs = []
Promise.resolve()
.then(() => browser.tabs.remove(sender.tab.id)) const addRegisteredTab = (tabId) =>
registeredTabs = [tabId, ...registeredTabs]
const removeRegisteredTab = (tabId) =>
registeredTabs = registeredTabs.filter((x) => x !== tabId)
/* */
browser.tabs.onRemoved.addListener((tabId) => {
console.log(tabId, registeredTabs)
if (!registeredTabs.includes(tabId)) {
return
}
removeRegisteredTab(tabId)
const timeout = () => new Promise((resolve) =>
setTimeout(resolve, 500))
timeout()
.then(() => browser.sessions.getRecentlyClosed({maxResults: 1})) .then(() => browser.sessions.getRecentlyClosed({maxResults: 1}))
.then((x) => (console.log(x), x))
.then(([sessionInfo]) => browser.sessions.forgetClosedTab( .then(([sessionInfo]) => browser.sessions.forgetClosedTab(
sessionInfo.tab.windowId, sessionInfo.tab.windowId,
sessionInfo.tab.sessionId)) sessionInfo.tab.sessionId))
})
browser.runtime.onMessage.addListener((message, sender) => {
switch (message.action) {
case 'closeSender':
browser.tabs.remove(sender.tab.id)
break
case 'registerSender':
addRegisteredTab(sender.tab.id)
break break
} }
}) })

View file

@ -0,0 +1,3 @@
export const registerTab = () => {
browser.runtime.sendMessage({action: 'registerSender'})
}

View file

@ -1,4 +1,5 @@
import * as Store from './modules/store.js' import * as Store from './modules/store.js'
import * as bridge from './modules/bridge.js'
import * as dom from './modules/dom.js' import * as dom from './modules/dom.js'
import * as inputHandlers from './modules/inputHandlers.js' import * as inputHandlers from './modules/inputHandlers.js'
@ -12,5 +13,7 @@ const store = Store.init({
}, },
}) })
void inputHandlers.attachInputHandlers(store) void bridge.registerTab()
void dom.enableFaviconFallback() void dom.enableFaviconFallback()
void inputHandlers.attachInputHandlers(store)