diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/assets/javascripts/general.js | 6 | ||||
-rw-r--r-- | src/assets/javascripts/services.js | 10 | ||||
-rw-r--r-- | src/manifest.json | 3 | ||||
-rw-r--r-- | src/pages/background/background.js | 34 | ||||
-rw-r--r-- | src/pages/options/index.js | 18 | ||||
-rw-r--r-- | src/pages/options/widgets/general.js | 8 | ||||
-rw-r--r-- | src/pages/options/widgets/services.pug | 3 | ||||
-rw-r--r-- | src/pages/popup/popup.js | 45 |
8 files changed, 72 insertions, 55 deletions
diff --git a/src/assets/javascripts/general.js b/src/assets/javascripts/general.js index 592f604d..7adb0433 100644 --- a/src/assets/javascripts/general.js +++ b/src/assets/javascripts/general.js @@ -7,8 +7,10 @@ window.browser = window.browser || window.chrome let exceptions function isException(url) { - for (const item of exceptions.url) if (item == url.href) return true - for (const item of exceptions.regex) if (new RegExp(item).test(url.href)) return true + if (url !== undefined) { + for (const item of exceptions.url) if (item == url.href) return true + for (const item of exceptions.regex) if (new RegExp(item).test(url.href)) return true + } return false } diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js index 88d04512..c536851d 100644 --- a/src/assets/javascripts/services.js +++ b/src/assets/javascripts/services.js @@ -685,7 +685,7 @@ const defaultInstances = { 'suds': ['https://sd.vern.cc'], 'waybackClassic': ['https://wayback-classic.net'], 'gothub': ['https://gh.odyssey346.dev'], - 'mikuIndividious': ['https://mikuinv.resrv.org'], + 'mikuInvidious': ['https://mikuinv.resrv.org'], "tent": ['https://tent.sny.sh'], "wolfreeAlpha": ['https://gqq.gitlab.io', 'https://uqq.gitlab.io'] } @@ -725,17 +725,11 @@ function initDefaults() { function upgradeOptions() { return new Promise(async resolve => { - const oldOptions = await utils.getOptions() + let options = await utils.getOptions() const config = await utils.getConfig() - let options = {} - options = [...oldOptions] options.fetchInstances = 'github' - for (service in config.services) { - options[service].unsupportedUrls = 'bypass' - } - browser.storage.local.clear(() => { browser.storage.local.set({ options }, () => { resolve() diff --git a/src/manifest.json b/src/manifest.json index 5d45ce05..50c85b8e 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -1,7 +1,7 @@ { "name": "__MSG_extensionName__", "description": "__MSG_extensionDescription__", - "version": "2.5.2", + "version": "2.5.3", "manifest_version": 2, "browser_specific_settings": { "gecko": { @@ -26,7 +26,6 @@ "clipboardWrite", "contextMenus", "bookmarks", - "browserSettings", "<all_urls>" ], "browser_action": { 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()) |