aboutsummaryrefslogtreecommitdiffstats
path: root/examples/open-loopback-as-new-window.ts
diff options
context:
space:
mode:
Diffstat (limited to 'examples/open-loopback-as-new-window.ts')
-rw-r--r--examples/open-loopback-as-new-window.ts29
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']
+);