Fixed random bugs
This commit is contained in:
parent
20b5093989
commit
53cfc05227
|
@ -7,8 +7,10 @@ window.browser = window.browser || window.chrome
|
||||||
let exceptions
|
let exceptions
|
||||||
|
|
||||||
function isException(url) {
|
function isException(url) {
|
||||||
for (const item of exceptions.url) if (item == url.href) return true
|
if (url !== undefined) {
|
||||||
for (const item of exceptions.regex) if (new RegExp(item).test(url.href)) return true
|
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
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -725,17 +725,11 @@ function initDefaults() {
|
||||||
|
|
||||||
function upgradeOptions() {
|
function upgradeOptions() {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
const oldOptions = await utils.getOptions()
|
let options = await utils.getOptions()
|
||||||
const config = await utils.getConfig()
|
const config = await utils.getConfig()
|
||||||
|
|
||||||
let options = {}
|
|
||||||
options = [...oldOptions]
|
|
||||||
options.fetchInstances = 'github'
|
options.fetchInstances = 'github'
|
||||||
|
|
||||||
for (service in config.services) {
|
|
||||||
options[service].unsupportedUrls = 'bypass'
|
|
||||||
}
|
|
||||||
|
|
||||||
browser.storage.local.clear(() => {
|
browser.storage.local.clear(() => {
|
||||||
browser.storage.local.set({ options }, () => {
|
browser.storage.local.set({ options }, () => {
|
||||||
resolve()
|
resolve()
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
"clipboardWrite",
|
"clipboardWrite",
|
||||||
"contextMenus",
|
"contextMenus",
|
||||||
"bookmarks",
|
"bookmarks",
|
||||||
"browserSettings",
|
|
||||||
"<all_urls>"
|
"<all_urls>"
|
||||||
],
|
],
|
||||||
"browser_action": {
|
"browser_action": {
|
||||||
|
|
|
@ -18,6 +18,7 @@ browser.runtime.onInstalled.addListener(async details => {
|
||||||
else if (details.reason == "update") {
|
else if (details.reason == "update") {
|
||||||
if (details.previousVersion == '2.5.2') {
|
if (details.previousVersion == '2.5.2') {
|
||||||
await servicesHelper.upgradeOptions()
|
await servicesHelper.upgradeOptions()
|
||||||
|
await servicesHelper.processUpdate()
|
||||||
} else {
|
} else {
|
||||||
await servicesHelper.processUpdate()
|
await servicesHelper.processUpdate()
|
||||||
}
|
}
|
||||||
|
@ -30,6 +31,7 @@ let tabIdRedirects = {}
|
||||||
// true == Always redirect, false == Never redirect, null/undefined == follow options for services
|
// true == Always redirect, false == Never redirect, null/undefined == follow options for services
|
||||||
browser.webRequest.onBeforeRequest.addListener(
|
browser.webRequest.onBeforeRequest.addListener(
|
||||||
details => {
|
details => {
|
||||||
|
console.log(details.url)
|
||||||
const url = new URL(details.url)
|
const url = new URL(details.url)
|
||||||
if (new RegExp(/^chrome-extension:\/{2}.*\/instances\/.*.json$/).test(url.href) && details.type == "xmlhttprequest") return
|
if (new RegExp(/^chrome-extension:\/{2}.*\/instances\/.*.json$/).test(url.href) && details.type == "xmlhttprequest") return
|
||||||
let initiator
|
let initiator
|
||||||
|
@ -138,23 +140,25 @@ browser.contextMenus.create({
|
||||||
contexts: ["link"],
|
contexts: ["link"],
|
||||||
})
|
})
|
||||||
|
|
||||||
browser.contextMenus.create({
|
if (!window.chrome) {
|
||||||
id: "redirectBookmark",
|
browser.contextMenus.create({
|
||||||
title: 'Redirect',
|
id: "redirectBookmark",
|
||||||
contexts: ["bookmark"],
|
title: 'Redirect',
|
||||||
})
|
contexts: ["bookmark"],
|
||||||
|
})
|
||||||
|
|
||||||
browser.contextMenus.create({
|
browser.contextMenus.create({
|
||||||
id: "reverseBookmark",
|
id: "reverseBookmark",
|
||||||
title: 'Reverse redirect',
|
title: 'Reverse redirect',
|
||||||
contexts: ["bookmark"],
|
contexts: ["bookmark"],
|
||||||
})
|
})
|
||||||
|
|
||||||
browser.contextMenus.create({
|
browser.contextMenus.create({
|
||||||
id: "copyReverseBookmark",
|
id: "copyReverseBookmark",
|
||||||
title: 'Copy Reverse',
|
title: 'Copy Reverse',
|
||||||
contexts: ["bookmark"],
|
contexts: ["bookmark"],
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
browser.contextMenus.onClicked.addListener(async (info) => {
|
browser.contextMenus.onClicked.addListener(async (info) => {
|
||||||
|
|
|
@ -17,7 +17,8 @@ for (const a of document.getElementById("links").getElementsByTagName("a")) {
|
||||||
config = await utils.getConfig()
|
config = await utils.getConfig()
|
||||||
options = await utils.getOptions()
|
options = await utils.getOptions()
|
||||||
|
|
||||||
function changeFrontendsSettings(service) {
|
async function changeFrontendsSettings(service) {
|
||||||
|
options = await utils.getOptions()
|
||||||
const opacityDiv = document.getElementById(`${service}-opacity`)
|
const opacityDiv = document.getElementById(`${service}-opacity`)
|
||||||
if (document.getElementById(`${service}-enabled`).checked) {
|
if (document.getElementById(`${service}-enabled`).checked) {
|
||||||
opacityDiv.style.pointerEvents = 'auto'
|
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]
|
const frontend_name_element = document.getElementById(`${service}_page`).getElementsByClassName("frontend_name")[0]
|
||||||
if (divs[service].frontend) {
|
if (divs[service].frontend) {
|
||||||
frontend_name_element.href = config.services[service].frontends[divs[service].frontend.value].url
|
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]
|
if (typeof config.services[service].options[option] == "boolean") divs[service][option].checked = options[service][option]
|
||||||
else divs[service][option].value = options[service][option]
|
else divs[service][option].value = options[service][option]
|
||||||
|
|
||||||
|
|
||||||
divs[service][option].addEventListener("change", async () => {
|
divs[service][option].addEventListener("change", async () => {
|
||||||
let options = await utils.getOptions()
|
let options = await utils.getOptions()
|
||||||
if (typeof config.services[service].options[option] == "boolean")
|
if (typeof config.services[service].options[option] == "boolean")
|
||||||
|
|
|
@ -17,7 +17,6 @@ async function setOption(option, type, event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
let exportSettingsElement = document.getElementById("export-settings")
|
let exportSettingsElement = document.getElementById("export-settings")
|
||||||
|
|
||||||
async function exportSettings() {
|
async function exportSettings() {
|
||||||
const options = await utils.getOptions()
|
const options = await utils.getOptions()
|
||||||
options.version = browser.runtime.getManifest().version
|
options.version = browser.runtime.getManifest().version
|
||||||
|
@ -43,6 +42,7 @@ importSettingsElement.addEventListener("change", () => {
|
||||||
"theme" in data
|
"theme" in data
|
||||||
&& data.version == browser.runtime.getManifest().version
|
&& data.version == browser.runtime.getManifest().version
|
||||||
) {
|
) {
|
||||||
|
|
||||||
browser.storage.local.clear(async () => {
|
browser.storage.local.clear(async () => {
|
||||||
browser.storage.local.set({ options: data }, () => {
|
browser.storage.local.set({ options: data }, () => {
|
||||||
location.reload()
|
location.reload()
|
||||||
|
@ -71,7 +71,8 @@ resetSettings.addEventListener("click", async () => {
|
||||||
location.reload()
|
location.reload()
|
||||||
})
|
})
|
||||||
|
|
||||||
document.getElementById('fetch-instances').addEventListener('change', event => {
|
let fetchInstancesElement = document.getElementById('fetch-instances')
|
||||||
|
fetchInstancesElement.addEventListener('change', event => {
|
||||||
setOption('fetchInstances', 'select', event)
|
setOption('fetchInstances', 'select', event)
|
||||||
location.reload()
|
location.reload()
|
||||||
})
|
})
|
||||||
|
@ -100,9 +101,9 @@ for (const service in config.services) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let options = await utils.getOptions()
|
let options = await utils.getOptions()
|
||||||
themeElement.value = options.theme
|
themeElement.value = options.theme
|
||||||
|
fetchInstancesElement.value = options.fetchInstances
|
||||||
for (const service in config.services) document.getElementById(service).checked = options.popupServices.includes(service)
|
for (const service in config.services) document.getElementById(service).checked = options.popupServices.includes(service)
|
||||||
|
|
||||||
instanceTypeElement.addEventListener("change", event => {
|
instanceTypeElement.addEventListener("change", event => {
|
||||||
|
@ -166,7 +167,6 @@ document.getElementById("custom-exceptions-instance-form").addEventListener("sub
|
||||||
if (val) {
|
if (val) {
|
||||||
options = await utils.getOptions()
|
options = await utils.getOptions()
|
||||||
options.exceptions = exceptionsCustomInstances
|
options.exceptions = exceptionsCustomInstances
|
||||||
console.log(options.exceptions)
|
|
||||||
browser.storage.local.set({ options }, () =>
|
browser.storage.local.set({ options }, () =>
|
||||||
nameCustomInstanceInput.value = ""
|
nameCustomInstanceInput.value = ""
|
||||||
)
|
)
|
||||||
|
|
|
@ -30,9 +30,6 @@ each val, service in services
|
||||||
div(class="some-block option-block")
|
div(class="some-block option-block")
|
||||||
h4(data-localise="__MSG_redirectType__") Redirect Type
|
h4(data-localise="__MSG_redirectType__") Redirect Type
|
||||||
select(id=service+"-redirectType")
|
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")
|
div(class="some-block option-block")
|
||||||
h4 Unsupported paths handling
|
h4 Unsupported paths handling
|
||||||
|
|
|
@ -5,26 +5,31 @@ import servicesHelper from "../../assets/javascripts/services.js"
|
||||||
import utils from "../../assets/javascripts/utils.js"
|
import utils from "../../assets/javascripts/utils.js"
|
||||||
|
|
||||||
browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
|
browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
|
||||||
const url = new URL(tabs[0].url)
|
if (tabs[0].url) {
|
||||||
servicesHelper.switchInstance(url).then(r => {
|
const url = new URL(tabs[0].url)
|
||||||
if (!r) {
|
servicesHelper.switchInstance(url).then(r => {
|
||||||
document.getElementById("change_instance_div").style.display = "none"
|
if (!r) {
|
||||||
}
|
document.getElementById("change_instance_div").style.display = "none"
|
||||||
else {
|
}
|
||||||
document.getElementById("change_instance").addEventListener("click",
|
else {
|
||||||
async () => browser.tabs.update({ url: await servicesHelper.switchInstance(url) })
|
document.getElementById("change_instance").addEventListener("click",
|
||||||
)
|
async () => browser.tabs.update({ url: await servicesHelper.switchInstance(url) })
|
||||||
}
|
)
|
||||||
})
|
}
|
||||||
servicesHelper.copyRaw(url, true).then(r => {
|
})
|
||||||
if (!r) {
|
servicesHelper.copyRaw(url, true).then(r => {
|
||||||
document.getElementById("copy_raw_div").style.display = "none"
|
if (!r) {
|
||||||
}
|
document.getElementById("copy_raw_div").style.display = "none"
|
||||||
else {
|
}
|
||||||
const copy_raw = document.getElementById("copy_raw")
|
else {
|
||||||
copy_raw.addEventListener("click", () => servicesHelper.copyRaw(url))
|
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())
|
document.getElementById("more-options").addEventListener("click", () => browser.runtime.openOptionsPage())
|
||||||
|
|
Loading…
Reference in New Issue