mirror of
https://github.com/He4eT/tabswitcher.git
synced 2026-05-04 17:07:23 +00:00
pages/search: prevent history pollution
This commit is contained in:
parent
adf6ab3305
commit
e8f5b3cda9
3 changed files with 42 additions and 7 deletions
|
|
@ -3,15 +3,44 @@ browser.action.onClicked.addListener((() =>
|
||||||
url: '/pages/search/search.html'
|
url: '/pages/search/search.html'
|
||||||
})))
|
})))
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
let registeredTabs = []
|
||||||
|
|
||||||
|
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((x) => (console.log(x), x))
|
||||||
|
.then(([sessionInfo]) => browser.sessions.forgetClosedTab(
|
||||||
|
sessionInfo.tab.windowId,
|
||||||
|
sessionInfo.tab.sessionId))
|
||||||
|
})
|
||||||
|
|
||||||
browser.runtime.onMessage.addListener((message, sender) => {
|
browser.runtime.onMessage.addListener((message, sender) => {
|
||||||
switch (message.action) {
|
switch (message.action) {
|
||||||
case 'closeSender':
|
case 'closeSender':
|
||||||
Promise.resolve()
|
browser.tabs.remove(sender.tab.id)
|
||||||
.then(() => browser.tabs.remove(sender.tab.id))
|
break
|
||||||
.then(() => browser.sessions.getRecentlyClosed({maxResults: 1}))
|
case 'registerSender':
|
||||||
.then(([sessionInfo]) => browser.sessions.forgetClosedTab(
|
addRegisteredTab(sender.tab.id)
|
||||||
sessionInfo.tab.windowId,
|
|
||||||
sessionInfo.tab.sessionId))
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
||||||
3
pages/search/modules/bridge.js
Normal file
3
pages/search/modules/bridge.js
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
export const registerTab = () => {
|
||||||
|
browser.runtime.sendMessage({action: 'registerSender'})
|
||||||
|
}
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue