diff options
Diffstat (limited to 'examples/open-loopback-as-new-window.ts')
-rw-r--r-- | examples/open-loopback-as-new-window.ts | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/examples/open-loopback-as-new-window.ts b/examples/open-loopback-as-new-window.ts new file mode 100644 index 0000000..5806d4c --- /dev/null +++ b/examples/open-loopback-as-new-window.ts @@ -0,0 +1,29 @@ +import type { Browser } from 'webextension-polyfill'; +declare const browser: Browser; + +browser.webRequest.onBeforeRequest.addListener( + (requestDetails) => { + const url = new URL(requestDetails.url); + if (url.searchParams.has('open-tab')) { + url.searchParams.delete('open-tab'); + (async () => { + const oldTab = await browser.tabs.get(requestDetails.tabId) + console.warn(url.href); + + await browser.windows.create({ + type: 'popup', + width: 768, + height: 512, + url: [url.href] + }); + + await browser.tabs.remove(oldTab.id!) + })() + return { + cancel: true + }; + } + }, + { urls: ['http://127.0.0.1/*', 'http://localhost/*'] }, + ['blocking'] +); |