diff --git a/Privacy-Policy.md b/Privacy-Policy.md
index d2878c7..8618092 100644
--- a/Privacy-Policy.md
+++ b/Privacy-Policy.md
@@ -6,7 +6,6 @@
OpenStreetMap (OSM) reverse geocoding, done via the [OSM Nomantim API](https://nominatim.org/release-docs/develop/api/Overview/),
used as part of OSM redirects, which can be disabled by toggling the OSM redirects.
- It also connects to [this url](https://raw.githubusercontent.com/libredirect/libredirect/master/src/instances/data.json) to update the Instances List. Though this only gets triggered when the user presses the `Update Instances` button.
-- For bibliogram instances. To set a cookie you should send an HTTP request to the server as the server stores settings values itself and gives you a token to access them.
## Future Changes
diff --git a/src/assets/javascripts/general.js b/src/assets/javascripts/general.js
index 9e490c4..7b8f9da 100644
--- a/src/assets/javascripts/general.js
+++ b/src/assets/javascripts/general.js
@@ -32,10 +32,8 @@ async function initDefaults() {
},
theme: "detect",
popupServices: ["youtube", "twitter", "instagram", "tiktok", "imgur", "reddit", "quora", "translate", "maps"],
- autoRedirect: false,
network: "clearnet",
networkFallback: true,
- latencyThreshold: 1000,
},
},
() => resolve()
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index a8d9907..5463bfc 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -550,50 +550,6 @@ function reverse(url, urlString) {
})
}
-function unifyPreferences(url, tabId) {
- return new Promise(async resolve => {
- await init()
- const protocolHost = utils.protocolHost(url)
- for (const service in config.services) {
- for (const frontend in config.services[service].frontends) {
- if (all(service, frontend, options, config, redirects).includes(protocolHost)) {
- let instancesList = [...options[frontend][options.network].enabled, ...options[frontend][options.network].custom]
- if (options.networkFallback && options.network != "clearnet") instancesList.push(...options[frontend].clearnet.enabled, ...options[frontend].clearnet.custom)
-
- const frontendObject = config.services[service].frontends[frontend]
- if ("cookies" in frontendObject.preferences) {
- for (const cookie of frontendObject.preferences.cookies) {
- await utils.copyCookie(url, instancesList, cookie)
- }
- }
- if ("localstorage" in frontendObject.preferences) {
- browser.storage.local.set({ tmp: [frontend, frontendObject.preferences.localstorage] })
- browser.tabs.executeScript(tabId, {
- file: "/assets/javascripts/get-localstorage.js",
- runAt: "document_start",
- })
- for (const instance of instancesList)
- browser.tabs.create({ url: instance }, tab =>
- browser.tabs.executeScript(tab.id, {
- file: "/assets/javascripts/set-localstorage.js",
- runAt: "document_start",
- })
- )
- }
- /*
- if ("indexeddb" in frontendObject.preferences) {
- }
- if ("token" in frontendObject.preferences) {
- }
- */
- resolve(true)
- return
- }
- }
- }
- })
-}
-
function setRedirects(passedRedirects) {
return new Promise(resolve => {
fetch("/config/config.json")
@@ -662,7 +618,6 @@ function initDefaults() {
let targets = {}
let config = JSON.parse(configData)
const localstorage = {}
- const latency = {}
for (const service in config.services) {
options[service] = {}
if (config.services[service].targets == "datajson") {
@@ -687,7 +642,7 @@ function initDefaults() {
}
}
}
- browser.storage.local.set({ redirects, options, targets, latency, localstorage })
+ browser.storage.local.set({ redirects, options, targets, localstorage })
resolve()
})
})
@@ -702,7 +657,6 @@ function upgradeOptions() {
.then(configData => {
browser.storage.local.get(null, r => {
let options = r.options
- let latency = {}
const config = JSON.parse(configData)
options.exceptions = r.exceptions
if (r.theme != "DEFAULT") options.theme = r.theme
@@ -717,7 +671,6 @@ function upgradeOptions() {
options.popupServices.splice(tmp, 1)
options.popupServices.push("sendFiles")
}
- options.autoRedirect = r.autoRedirect
switch (r.onlyEmbeddedVideo) {
case "onlyNotEmbedded":
options.youtube.redirectType = "main_frame"
@@ -747,7 +700,6 @@ function upgradeOptions() {
if (r[oldService + "EmbedFrontend"] && (service != "youtube" || r[oldService + "EmbedFrontend"] == "invidious" || r[oldService + "EmbedFrontend"] == "piped"))
options[service].embedFrontend = r[oldService + "EmbedFrontend"]
for (const frontend in config.services[service].frontends) {
- if (r[frontend + "Latency"]) latency[frontend] = r[frontend + "Latency"]
for (const network in config.networks) {
let protocol
if (network == "clearnet") protocol = "normal"
@@ -763,7 +715,7 @@ function upgradeOptions() {
}
}
}
- browser.storage.local.set({ options, latency }, () => resolve())
+ browser.storage.local.set({ options }, () => resolve())
})
})
})
@@ -870,7 +822,6 @@ export default {
computeService,
switchInstance,
reverse,
- unifyPreferences,
setRedirects,
initDefaults,
upgradeOptions,
diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js
index b176967..4dd537f 100644
--- a/src/assets/javascripts/utils.js
+++ b/src/assets/javascripts/utils.js
@@ -13,7 +13,6 @@ function camelCase(str) {
let cloudflareBlackList = []
let authenticateBlackList = []
-let offlineBlackList = []
async function initBlackList() {
return new Promise(resolve => {
fetch("/instances/blacklist.json")
@@ -21,7 +20,6 @@ async function initBlackList() {
.then(data => {
cloudflareBlackList = JSON.parse(data).cloudflare
authenticateBlackList = JSON.parse(data).authenticate
- offlineBlackList = JSON.parse(data).offline
resolve()
})
})
@@ -60,7 +58,6 @@ function protocolHost(url) {
}
async function processDefaultCustomInstances(service, frontend, network, document) {
- let instancesLatency
let frontendNetworkElement = document.getElementById(frontend).getElementsByClassName(network)[0]
let frontendCustomInstances = []
@@ -74,11 +71,10 @@ async function processDefaultCustomInstances(service, frontend, network, documen
async function getFromStorage() {
return new Promise(async resolve =>
- browser.storage.local.get(["options", "redirects", "latency"], r => {
+ browser.storage.local.get(["options", "redirects",], r => {
frontendDefaultRedirects = r.options[frontend][network].enabled
frontendCustomInstances = r.options[frontend][network].custom
options = r.options
- instancesLatency = r.latency[frontend] ?? []
redirects = r.redirects
resolve()
})
@@ -106,27 +102,17 @@ async function processDefaultCustomInstances(service, frontend, network, documen
Toggle All
`,
- ...redirects[frontend][network].map(x => {
- const cloudflare = cloudflareBlackList.includes(x) ? ' cloudflare' : ""
- const authenticate = authenticateBlackList.includes(x) ? ' authenticate' : ""
- const offline = offlineBlackList.includes(x) ? ' offline' : ""
+ ...redirects[frontend][network]
+ .map(x => {
+ const cloudflare = cloudflareBlackList.includes(x) ? ' cloudflare' : ""
+ const authenticate = authenticateBlackList.includes(x) ? ' authenticate' : ""
- let ms = instancesLatency[x]
- let latencyColor = ms == -1 ? "red" : ms <= 1000 ? "green" : ms <= 2000 ? "orange" : "red"
- let latencyLimit
- if (ms == 5000) latencyLimit = "5000ms+"
- else if (ms > 5000) latencyLimit = `ERROR: ${ms - 5000}`
- else if (ms == -1) latencyLimit = "Server not found"
- else latencyLimit = ms + "ms"
-
- const latency = x in instancesLatency ? '' + latencyLimit + "" : ""
-
- let warnings = [cloudflare, authenticate, offline, latency].join(" ")
- return `
+ let warnings = [cloudflare, authenticate].join(" ")
+ return `
`
- }),
+ }),
].join("\n
\n")
localise.localisePage()
@@ -211,133 +197,6 @@ async function processDefaultCustomInstances(service, frontend, network, documen
})
}
-function ping(href) {
- return new Promise(async resolve => {
- let average = 0
- let time
- for (let i = 0; i < 3; i++) {
- time = await pingOnce(href)
- if (i == 0) continue
- if (time >= 5000) {
- resolve(time)
- return
- }
- average += time
- }
- average = parseInt(average / 3)
- resolve(average)
- })
-}
-
-function pingOnce(href) {
- return new Promise(async resolve => {
- let started
- let http = new XMLHttpRequest()
- http.timeout = 5000
- http.ontimeout = () => resolve(5000)
- http.onerror = () => resolve()
- http.onreadystatechange = () => {
- if (http.readyState == 2) {
- if (http.status == 200) {
- let ended = new Date().getTime()
- http.abort()
- resolve(ended - started)
- } else {
- resolve(5000 + http.status)
- }
- }
- }
- http.open("GET", `${href}?_=${new Date().getTime()}`, true)
- started = new Date().getTime()
- http.send(null)
- })
-}
-
-async function testLatency(element, instances, frontend) {
- return new Promise(async resolve => {
- let myList = {}
- let latencyThreshold, options
- browser.storage.local.get(["options"], r => {
- latencyThreshold = r.options.latencyThreshold
- options = r.options
- })
- for (const href of instances) {
- await ping(href).then(time => {
- let color
- if (time) {
- myList[href] = time
- if (time <= 1000) color = "green"
- else if (time <= 2000) color = "orange"
- else color = "red"
-
- if (time > latencyThreshold && options[frontend].clearnet.enabled.includes(href)) {
- options[frontend].clearnet.enabled.splice(options[frontend].clearnet.enabled.indexOf(href), 1)
- }
-
- let text
- if (time == 5000) text = "5000ms+"
- else if (time > 5000) text = `ERROR: ${time - 5000}`
- else text = `${time}ms`
- element.innerHTML = `${href}:
${text}`
- } else {
- myList[href] = -1
- color = "red"
- element.innerHTML = `${href}:
Server not found`
- if (options[frontend].clearnet.enabled.includes(href)) options[frontend].clearnet.enabled.splice(options[frontend].clearnet.enabled.indexOf(href), 1)
- }
- })
- }
- browser.storage.local.set({ options })
- resolve(myList)
- })
-}
-
-function copyCookie(targetUrl, urls, name) {
- return new Promise(resolve => {
- const query = {
- url: protocolHost(targetUrl),
- name: name,
- }
- browser.cookies.getAll(query, async cookies => {
- for (const cookie of cookies)
- if (cookie.name == name) {
- for (const url of urls) {
- const setQuery = {
- url: url,
- name: name,
- value: cookie.value,
- secure: true,
- expirationDate: cookie.expirationDate,
- }
- browser.cookies.set(setQuery)
- }
- break
- }
- resolve()
- })
- })
-}
-
-function getPreferencesFromToken(frontend, targetUrl, urls, name, endpoint) {
- return new Promise(resolve => {
- const http = new XMLHttpRequest()
- const url = `${targetUrl}${endpoint}`
- http.open("GET", url, false)
- //http.setRequestHeader("Cookie", `${name}=${cookie.value}`)
- http.send(null)
- const preferences = JSON.parse(http.responseText)
- let formdata = new FormData()
- for (var key in preferences) formdata.append(key, preferences[key])
- for (const url of urls) {
- const http = new XMLHttpRequest()
- http.open("POST", `${url}/settings/stay`, false)
- http.send(null)
- }
- resolve()
- return
- })
-}
-
function copyRaw(test, copyRawElement) {
return new Promise(resolve => {
browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
@@ -370,25 +229,6 @@ function copyRaw(test, copyRawElement) {
})
}
-function unify() {
- return new Promise(resolve => {
- browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
- let currTab = tabs[0]
- if (currTab) {
- let url
- try {
- url = new URL(currTab.url)
- } catch {
- resolve()
- return
- }
-
- resolve(await servicesHelper.unifyPreferences(url, currTab.id))
- }
- })
- })
-}
-
function switchInstance(test) {
return new Promise(resolve => {
browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
@@ -412,41 +252,12 @@ function switchInstance(test) {
})
}
-function latency(service, frontend, document, location) {
- let latencyElement = document.getElementById(`latency-${frontend}`)
- let latencyLabel = document.getElementById(`latency-${frontend}-label`)
- latencyElement.addEventListener("click", async () => {
- let reloadWindow = () => location.reload()
- latencyElement.addEventListener("click", reloadWindow)
- browser.storage.local.get("redirects", r => {
- let redirects = r.redirects
- const oldHtml = latencyLabel.innerHTML
- latencyLabel.innerHTML = "..."
- testLatency(latencyLabel, redirects[frontend].clearnet, frontend).then(r => {
- const frontendLatency = r
- browser.storage.local.get("latency", r => {
- let latency = r.latency
- latency[frontend] = frontendLatency
- browser.storage.local.set({ latency })
- latencyLabel.innerHTML = oldHtml
- processDefaultCustomInstances(service, frontend, "clearnet", document)
- latencyElement.removeEventListener("click", reloadWindow)
- })
- })
- })
- })
-}
-
export default {
getRandomInstance,
updateInstances,
protocolHost,
processDefaultCustomInstances,
- latency,
- copyCookie,
- getPreferencesFromToken,
switchInstance,
copyRaw,
- unify,
camelCase,
}
diff --git a/src/config/config.json b/src/config/config.json
index 011347f..31940b2 100644
--- a/src/config/config.json
+++ b/src/config/config.json
@@ -21,14 +21,6 @@
"youtube": {
"frontends": {
"invidious": {
- "preferences": {
- "cookies": [
- "PREFS"
- ],
- "localstorage": [
- "dark_mode"
- ]
- },
"name": "Invidious",
"embeddable": true,
"instanceList": true
@@ -38,29 +30,6 @@
1,
2
],
- "preferences": {
- "localstorage": [
- "bufferGoal",
- "comments",
- "disableLBRY",
- "enabledCodecs",
- "hl",
- "homepage",
- "instance",
- "listen",
- "minimizeDescription",
- "playerAutoPlay",
- "proxyLBRY",
- "quality",
- "region",
- "selectedSkip",
- "sponsorblock",
- "theme",
- "volume",
- "watchHistory",
- "localSubscriptions"
- ]
- },
"name": "Piped",
"embeddable": true,
"instanceList": true
@@ -70,21 +39,11 @@
1,
2
],
- "preferences": {
- "localstorage": [
- "PREFERENCES"
- ]
- },
"name": "Piped-Material",
"embeddable": false,
"instanceList": true
},
"cloudtube": {
- "preferences": {
- "token": "token",
- "fetchEndpoint": "/api/settings",
- "setEndpoint": "/settings"
- },
"name": "CloudTube",
"embeddable": false,
"instanceList": true
@@ -130,30 +89,10 @@
"youtubeMusic": {
"frontends": {
"beatbump": {
- "preferences": {
- "localstorage": [
- "settings"
- ],
- "indexeddb": "beatbump"
- },
"name": "Beatbump",
"instanceList": true
},
"hyperpipe": {
- "preferences": {
- "localstorage": [
- "api",
- "authapi",
- "codec",
- "locale",
- "next",
- "pipedapi",
- "quality",
- "theme",
- "vol"
- ],
- "indexeddb": "hyperpipedb"
- },
"name": "Hyperpipe",
"instanceList": true
}
@@ -173,27 +112,6 @@
"twitter": {
"frontends": {
"nitter": {
- "preferences": {
- "cookies": [
- "autoplayGifs",
- "bidiSupport",
- "hideBanner",
- "hidePins",
- "hideReplies",
- "hideTweetStats",
- "hlsPlayback",
- "infiniteScroll",
- "mp4Playback",
- "muteVideos",
- "proxyVideos",
- "replaceInstagram",
- "replaceReddit",
- "replaceTwitter",
- "replaceYouTube",
- "squareAvatars",
- "theme"
- ]
- },
"name": "Nitter",
"embeddable": true,
"instanceList": true
@@ -217,11 +135,6 @@
"instagram": {
"frontends": {
"bibliogram": {
- "preferences": {
- "token": "token",
- "fetchEndpoint": "/settings.json",
- "setEndpoint": "/applysettings"
- },
"name": "Bibliogram",
"instanceList": true
}
@@ -240,12 +153,6 @@
"tiktok": {
"frontends": {
"proxiTok": {
- "preferences": {
- "cookies": [
- "api-test_endpoints",
- "theme"
- ]
- },
"name": "ProxiTok",
"instanceList": true
}
@@ -264,46 +171,10 @@
"reddit": {
"frontends": {
"libreddit": {
- "preferences": {
- "cookies": [
- "theme",
- "front_page",
- "layout",
- "wide",
- "post_sort",
- "comment_sort",
- "show_nsfw",
- "autoplay_videos",
- "use_hls",
- "hide_hls_notification",
- "subscriptions",
- "filters"
- ]
- },
"name": "Libreddit",
"instanceList": true
},
"teddit": {
- "preferences": {
- "cookies": [
- "collapse_child_comments",
- "default_comment_sort",
- "domain_instagram",
- "domain_twitter",
- "domain_youtube",
- "flairs",
- "highlight_controversial",
- "nsfw_enabled",
- "post_media_max_height",
- "prefer_frontpage",
- "show_large_gallery_images",
- "show_upvoted_percentage",
- "show_upvotes",
- "subbed_subreddits",
- "theme",
- "videos_muted"
- ]
- },
"name": "Teddit",
"instanceList": true
}
@@ -343,12 +214,6 @@
"wikipedia": {
"frontends": {
"wikiless": {
- "preferences": {
- "cookies": [
- "theme",
- "default_lang"
- ]
- },
"name": "Wikiless",
"instanceList": true
}
@@ -402,11 +267,6 @@
"quora": {
"frontends": {
"quetre": {
- "preferences": {
- "localstorage": [
- "theme"
- ]
- },
"name": "Quetre",
"instanceList": true
}
@@ -425,11 +285,6 @@
"imdb": {
"frontends": {
"libremdb": {
- "preferences": {
- "localstorage": [
- "theme"
- ]
- },
"name": "libremdb",
"instanceList": true
}
@@ -500,20 +355,6 @@
"lbry": {
"frontends": {
"librarian": {
- "preferences": {
- "cookies": [
- "nsfw",
- "theme"
- ],
- "localstorage": [
- "autoplay",
- "autoplayNextVid",
- "collapseComments",
- "plyr",
- "sb_categories",
- "showRelated"
- ]
- },
"name": "Librarian",
"embeddable": true,
"instanceList": true
@@ -542,55 +383,10 @@
"search": {
"frontends": {
"searx": {
- "preferences": {
- "cookies": [
- "advanced_search",
- "autocomplete",
- "categories",
- "disabled_engines",
- "disabled_plugins",
- "doi_resolver",
- "enabled_engines",
- "enabled_plugins",
- "image_proxy",
- "language",
- "locale",
- "method",
- "oscar-style",
- "results_on_new_tab",
- "safesearch",
- "theme",
- "tokens"
- ]
- },
"name": "SearX",
"instanceList": true
},
"searxng": {
- "preferences": {
- "cookies": [
- "autocomplete",
- "categories",
- "center_alignment",
- "disabled_engines",
- "disabled_plugins",
- "doi_resolver",
- "enabled_plugins",
- "enabled_engines",
- "image_proxy",
- "infinite_scroll",
- "language",
- "locale",
- "maintab",
- "method",
- "query_in_title",
- "results_on_new_tab",
- "safesearch",
- "simple_style",
- "theme",
- "tokens"
- ]
- },
"name": "SearXNG",
"instanceList": true
},
@@ -599,20 +395,6 @@
"instanceList": true
},
"librex": {
- "preferences": {
- "cookies": [
- "bibliogram",
- "disable_frontends",
- " disable_special",
- "invidious",
- "libreddit",
- "nitter",
- "proxitok",
- "save",
- "theme",
- "wikiless"
- ]
- },
"name": "LibreX",
"instanceList": true
}
@@ -632,26 +414,10 @@
"translate": {
"frontends": {
"simplyTranslate": {
- "preferences": {
- "cookies": [
- "from_lang",
- "to_lang",
- "tts_enabled",
- "use_text_fields"
- ]
- },
"name": "SimplyTranslate",
"instanceList": true
},
"lingva": {
- "preferences": {
- "localstorage": [
- "isauto",
- "source",
- "target",
- "chakra-ui-color-mode"
- ]
- },
"name": "Lingva Translate",
"instanceList": true
},
@@ -743,9 +509,6 @@
},
"authenticate": {
"color": "orange"
- },
- "offline": {
- "color": "grey"
}
}
}
\ No newline at end of file
diff --git a/src/instances/get_instances.py b/src/instances/get_instances.py
index 913ee1c..65b1fc4 100755
--- a/src/instances/get_instances.py
+++ b/src/instances/get_instances.py
@@ -117,21 +117,6 @@ def is_authenticate(url):
return False
return False
-
-def is_offline(url):
- try:
- r = requests.get(url, timeout=5, headers=headers)
- if r.status_code >= 400:
- print(url + ' is ' + Fore.RED + 'offline' + Style.RESET_ALL)
- print("Status code")
- print(r.status_code)
- return True
- else:
- return False
- except Exception:
- return False
-
-
def fetchCache(frontend, name):
try:
with open('./src/instances/data.json') as file:
@@ -524,7 +509,6 @@ mightyList = idnaEncode(mightyList)
cloudflare = []
authenticate = []
-offline = []
for k1, v1 in mightyList.items():
if type(mightyList[k1]) is dict:
for k2, v2 in mightyList[k1].items():
@@ -537,15 +521,12 @@ for k1, v1 in mightyList.items():
cloudflare.append(instance)
if not instance.endswith('.onion') and not instance.endswith('.i2p') and not instance.endswith('.loki') and is_authenticate(instance):
authenticate.append(instance)
- elif not instance.endswith('.onion') and not instance.endswith('.i2p') and not instance.endswith('.loki') and is_offline(instance):
- offline.append(instance)
peertube()
blacklist = {
'cloudflare': cloudflare,
'authenticate': authenticate,
- 'offline': offline
}
# Writing to file
diff --git a/src/manifest.json b/src/manifest.json
index 00c5016..2730d16 100644
--- a/src/manifest.json
+++ b/src/manifest.json
@@ -19,7 +19,7 @@
"48": "assets/images/libredirect-48.png",
"128": "assets/images/libredirect-128.png"
},
- "permissions": ["webRequest", "webRequestBlocking", "storage", "unlimitedStorage", "cookies", "clipboardWrite", "contextMenus", "
"],
+ "permissions": ["webRequest", "webRequestBlocking", "storage", "unlimitedStorage", "clipboardWrite", "contextMenus", ""],
"browser_action": {
"default_title": "__MSG_extensionName__",
"browser_style": false,
@@ -58,12 +58,6 @@
"default": "Alt+Shift+C"
},
"description": "Copies the original link. Ex: Copies the original twitter link while in the nitter website"
- },
- "unify": {
- "suggested_key": {
- "default": "Alt+Shift+U"
- },
- "description": "Copies the preferences (cookies, localStorage) from the current opened instance and copy them to all the other selected instances"
}
},
"default_locale": "en",
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 3a69504..2db6dc0 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -89,47 +89,9 @@ browser.tabs.onRemoved.addListener(tabId => {
}
})
-async function redirectOfflineInstance(url, tabId) {
- let newUrl = await servicesHelper.switchInstance(url, true)
-
- if (newUrl) {
- if (counter >= 5) {
- browser.tabs.update(tabId, {
- url: `/pages/errors/instance_offline.html?url=${encodeURIComponent(newUrl)}`,
- })
- counter = 0
- } else {
- browser.tabs.update(tabId, { url: newUrl })
- counter++
- }
- }
-}
-let counter = 0
-
-function isAutoRedirect() {
- return new Promise(resolve => browser.storage.local.get("options", r => resolve(r.options.autoRedirect == true)))
-}
-
-browser.webRequest.onResponseStarted.addListener(
- async details => {
- if (!(await isAutoRedirect())) return null
- if (details.type == "main_frame" && details.statusCode >= 500) redirectOfflineInstance(new URL(details.url), details.tabId)
- },
- { urls: [""] }
-)
-
-browser.webRequest.onErrorOccurred.addListener(
- async details => {
- if (!(await isAutoRedirect())) return
- if (details.type == "main_frame") redirectOfflineInstance(new URL(details.url), details.tabId)
- },
- { urls: [""] }
-)
-
browser.commands.onCommand.addListener(command => {
if (command === "switchInstance") utils.switchInstance()
else if (command == "copyRaw") utils.copyRaw()
- else if (command == "unify") utils.unify()
})
browser.contextMenus.create({
@@ -150,12 +112,6 @@ browser.contextMenus.create({
contexts: ["browser_action"],
})
-browser.contextMenus.create({
- id: "unify",
- title: browser.i18n.getMessage("unifySettings"),
- contexts: ["browser_action"],
-})
-
try {
browser.contextMenus.create({
id: "toggleTab",
@@ -207,10 +163,6 @@ browser.contextMenus.onClicked.addListener((info, tab) => {
utils.copyRaw()
resolve()
return
- case "unify":
- utils.unify()
- resolve()
- return
case "toggleTab":
if (tabIdRedirects[tab.id] != undefined) {
tabIdRedirects[tab.id] = !tabIdRedirects[tab.id]
@@ -253,9 +205,4 @@ browser.webRequest.onHeadersReceived.addListener(
},
{ urls: [""] },
["blocking", "responseHeaders"]
-)
-
-browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
- if (message.function === "unify") utils.unify(false).then(r => sendResponse({ response: r }))
- return true
-})
+)
\ No newline at end of file
diff --git a/src/pages/errors/instance_offline.html b/src/pages/errors/instance_offline.html
deleted file mode 100644
index a74caec..0000000
--- a/src/pages/errors/instance_offline.html
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
- Instance is offline
-
-
-
-
-
-
-
- This instance is offline, you'll be redirected after
- 2 seconds
-
-
-
-
-
-
-
diff --git a/src/pages/errors/instance_offline.js b/src/pages/errors/instance_offline.js
deleted file mode 100644
index fadb768..0000000
--- a/src/pages/errors/instance_offline.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import localise from "../../assets/javascripts/localise.js"
-
-const params = new Proxy(new URLSearchParams(window.location.search), {
- get: (searchParams, prop) => searchParams.get(prop),
-})
-
-let number = document.getElementById("number")
-setTimeout(() => (number.innerHTML = "1"), 1000)
-setTimeout(() => {
- number.innerHTML = "0"
- if (!isCanceled) window.location = params.url
-}, 2000)
-
-let isCanceled = false
-document.getElementById("cancel").addEventListener("click", () => {
- isCanceled = true
- document.getElementById("message").innerHTML = browser.i18n.getMessage("redirectionCanceled")
-})
-
-localise.localisePage()
diff --git a/src/pages/options/widgets/general.ejs b/src/pages/options/widgets/general.ejs
index fef052d..6bb15bc 100644
--- a/src/pages/options/widgets/general.ejs
+++ b/src/pages/options/widgets/general.ejs
@@ -13,37 +13,6 @@
-