pages/search: prevent history pollution

This commit is contained in:
He4eT 2024-01-22 21:10:45 +01:00
commit adf6ab3305
3 changed files with 19 additions and 2 deletions

View file

@ -2,3 +2,16 @@ browser.action.onClicked.addListener((() =>
browser.tabs.create({ browser.tabs.create({
url: '/pages/search/search.html' url: '/pages/search/search.html'
}))) })))
browser.runtime.onMessage.addListener((message, sender) => {
switch (message.action) {
case 'closeSender':
Promise.resolve()
.then(() => browser.tabs.remove(sender.tab.id))
.then(() => browser.sessions.getRecentlyClosed({maxResults: 1}))
.then(([sessionInfo]) => browser.sessions.forgetClosedTab(
sessionInfo.tab.windowId,
sessionInfo.tab.sessionId))
break
}
})

View file

@ -23,7 +23,8 @@
"manifest_version": 3, "manifest_version": 3,
"name": "Tabswitcher", "name": "Tabswitcher",
"permissions": [ "permissions": [
"tabs" "tabs",
"sessions"
], ],
"version": "1.0.0" "version": "1.0.0"
} }

View file

@ -6,7 +6,10 @@ const store = Store.init({
tabs: browser.tabs, tabs: browser.tabs,
windows: browser.windows, windows: browser.windows,
onStateUpdate: dom.updateSearchResults, onStateUpdate: dom.updateSearchResults,
closeCurrentTab: () => window.close(), closeCurrentTab: () => {
history.replaceState({}, '', '')
browser.runtime.sendMessage({action: 'closeSender'})
},
}) })
void inputHandlers.attachInputHandlers(store) void inputHandlers.attachInputHandlers(store)