aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package.json2
-rw-r--r--src/pages/background/background.js404
-rw-r--r--src/pages/components/Checkbox.svelte1
-rw-r--r--src/pages/options_src/General/General.svelte39
-rw-r--r--src/pages/options_src/Services/Instances.svelte1
-rw-r--r--src/pages/options_src/Services/Services.svelte10
-rw-r--r--src/pages/popup_src/Buttons.svelte30
-rw-r--r--src/pages/popup_src/components/Switch.svelte5
8 files changed, 273 insertions, 219 deletions
diff --git a/package.json b/package.json
index 2a79b660..2895734d 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,7 @@
"start": "web-ext run",
"nightly": "web-ext run --firefox=/home/esmail/software/firefox_nightly/firefox",
"start_ar": "web-ext run --firefox=/home/esmail/software/firefox_ar/firefox",
- "android": "web-ext run -t firefox-android --adb-device emulator-5554 --firefox-apk org.mozilla.fenix ",
+ "android": "web-ext run -t firefox-android --adb-device emulator-5554 --firefox-apk org.mozilla.firefox --adb-remove-old-artifacts",
"build": "web-ext build",
"test": "web-ext lint",
"html": "rollup -c --config-popup && rollup -c --config-options"
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index e3d9fb31..d42e5027 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -91,221 +91,233 @@ browser.tabs.onRemoved.addListener(tabId => {
}
})
-browser.commands.onCommand.addListener(async command => {
- browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
- const url = new URL(tabs[0].url)
- switch (command) {
- case "switchInstance": {
- const newUrl = await servicesHelper.switchInstance(url)
- if (newUrl) browser.tabs.update({ url: newUrl })
- break
- }
- case "copyRaw":
- servicesHelper.copyRaw(url)
- break
- case "redirect":
- browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
- if (tabs[0].url) {
- const url = new URL(tabs[0].url)
- const newUrl = servicesHelper.redirect(url, "main_frame", null, true)
- if (newUrl) {
- browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
- tabIdRedirects[tabs[0].id] = true
- })
- }
- }
- })
- break
- case "reverse":
- browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
- if (tabs[0].url) {
- const url = new URL(tabs[0].url)
- const newUrl = await servicesHelper.reverse(url)
- if (newUrl) {
- browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
- tabIdRedirects[tabs[0].id] = false
- })
- }
+browser.runtime.getPlatformInfo(r => {
+ if (r.os != "fuchsia" && r.os != "ios" && r.os != "android") {
+ browser.commands.onCommand.addListener(async command => {
+ browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+ const url = new URL(tabs[0].url)
+ switch (command) {
+ case "switchInstance": {
+ const newUrl = await servicesHelper.switchInstance(url)
+ if (newUrl) browser.tabs.update({ url: newUrl })
+ break
}
- })
- break
- }
- })
-})
-
-browser.contextMenus.create({
- id: "settingsTab",
- title: browser.i18n.getMessage("settings"),
- contexts: ["browser_action"],
-})
-browser.contextMenus.create({
- id: "switchInstanceTab",
- title: browser.i18n.getMessage("switchInstance"),
- contexts: ["browser_action"],
-})
-browser.contextMenus.create({ id: "copyReverseTab", title: "Copy Original", contexts: ["browser_action"] })
-browser.contextMenus.create({ id: "redirectTab", title: "Redirect", contexts: ["browser_action"] })
-browser.contextMenus.create({ id: "reverseTab", title: "Redirect To Original", contexts: ["browser_action"] })
+ case "copyRaw":
+ servicesHelper.copyRaw(url)
+ break
+ case "redirect":
+ browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+ if (tabs[0].url) {
+ const url = new URL(tabs[0].url)
+ const newUrl = servicesHelper.redirect(url, "main_frame", null, true)
+ if (newUrl) {
+ browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
+ tabIdRedirects[tabs[0].id] = true
+ })
+ }
+ }
+ })
+ break
+ case "reverse":
+ browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+ if (tabs[0].url) {
+ const url = new URL(tabs[0].url)
+ const newUrl = await servicesHelper.reverse(url)
+ if (newUrl) {
+ browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
+ tabIdRedirects[tabs[0].id] = false
+ })
+ }
+ }
+ })
+ break
+ }
+ })
+ })
-browser.contextMenus.create({ id: "redirectLink", title: "Redirect", contexts: ["link"] })
-browser.contextMenus.create({ id: "redirectLinkInNewTab", title: "Redirect In New Tab", contexts: ["link"] })
-browser.contextMenus.create({ id: "reverseLink", title: "Redirect To Original", contexts: ["link"] })
-browser.contextMenus.create({ id: "reverseLinkInNewTab", title: "Redirect To Original In New Tab", contexts: ["link"] })
-browser.contextMenus.create({ id: "copyReverseLink", title: "Copy Original", contexts: ["link"] })
-browser.contextMenus.create({ id: "bypassLink", title: "Bypass", contexts: ["link"] })
-browser.contextMenus.create({ id: "bypassLinkInNewTab", title: "Bypass In New Tab", contexts: ["link"] })
+ browser.contextMenus.create({
+ id: "settingsTab",
+ title: browser.i18n.getMessage("settings"),
+ contexts: ["browser_action"],
+ })
+ browser.contextMenus.create({
+ id: "switchInstanceTab",
+ title: browser.i18n.getMessage("switchInstance"),
+ contexts: ["browser_action"],
+ })
+ browser.contextMenus.create({ id: "copyReverseTab", title: "Copy Original", contexts: ["browser_action"] })
+ browser.contextMenus.create({ id: "redirectTab", title: "Redirect", contexts: ["browser_action"] })
+ browser.contextMenus.create({ id: "reverseTab", title: "Redirect To Original", contexts: ["browser_action"] })
-if (!isChrome) {
- browser.contextMenus.create({ id: "redirectBookmark", title: "Redirect", contexts: ["bookmark"] })
- browser.contextMenus.create({ id: "redirectBookmarkInNewTab", title: "Redirect In New Tab", contexts: ["bookmark"] })
- browser.contextMenus.create({ id: "reverseBookmark", title: "Redirect To Original", contexts: ["bookmark"] })
- browser.contextMenus.create({
- id: "reverseBookmarkInNewTab",
- title: "Redirect To Original In New Tab",
- contexts: ["bookmark"],
- })
- browser.contextMenus.create({ id: "copyReverseBookmark", title: "Copy Original", contexts: ["bookmark"] })
- browser.contextMenus.create({ id: "bypassBookmark", title: "Bypass", contexts: ["bookmark"] })
- browser.contextMenus.create({ id: "bypassBookmarkInNewTab", title: "Bypass In New Tab", contexts: ["bookmark"] })
-}
+ browser.contextMenus.create({ id: "redirectLink", title: "Redirect", contexts: ["link"] })
+ browser.contextMenus.create({ id: "redirectLinkInNewTab", title: "Redirect In New Tab", contexts: ["link"] })
+ browser.contextMenus.create({ id: "reverseLink", title: "Redirect To Original", contexts: ["link"] })
+ browser.contextMenus.create({
+ id: "reverseLinkInNewTab",
+ title: "Redirect To Original In New Tab",
+ contexts: ["link"],
+ })
+ browser.contextMenus.create({ id: "copyReverseLink", title: "Copy Original", contexts: ["link"] })
+ browser.contextMenus.create({ id: "bypassLink", title: "Bypass", contexts: ["link"] })
+ browser.contextMenus.create({ id: "bypassLinkInNewTab", title: "Bypass In New Tab", contexts: ["link"] })
-browser.contextMenus.onClicked.addListener(async info => {
- switch (info.menuItemId) {
- case "switchInstanceTab": {
- const url = new URL(info.pageUrl)
- const newUrl = await servicesHelper.switchInstance(url)
- if (newUrl) browser.tabs.update({ url: newUrl })
- return
+ if (!isChrome) {
+ browser.contextMenus.create({ id: "redirectBookmark", title: "Redirect", contexts: ["bookmark"] })
+ browser.contextMenus.create({
+ id: "redirectBookmarkInNewTab",
+ title: "Redirect In New Tab",
+ contexts: ["bookmark"],
+ })
+ browser.contextMenus.create({ id: "reverseBookmark", title: "Redirect To Original", contexts: ["bookmark"] })
+ browser.contextMenus.create({
+ id: "reverseBookmarkInNewTab",
+ title: "Redirect To Original In New Tab",
+ contexts: ["bookmark"],
+ })
+ browser.contextMenus.create({ id: "copyReverseBookmark", title: "Copy Original", contexts: ["bookmark"] })
+ browser.contextMenus.create({ id: "bypassBookmark", title: "Bypass", contexts: ["bookmark"] })
+ browser.contextMenus.create({ id: "bypassBookmarkInNewTab", title: "Bypass In New Tab", contexts: ["bookmark"] })
}
- case "settingsTab":
- browser.runtime.openOptionsPage()
- return
- case "copyReverseTab":
- browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
- if (tabs[0].url) {
- const url = new URL(tabs[0].url)
- servicesHelper.copyRaw(url)
+
+ browser.contextMenus.onClicked.addListener(async info => {
+ switch (info.menuItemId) {
+ case "switchInstanceTab": {
+ const url = new URL(info.pageUrl)
+ const newUrl = await servicesHelper.switchInstance(url)
+ if (newUrl) browser.tabs.update({ url: newUrl })
+ return
}
- })
- return
- case "reverseTab":
- browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
- if (tabs[0].url) {
- const url = new URL(tabs[0].url)
- const newUrl = await servicesHelper.reverse(url)
- if (newUrl) {
- browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
- tabIdRedirects[tabs[0].id] = false
- })
- }
+ case "settingsTab":
+ browser.runtime.openOptionsPage()
+ return
+ case "copyReverseTab":
+ browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+ if (tabs[0].url) {
+ const url = new URL(tabs[0].url)
+ servicesHelper.copyRaw(url)
+ }
+ })
+ return
+ case "reverseTab":
+ browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+ if (tabs[0].url) {
+ const url = new URL(tabs[0].url)
+ const newUrl = await servicesHelper.reverse(url)
+ if (newUrl) {
+ browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
+ tabIdRedirects[tabs[0].id] = false
+ })
+ }
+ }
+ })
+ return
+ case "redirectTab":
+ browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+ if (tabs[0].url) {
+ const url = new URL(tabs[0].url)
+ const newUrl = servicesHelper.redirect(url, "main_frame", null, true)
+ if (newUrl) {
+ browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
+ tabIdRedirects[tabs[0].id] = true
+ })
+ }
+ }
+ })
+ return
+ case "copyReverseLink": {
+ const url = new URL(info.linkUrl)
+ await servicesHelper.copyRaw(url)
+ return
}
- })
- return
- case "redirectTab":
- browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
- if (tabs[0].url) {
- const url = new URL(tabs[0].url)
+ case "redirectLink":
+ case "redirectLinkInNewTab": {
+ const url = new URL(info.linkUrl)
const newUrl = servicesHelper.redirect(url, "main_frame", null, true)
if (newUrl) {
- browser.tabs.update(tabs[0].id, { url: newUrl }, () => {
- tabIdRedirects[tabs[0].id] = true
- })
+ if (info.menuItemId == "redirectLink") browser.tabs.update({ url: newUrl })
+ else browser.tabs.create({ url: newUrl })
}
+ return
}
- })
- return
- case "copyReverseLink": {
- const url = new URL(info.linkUrl)
- await servicesHelper.copyRaw(url)
- return
- }
- case "redirectLink":
- case "redirectLinkInNewTab": {
- const url = new URL(info.linkUrl)
- const newUrl = servicesHelper.redirect(url, "main_frame", null, true)
- if (newUrl) {
- if (info.menuItemId == "redirectLink") browser.tabs.update({ url: newUrl })
- else browser.tabs.create({ url: newUrl })
- }
- return
- }
- case "reverseLink":
- case "reverseLinkInNewTab": {
- const url = new URL(info.linkUrl)
- const newUrl = await servicesHelper.reverse(url)
- if (newUrl) {
- if (info.menuItemId == "reverseLink") {
- browser.tabs.update({ url: newUrl }, tab => {
- tabIdRedirects[tab.id] = false
- })
- } else {
- browser.tabs.create({ url: newUrl }, tab => {
- tabIdRedirects[tab.id] = false
- })
- }
- }
- return
- }
- case "bypassLink":
- case "bypassLinkInNewTab": {
- const url = new URL(info.linkUrl)
- if (info.menuItemId == "bypassLink") {
- browser.tabs.update({ url: url.href }, tab => {
- tabIdRedirects[tab.id] = false
- })
- } else {
- browser.tabs.create({ url: url.href }, tab => {
- tabIdRedirects[tab.id] = false
- })
- }
- return
- }
- case "copyReverseBookmark":
- browser.bookmarks.get(info.bookmarkId, bookmarks => {
- const url = new URL(bookmarks[0].url)
- servicesHelper.copyRaw(url)
- })
- return
- case "redirectBookmark":
- case "redirectBookmarkInNewTab":
- browser.bookmarks.get(info.bookmarkId, bookmarks => {
- const url = new URL(bookmarks[0].url)
- const newUrl = servicesHelper.redirect(url, "main_frame", null, true)
- if (newUrl) {
- if (info.menuItemId == "redirectBookmark") browser.tabs.update({ url: newUrl })
- else browser.tabs.create({ url: newUrl })
+ case "reverseLink":
+ case "reverseLinkInNewTab": {
+ const url = new URL(info.linkUrl)
+ const newUrl = await servicesHelper.reverse(url)
+ if (newUrl) {
+ if (info.menuItemId == "reverseLink") {
+ browser.tabs.update({ url: newUrl }, tab => {
+ tabIdRedirects[tab.id] = false
+ })
+ } else {
+ browser.tabs.create({ url: newUrl }, tab => {
+ tabIdRedirects[tab.id] = false
+ })
+ }
+ }
+ return
}
- })
- return
- case "reverseBookmark":
- case "reverseBookmarkInNewTab":
- browser.bookmarks.get(info.bookmarkId, async bookmarks => {
- const url = new URL(bookmarks[0].url)
- const newUrl = await servicesHelper.reverse(url)
- if (newUrl) {
- if (info.menuItemId == "reverseBookmark") {
- browser.tabs.update({ url: newUrl }, tab => {
+ case "bypassLink":
+ case "bypassLinkInNewTab": {
+ const url = new URL(info.linkUrl)
+ if (info.menuItemId == "bypassLink") {
+ browser.tabs.update({ url: url.href }, tab => {
tabIdRedirects[tab.id] = false
})
} else {
- browser.tabs.create({ url: newUrl }, tab => {
+ browser.tabs.create({ url: url.href }, tab => {
tabIdRedirects[tab.id] = false
})
}
+ return
}
- })
- return
- case "bypassBookmark":
- case "bypassBookmarkInNewTab":
- browser.bookmarks.get(info.bookmarkId, async bookmarks => {
- const url = new URL(bookmarks[0].url)
- if (info.menuItemId == "bypassBookmark") {
- browser.tabs.update({ url: url.href }, tab => (tabIdRedirects[tab.id] = false))
- } else {
- browser.tabs.create({ url: url.href }, tab => (tabIdRedirects[tab.id] = false))
- }
- return
- })
+ case "copyReverseBookmark":
+ browser.bookmarks.get(info.bookmarkId, bookmarks => {
+ const url = new URL(bookmarks[0].url)
+ servicesHelper.copyRaw(url)
+ })
+ return
+ case "redirectBookmark":
+ case "redirectBookmarkInNewTab":
+ browser.bookmarks.get(info.bookmarkId, bookmarks => {
+ const url = new URL(bookmarks[0].url)
+ const newUrl = servicesHelper.redirect(url, "main_frame", null, true)
+ if (newUrl) {
+ if (info.menuItemId == "redirectBookmark") browser.tabs.update({ url: newUrl })
+ else browser.tabs.create({ url: newUrl })
+ }
+ })
+ return
+ case "reverseBookmark":
+ case "reverseBookmarkInNewTab":
+ browser.bookmarks.get(info.bookmarkId, async bookmarks => {
+ const url = new URL(bookmarks[0].url)
+ const newUrl = await servicesHelper.reverse(url)
+ if (newUrl) {
+ if (info.menuItemId == "reverseBookmark") {
+ browser.tabs.update({ url: newUrl }, tab => {
+ tabIdRedirects[tab.id] = false
+ })
+ } else {
+ browser.tabs.create({ url: newUrl }, tab => {
+ tabIdRedirects[tab.id] = false
+ })
+ }
+ }
+ })
+ return
+ case "bypassBookmark":
+ case "bypassBookmarkInNewTab":
+ browser.bookmarks.get(info.bookmarkId, async bookmarks => {
+ const url = new URL(bookmarks[0].url)
+ if (info.menuItemId == "bypassBookmark") {
+ browser.tabs.update({ url: url.href }, tab => (tabIdRedirects[tab.id] = false))
+ } else {
+ browser.tabs.create({ url: url.href }, tab => (tabIdRedirects[tab.id] = false))
+ }
+ return
+ })
+ }
+ })
}
})
diff --git a/src/pages/components/Checkbox.svelte b/src/pages/components/Checkbox.svelte
index 9ba9c56c..d42a4f10 100644
--- a/src/pages/components/Checkbox.svelte
+++ b/src/pages/components/Checkbox.svelte
@@ -1,7 +1,6 @@
<script>
export let checked
export let onChange
- console.log(document.body.dir)
</script>
<input class={document.body.dir} {...$$restProps} bind:checked on:change={onChange} type="checkbox" />
diff --git a/src/pages/options_src/General/General.svelte b/src/pages/options_src/General/General.svelte
index 37c38a0a..b6ed1b46 100644
--- a/src/pages/options_src/General/General.svelte
+++ b/src/pages/options_src/General/General.svelte
@@ -14,13 +14,30 @@
const unsubscribe = options.subscribe(val => (_options = val))
onDestroy(unsubscribe)
+ let disableBookmarks = null
+ browser.runtime.getPlatformInfo(r => {
+ switch (r.os) {
+ case "fuchsia":
+ case "ios":
+ case "android":
+ disableBookmarks = true
+ break
+ default:
+ disableBookmarks = false
+ }
+ if (!disableBookmarks) {
+ browser.permissions.contains({ permissions: ["bookmarks"] }, r => (bookmarksPermission = r))
+ }
+ })
+
let bookmarksPermission
- browser.permissions.contains({ permissions: ["bookmarks"] }, r => (bookmarksPermission = r))
- $: if (bookmarksPermission) {
- browser.permissions.request({ permissions: ["bookmarks"] }, r => (bookmarksPermission = r))
- } else {
- browser.permissions.remove({ permissions: ["bookmarks"] })
- bookmarksPermission = false
+ $: if (disableBookmarks !== null && disableBookmarks === false) {
+ if (bookmarksPermission) {
+ browser.permissions.request({ permissions: ["bookmarks"] }, r => (bookmarksPermission = r))
+ } else {
+ browser.permissions.remove({ permissions: ["bookmarks"] })
+ bookmarksPermission = false
+ }
}
</script>
@@ -68,10 +85,12 @@
/>
</Row>
- <Row>
- <Label>{browser.i18n.getMessage("bookmarksMenu") || "Bookmarks menu"}</Label>
- <Checkbox bind:checked={bookmarksPermission} />
- </Row>
+ {#if disableBookmarks === false}
+ <Row>
+ <Label>{browser.i18n.getMessage("bookmarksMenu") || "Bookmarks menu"}</Label>
+ <Checkbox bind:checked={bookmarksPermission} />
+ </Row>
+ {/if}
<Exceptions />
diff --git a/src/pages/options_src/Services/Instances.svelte b/src/pages/options_src/Services/Instances.svelte
index 862bbf7e..3b870c4b 100644
--- a/src/pages/options_src/Services/Instances.svelte
+++ b/src/pages/options_src/Services/Instances.svelte
@@ -59,7 +59,6 @@
async function pingInstances() {
pingCache = {}
for (const instance of allInstances) {
- console.log("pinging...", instance)
pingCache[instance] = { color: "lightblue", value: "pinging..." }
const time = await utils.ping(instance)
pingCache[instance] = colorTime(time)
diff --git a/src/pages/options_src/Services/Services.svelte b/src/pages/options_src/Services/Services.svelte
index 4e719447..b0f0d5e3 100644
--- a/src/pages/options_src/Services/Services.svelte
+++ b/src/pages/options_src/Services/Services.svelte
@@ -32,8 +32,9 @@
<div>
<Row>
<Label>
- Service:
- <a href={serviceConf.url} target="_blank" rel="noopener noreferrer">{serviceConf.url}</a>
+ <a href={serviceConf.url} style="text-decoration: underline;" target="_blank" rel="noopener noreferrer">
+ {browser.i18n.getMessage("service") || "Service"}
+ </a>
</Label>
<div dir="ltr">
<SvelteSelect
@@ -91,9 +92,8 @@
<Row>
<Label>
- {browser.i18n.getMessage("frontend") || "Frontend"}:
- <a href={frontendWebsite} target="_blank" rel="noopener noreferrer">
- {frontendWebsite}
+ <a href={frontendWebsite} style="text-decoration: underline;" target="_blank" rel="noopener noreferrer">
+ {browser.i18n.getMessage("frontend") || "Frontend"}
</a>
</Label>
<div dir="ltr">
diff --git a/src/pages/popup_src/Buttons.svelte b/src/pages/popup_src/Buttons.svelte
index bfa162f8..0b454675 100644
--- a/src/pages/popup_src/Buttons.svelte
+++ b/src/pages/popup_src/Buttons.svelte
@@ -41,7 +41,14 @@
<div class={document.body.dir}>
{#if redirect}
- <Row class="interactive" on:click={() => browser.runtime.sendMessage("redirectTab")}>
+ <Row
+ class="interactive"
+ on:click={() => {
+ browser.runtime.sendMessage("redirectTab", () => {
+ window.close()
+ })
+ }}
+ >
<Label>{browser.i18n.getMessage("redirect") || "Redirect"}</Label>
<RedirectIcon />
</Row>
@@ -50,7 +57,10 @@
{#if switchInstance}
<Row
class="interactive"
- on:click={async () => browser.tabs.update({ url: await servicesHelper.switchInstance(url) })}
+ on:click={async () =>
+ browser.tabs.update({ url: await servicesHelper.switchInstance(url) }, () => {
+ window.close()
+ })}
>
<Label>{browser.i18n.getMessage("switchInstance") || "Switch Instance"}</Label>
<SwitchInstanceIcon />
@@ -62,7 +72,13 @@
<Label>{browser.i18n.getMessage("copyOriginal") || "Copy Original"}</Label>
<CopyIcon />
</Row>
- <Row class="interactive" on:click={() => browser.runtime.sendMessage("reverseTab")}>
+ <Row
+ class="interactive"
+ on:click={() =>
+ browser.runtime.sendMessage("reverseTab", () => {
+ window.close()
+ })}
+ >
<Label>{browser.i18n.getMessage("redirectToOriginal" || "Redirect to Original")}</Label>
<RedirectToOriginalIcon />
</Row>
@@ -85,7 +101,13 @@
<hr />
- <Row class="interactive" on:click={() => window.open(browser.runtime.getURL("pages/options/index.html"), "_blank")}>
+ <Row
+ class="interactive"
+ on:click={() =>
+ browser.tabs.create({ url: browser.runtime.getURL("pages/options/index.html") }, () => {
+ window.close()
+ })}
+ >
<Label>{browser.i18n.getMessage("settings")}</Label>
<SettingsIcon />
</Row>
diff --git a/src/pages/popup_src/components/Switch.svelte b/src/pages/popup_src/components/Switch.svelte
index e581e5f4..42a86403 100644
--- a/src/pages/popup_src/components/Switch.svelte
+++ b/src/pages/popup_src/components/Switch.svelte
@@ -28,7 +28,10 @@
<div
class="interactive"
on:keydown={null}
- on:click={() => window.open(browser.runtime.getURL(_config.services[serviceKey].url), "_blank")}
+ on:click={() =>
+ browser.tabs.create({ url: browser.runtime.getURL(_config.services[serviceKey].url) }, () => {
+ window.close()
+ })}
>
<ServiceIcon details={{ value: serviceKey, label: _config.services[serviceKey].name }} />
<Label>{_config.services[serviceKey].name}</Label>