about summary refs log tree commit diff stats
path: root/src/pages
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/background/background.js34
-rw-r--r--src/pages/options/index.js18
-rw-r--r--src/pages/options/widgets/general.js8
-rw-r--r--src/pages/options/widgets/services.pug3
-rw-r--r--src/pages/popup/popup.js45
5 files changed, 65 insertions, 43 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 3e55a861..f346acf1 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -18,6 +18,7 @@ browser.runtime.onInstalled.addListener(async details => {
 		else if (details.reason == "update") {
 			if (details.previousVersion == '2.5.2') {
 				await servicesHelper.upgradeOptions()
+				await servicesHelper.processUpdate()
 			} else {
 				await servicesHelper.processUpdate()
 			}
@@ -30,6 +31,7 @@ let tabIdRedirects = {}
 // true == Always redirect, false == Never redirect, null/undefined == follow options for services
 browser.webRequest.onBeforeRequest.addListener(
 	details => {
+		console.log(details.url)
 		const url = new URL(details.url)
 		if (new RegExp(/^chrome-extension:\/{2}.*\/instances\/.*.json$/).test(url.href) && details.type == "xmlhttprequest") return
 		let initiator
@@ -138,23 +140,25 @@ browser.contextMenus.create({
 	contexts: ["link"],
 })
 
-browser.contextMenus.create({
-	id: "redirectBookmark",
-	title: 'Redirect',
-	contexts: ["bookmark"],
-})
+if (!window.chrome) {
+	browser.contextMenus.create({
+		id: "redirectBookmark",
+		title: 'Redirect',
+		contexts: ["bookmark"],
+	})
 
-browser.contextMenus.create({
-	id: "reverseBookmark",
-	title: 'Reverse redirect',
-	contexts: ["bookmark"],
-})
+	browser.contextMenus.create({
+		id: "reverseBookmark",
+		title: 'Reverse redirect',
+		contexts: ["bookmark"],
+	})
 
-browser.contextMenus.create({
-	id: "copyReverseBookmark",
-	title: 'Copy Reverse',
-	contexts: ["bookmark"],
-})
+	browser.contextMenus.create({
+		id: "copyReverseBookmark",
+		title: 'Copy Reverse',
+		contexts: ["bookmark"],
+	})
+}
 
 
 browser.contextMenus.onClicked.addListener(async (info) => {
diff --git a/src/pages/options/index.js b/src/pages/options/index.js
index 1256c9b1..9fde7cd3 100644
--- a/src/pages/options/index.js
+++ b/src/pages/options/index.js
@@ -17,7 +17,8 @@ for (const a of document.getElementById("links").getElementsByTagName("a")) {
 config = await utils.getConfig()
 options = await utils.getOptions()
 
-function changeFrontendsSettings(service) {
+async function changeFrontendsSettings(service) {
+	options = await utils.getOptions()
 	const opacityDiv = document.getElementById(`${service}-opacity`)
 	if (document.getElementById(`${service}-enabled`).checked) {
 		opacityDiv.style.pointerEvents = 'auto'
@@ -40,6 +41,20 @@ function changeFrontendsSettings(service) {
 			}
 		}
 	}
+	if (config.services[service].frontends[divs[service].frontend.value].embeddable) {
+		document.getElementById(`${service}-redirectType`).innerHTML = `
+		<option value="both" data-localise="__MSG_both__">both</options>
+		<option value="sub_frame" data-localise="__MSG_onlyEmbedded__">Only Embedded</option>
+		<option value="main_frame" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option>
+		`
+		document.getElementById(`${service}-redirectType`).value = options[divs[service].frontend.value].redirectType = options[service].redirectType
+	} else {
+		document.getElementById(`${service}-redirectType`).innerHTML = `
+		<option value="main_frame" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option>
+		`
+		options[service].redirectType = "main_frame"
+		browser.storage.local.set({ options })
+	}
 	const frontend_name_element = document.getElementById(`${service}_page`).getElementsByClassName("frontend_name")[0]
 	if (divs[service].frontend) {
 		frontend_name_element.href = config.services[service].frontends[divs[service].frontend.value].url
@@ -72,6 +87,7 @@ async function loadPage(path) {
 			if (typeof config.services[service].options[option] == "boolean") divs[service][option].checked = options[service][option]
 			else divs[service][option].value = options[service][option]
 
+
 			divs[service][option].addEventListener("change", async () => {
 				let options = await utils.getOptions()
 				if (typeof config.services[service].options[option] == "boolean")
diff --git a/src/pages/options/widgets/general.js b/src/pages/options/widgets/general.js
index b676046b..484edc05 100644
--- a/src/pages/options/widgets/general.js
+++ b/src/pages/options/widgets/general.js
@@ -17,7 +17,6 @@ async function setOption(option, type, event) {
 }
 
 let exportSettingsElement = document.getElementById("export-settings")
-
 async function exportSettings() {
 	const options = await utils.getOptions()
 	options.version = browser.runtime.getManifest().version
@@ -43,6 +42,7 @@ importSettingsElement.addEventListener("change", () => {
 			"theme" in data
 			&& data.version == browser.runtime.getManifest().version
 		) {
+
 			browser.storage.local.clear(async () => {
 				browser.storage.local.set({ options: data }, () => {
 					location.reload()
@@ -71,7 +71,8 @@ resetSettings.addEventListener("click", async () => {
 	location.reload()
 })
 
-document.getElementById('fetch-instances').addEventListener('change', event => {
+let fetchInstancesElement = document.getElementById('fetch-instances')
+fetchInstancesElement.addEventListener('change', event => {
 	setOption('fetchInstances', 'select', event)
 	location.reload()
 })
@@ -100,9 +101,9 @@ for (const service in config.services) {
 	})
 }
 
-
 let options = await utils.getOptions()
 themeElement.value = options.theme
+fetchInstancesElement.value = options.fetchInstances
 for (const service in config.services) document.getElementById(service).checked = options.popupServices.includes(service)
 
 instanceTypeElement.addEventListener("change", event => {
@@ -166,7 +167,6 @@ document.getElementById("custom-exceptions-instance-form").addEventListener("sub
 	if (val) {
 		options = await utils.getOptions()
 		options.exceptions = exceptionsCustomInstances
-		console.log(options.exceptions)
 		browser.storage.local.set({ options }, () =>
 			nameCustomInstanceInput.value = ""
 		)
diff --git a/src/pages/options/widgets/services.pug b/src/pages/options/widgets/services.pug
index e375c052..98fd25bb 100644
--- a/src/pages/options/widgets/services.pug
+++ b/src/pages/options/widgets/services.pug
@@ -30,9 +30,6 @@ each val, service in services
                 div(class="some-block option-block")
                     h4(data-localise="__MSG_redirectType__") Redirect Type
                     select(id=service+"-redirectType")
-                        option(value="both" data-localise="__MSG_both__") both
-                        option(value="sub_frame" data-localise="__MSG_onlyEmbedded__") Only Embedded
-                        option(value="main_frame" data-localise="__MSG_onlyNotEmbedded__") Only Not Embedded
 
             div(class="some-block option-block")
                 h4 Unsupported paths handling
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index 705aaa8b..fc21ecfd 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -5,26 +5,31 @@ import servicesHelper from "../../assets/javascripts/services.js"
 import utils from "../../assets/javascripts/utils.js"
 
 browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
-	const url = new URL(tabs[0].url)
-	servicesHelper.switchInstance(url).then(r => {
-		if (!r) {
-			document.getElementById("change_instance_div").style.display = "none"
-		}
-		else {
-			document.getElementById("change_instance").addEventListener("click",
-				async () => browser.tabs.update({ url: await servicesHelper.switchInstance(url) })
-			)
-		}
-	})
-	servicesHelper.copyRaw(url, true).then(r => {
-		if (!r) {
-			document.getElementById("copy_raw_div").style.display = "none"
-		}
-		else {
-			const copy_raw = document.getElementById("copy_raw")
-			copy_raw.addEventListener("click", () => servicesHelper.copyRaw(url))
-		}
-	})
+	if (tabs[0].url) {
+		const url = new URL(tabs[0].url)
+		servicesHelper.switchInstance(url).then(r => {
+			if (!r) {
+				document.getElementById("change_instance_div").style.display = "none"
+			}
+			else {
+				document.getElementById("change_instance").addEventListener("click",
+					async () => browser.tabs.update({ url: await servicesHelper.switchInstance(url) })
+				)
+			}
+		})
+		servicesHelper.copyRaw(url, true).then(r => {
+			if (!r) {
+				document.getElementById("copy_raw_div").style.display = "none"
+			}
+			else {
+				const copy_raw = document.getElementById("copy_raw")
+				copy_raw.addEventListener("click", () => servicesHelper.copyRaw(url))
+			}
+		})
+	} else {
+		document.getElementById("change_instance_div").style.display = "none"
+		document.getElementById("copy_raw_div").style.display = "none"
+	}
 })
 
 document.getElementById("more-options").addEventListener("click", () => browser.runtime.openOptionsPage())