aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/assets/javascripts/data.js1
-rw-r--r--src/assets/javascripts/helpers/common.js1
-rw-r--r--src/assets/javascripts/helpers/google-maps.js42
-rw-r--r--src/assets/javascripts/helpers/google-search.js30
-rw-r--r--src/assets/javascripts/helpers/google-translate.js20
-rw-r--r--src/assets/javascripts/helpers/instagram.js29
-rw-r--r--src/assets/javascripts/helpers/medium.js28
-rw-r--r--src/assets/javascripts/helpers/reddit.js26
-rw-r--r--src/assets/javascripts/helpers/twitter.js25
-rw-r--r--src/assets/javascripts/helpers/wikipedia.js25
-rw-r--r--src/assets/javascripts/helpers/youtube.js38
-rw-r--r--src/assets/javascripts/remove-twitter-sw.js16
-rw-r--r--src/pages/background/background.js32
-rw-r--r--src/pages/options/init.js11
-rw-r--r--src/pages/options/instagram.js4
-rw-r--r--src/pages/options/maps.js4
-rw-r--r--src/pages/options/medium.js4
-rw-r--r--src/pages/options/reddit.js12
-rw-r--r--src/pages/options/search.html1
-rw-r--r--src/pages/options/search.js6
-rw-r--r--src/pages/options/shared.js4
-rw-r--r--src/pages/options/translate.js4
-rw-r--r--src/pages/options/twitter.js6
-rw-r--r--src/pages/options/wikipedia.js4
-rw-r--r--src/pages/options/youtube.js13
-rw-r--r--src/pages/popup/popup.js73
26 files changed, 286 insertions, 173 deletions
diff --git a/src/assets/javascripts/data.js b/src/assets/javascripts/data.js
index 13172f79..fad2ea9d 100644
--- a/src/assets/javascripts/data.js
+++ b/src/assets/javascripts/data.js
@@ -1,6 +1,7 @@
"use strict";
let exceptions;
+
function setExceptions(val) {
exceptions = val;
browser.storage.sync.set({ exceptions })
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index 094c19e4..72a62f66 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -4,6 +4,7 @@ import instagramHelper from "./instagram.js";
import mediumHelper from "./medium.js";
import redditHelper from "./reddit.js";
import searchHelper from "./google-search.js";
+import data from '../data.js'
import googleTranslateHelper from "./google-translate.js";
import wikipediaHelper from "./wikipedia.js";
import mapsHelper from "./google-maps.js";
diff --git a/src/assets/javascripts/helpers/google-maps.js b/src/assets/javascripts/helpers/google-maps.js
index f0cf01bc..321d5174 100644
--- a/src/assets/javascripts/helpers/google-maps.js
+++ b/src/assets/javascripts/helpers/google-maps.js
@@ -1,3 +1,5 @@
+import commonHelper from './common.js'
+
const targets = /https?:\/\/(((www|maps)\.)?(google\.).*(\/maps)|maps\.(google\.).*)/;
const redirects = {
"normal": [
@@ -58,20 +60,21 @@ function setOsmInstance(val) {
browser.storage.sync.set({ osmInstance })
};
-function redirectGoogleMaps(url, initiator) {
- if (disableOsm || data.isException(url, initiator))
+async function redirect(url, initiator) {
+ await init()
+ if (disableOsm)
return null;
if (initiator && initiator.host === "earth.google.com")
return null;
let redirect;
- let link = commonHelper.getRandomInstance(mapsHelper.redirects.normal);
+ let link = commonHelper.getRandomInstance(redirects.normal);
let mapCentre = "";
let params = "";
// Set map centre if present
- if (url.pathname.match(mapsHelper.mapCentreRegex)) {
- const [, lat, lon, zoom] = url.pathname.match(mapsHelper.mapCentreRegex);
+ if (url.pathname.match(mapCentreRegex)) {
+ const [, lat, lon, zoom] = url.pathname.match(mapCentreRegex);
mapCentre = `#map=${zoom}/${lat}/${lon}`;
} else if (url.search.includes("center=")) {
const [lat, lon] = url.searchParams.get("center").split(",");
@@ -81,7 +84,7 @@ function redirectGoogleMaps(url, initiator) {
params = "&zoom=17";
}
// Set map layer
- params = `${params}&layers=${mapsHelper.layers[url.searchParams.get("layer")] || mapsHelper.layers["none"]
+ params = `${params}&layers=${layers[url.searchParams.get("layer")] || layers["none"]
}`;
// Handle Google Maps Embed API
if (url.pathname.split("/").includes("embed")) {
@@ -97,25 +100,25 @@ function redirectGoogleMaps(url, initiator) {
}
}
let marker, bbox;
- mapsHelper.addressToLatLng(query, (coords, boundingbox) => {
+ addressToLatLng(query, (coords, boundingbox) => {
marker = coords;
bbox = boundingbox;
});
redirect = `${link}/export/embed.html?bbox=${bbox}&layer=mapnik&marker=${marker}`;
// Handle Google Maps Directions
} else if (url.pathname.split("/").includes("dir")) {
- const travelMode = mapsHelper.travelModes[url.searchParams.get("travelmode")] || mapsHelper.travelModes["driving"];
+ const travelMode = travelModes[url.searchParams.get("travelmode")] || travelModes["driving"];
let origin;
- mapsHelper.addressToLatLng(url.searchParams.get("origin"), (coords) => origin = coords);
+ addressToLatLng(url.searchParams.get("origin"), (coords) => origin = coords);
let destination;
- mapsHelper.addressToLatLng(url.searchParams.get("destination"), (coords) => destination = coords);
+ addressToLatLng(url.searchParams.get("destination"), (coords) => destination = coords);
redirect = `${link}/directions?engine=${travelMode}&route=${origin}%3B${destination}${mapCentre}${params}`;
// Get marker from data attribute
} else if (
url.pathname.includes("data=") &&
- url.pathname.match(mapsHelper.dataLatLngRegex)
+ url.pathname.match(dataLatLngRegex)
) {
- const [mlat, mlon] = url.pathname.match(mapsHelper.dataLatLngRegex);
+ const [mlat, mlon] = url.pathname.match(dataLatLngRegex);
redirect = `${link}/?mlat=${mlat.replace("!3d", "")}&mlon=${mlon.replace("!4d", "")}${mapCentre}${params}`;
// Get marker from ll param
} else if (url.searchParams.has("ll")) {
@@ -130,13 +133,23 @@ function redirectGoogleMaps(url, initiator) {
let query;
if (url.searchParams.has("q")) query = url.searchParams.get("q");
else if (url.searchParams.has("query")) query = url.searchParams.get("query");
- else if (url.pathname.match(mapsHelper.placeRegex)) query = url.pathname.match(mapsHelper.placeRegex)[1];
+ else if (url.pathname.match(placeRegex)) query = url.pathname.match(placeRegex)[1];
redirect = `${link}/${query ? "search?query=" + query : ""}${mapCentre || "#"}${params}`;
}
return redirect;
}
+
+async function init() {
+ let result = await browser.storage.sync.get([
+ "disableOsm",
+ "osmInstance",
+ ])
+ disableOsm = result.disableOsm;
+ osmInstance = result.osmInstance;
+}
+
export default {
targets,
redirects,
@@ -150,5 +163,6 @@ export default {
setDisableOsm,
getOsmInstance,
setOsmInstance,
- redirectGoogleMaps,
+ redirect,
+ init,
};
diff --git a/src/assets/javascripts/helpers/google-search.js b/src/assets/javascripts/helpers/google-search.js
index a17843b7..54c8536f 100644
--- a/src/assets/javascripts/helpers/google-search.js
+++ b/src/assets/javascripts/helpers/google-search.js
@@ -1,3 +1,5 @@
+import commonHelper from './common.js'
+
const targets = [
/https:\/\/google\.com/,
/https:\/\/.*\.google\.com/,
@@ -150,12 +152,12 @@ const redirects = {
}
};
-
let disableSearch;
const getDisableSearch = () => disableSearch;
function setDisableSearch(val) {
disableSearch = val;
browser.storage.sync.set({ disableSearch })
+ console.log("disableSearch: ", disableSearch)
}
let searchInstance;
@@ -170,22 +172,22 @@ const getSearchFrontend = () => searchFrontend;
function setSearchFrontend(val) {
searchFrontend = val;
browser.storage.sync.set({ searchFrontend })
+ console.log("searchFrontend: ", searchFrontend)
};
-function redirect(url, initiator) {
- console.info("searchFrontend:", searchFrontend)
- if (disableSearch || data.isException(url, initiator)) {
+async function redirect(url, initiator) {
+ await init();
+ if (disableSearch)
return null;
- }
let instance;
let path;
if (searchFrontend == 'searx') {
- instance = commonHelper.getRandomInstance(searchHelper.redirects.searx.normal);
+ instance = commonHelper.getRandomInstance(redirects.searx.normal);
path = "/"
}
if (searchFrontend == 'whoogle') {
- instance = commonHelper.getRandomInstance(searchHelper.redirects.whoogle.normal);
+ instance = commonHelper.getRandomInstance(redirects.whoogle.normal);
path = "/search"
}
@@ -193,9 +195,22 @@ function redirect(url, initiator) {
url.search.slice(1).split("&").forEach(function (input) {
if (input.startsWith("q=")) searchQuery = input;
});
+ console.log("Will return");
return `${instance}${path}?${searchQuery}`;
}
+async function init() {
+ console.log("Init Search Helper");
+ let result = await browser.storage.sync.get([
+ "disableSearch",
+ "searchInstance",
+ "searchFrontend",
+ ])
+ disableSearch = result.disableSearch;
+ searchInstance = result.searchInstance;
+ searchFrontend = result.searchFrontend;
+}
+
export default {
targets,
redirects,
@@ -206,4 +221,5 @@ export default {
getSearchFrontend,
setSearchFrontend,
redirect,
+ init,
};
diff --git a/src/assets/javascripts/helpers/google-translate.js b/src/assets/javascripts/helpers/google-translate.js
index 9560602d..025a2446 100644
--- a/src/assets/javascripts/helpers/google-translate.js
+++ b/src/assets/javascripts/helpers/google-translate.js
@@ -21,6 +21,7 @@ const getDisableSimplyTranslate = () => disableSimplyTranslate;
function setDisableSimplyTranslate(val) {
disableSimplyTranslate = val;
browser.storage.sync.set({ disableSimplyTranslate })
+ console.log("disableSimplyTranslate: ", disableSimplyTranslate)
}
let simplyTranslateInstance;
@@ -30,12 +31,22 @@ function setSimplyTranslateInstance(val) {
browser.storage.sync.set({ simplyTranslateInstance })
};
-function redirectGoogleTranslate(url, initiator) {
- if (disableSimplyTranslate || isException(url, initiator)) return null;
-
+async function redirect(url, initiator) {
+ await init()
+ if (disableSimplyTranslate)
+ return null;
return `${simplyTranslateInstance}/${url.search}`;
}
+async function init() {
+ let result = await browser.storage.sync.get([
+ "disableSimplyTranslate",
+ "simplyTranslateInstance",
+ ]);
+ disableSimplyTranslate = result.disableSimplyTranslate || false;
+ simplyTranslateInstance = result.simplyTranslateInstance;
+}
+
export default {
targets,
redirects,
@@ -43,7 +54,8 @@ export default {
setDisableSimplyTranslate,
getSimplyTranslateInstance,
setSimplyTranslateInstance,
- redirectGoogleTranslate,
+ redirect,
+ init,
};
diff --git a/src/assets/javascripts/helpers/instagram.js b/src/assets/javascripts/helpers/instagram.js
index 1d7f8890..4c83a671 100644
--- a/src/assets/javascripts/helpers/instagram.js
+++ b/src/assets/javascripts/helpers/instagram.js
@@ -1,3 +1,5 @@
+import commonHelper from './common.js'
+
const targets = [
"instagram.com",
"www.instagram.com",
@@ -58,29 +60,30 @@ function setBibliogramInstance(val) {
};
-function redirect(url, initiator, type) {
- if (data.disableBibliogram || data.isException(url, initiator))
+async function redirect(url, initiator, type) {
+ await init();
+ if (disableBibliogram)
return null;
// Do not redirect Bibliogram view on Instagram links
if (
initiator &&
(
- initiator.origin === data.bibliogramInstance ||
- instagramHelper.redirects.normal.includes(initiator.origin) ||
- instagramHelper.targets.includes(initiator.host)
+ initiator.origin === bibliogramInstance ||
+ redirects.normal.includes(initiator.origin) ||
+ targets.includes(initiator.host)
)
)
return null;
// Do not redirect /accounts, /embeds.js, or anything other than main_frame
- if (type !== "main_frame" || url.pathname.match(instagramHelper.bypassPaths))
+ if (type !== "main_frame" || url.pathname.match(bypassPaths))
return null;
- let link = commonHelper.getRandomInstance(instagramHelper.redirects.normal);
+ let link = commonHelper.getRandomInstance(redirects.normal);
if (
url.pathname === "/" ||
- data.instagramReservedPaths.includes(url.pathname.split("/")[1])
+ instagramReservedPaths.includes(url.pathname.split("/")[1])
)
return `${link}${url.pathname}${url.search}`;
else
@@ -89,6 +92,15 @@ function redirect(url, initiator, type) {
}
+async function init() {
+ let result = await browser.storage.sync.get([
+ "disableBibliogram",
+ "bibliogramInstance",
+ ])
+ disableBibliogram = result.disableBibliogram || false;
+ bibliogramInstance = result.bibliogramInstance;
+}
+
export default {
targets,
redirects,
@@ -99,4 +111,5 @@ export default {
getBibliogramInstance,
setBibliogramInstance,
redirect,
+ init,
};
diff --git a/src/assets/javascripts/helpers/medium.js b/src/assets/javascripts/helpers/medium.js
index 6bb6cd31..0d36fa49 100644
--- a/src/assets/javascripts/helpers/medium.js
+++ b/src/assets/javascripts/helpers/medium.js
@@ -1,4 +1,5 @@
-import data from "../data.js";
+import commonHelper from './common.js'
+
const targets = [
// /(.*\.medium\.com)?(?(1)|^medium\.com)/,
@@ -38,27 +39,35 @@ function setScribeInstance(val) {
browser.storage.sync.set({ scribeInstance })
};
-
-function redirectMedium(url, initiator) {
- if (disableScribe || data.isException(url, initiator)) return null;
+async function redirect(url, initiator) {
+ await init()
+ if (disableScribe) return null;
if (url.pathname == "/") return null;
if (
- data.isFirefox() &&
+ commonHelper.isFirefox() &&
initiator &&
(
initiator.origin === scribeInstance ||
- mediumHelper.redirects.normal.includes(initiator.origin) ||
- mediumHelper.targets.includes(initiator.host)
+ redirects.normal.includes(initiator.origin) ||
+ targets.includes(initiator.host)
)
) {
browser.storage.sync.set({ redirectBypassFlag: true });
return null;
}
- return `${commonHelper.getRandomInstance(mediumHelper.redirects.normal)}${url.pathname}${url.search}`;
+ return `${commonHelper.getRandomInstance(redirects.normal)}${url.pathname}${url.search}`;
}
+async function init() {
+ let result = await browser.storage.sync.get([
+ "disableScribe",
+ "scribeInstance",
+ ])
+ disableScribe = result.disableScribe || false;
+ scribeInstance = result.scribeInstance;
+}
export default {
targets,
@@ -67,5 +76,6 @@ export default {
setDisableScribe,
getScribeInstance,
setScribeInstance,
- redirectMedium,
+ redirect,
+ init,
};
diff --git a/src/assets/javascripts/helpers/reddit.js b/src/assets/javascripts/helpers/reddit.js
index deca2c80..3f88c356 100644
--- a/src/assets/javascripts/helpers/reddit.js
+++ b/src/assets/javascripts/helpers/reddit.js
@@ -1,3 +1,5 @@
+import commonHelper from './common.js'
+
const targets = [
"www.reddit.com",
"np.reddit.com",
@@ -23,7 +25,6 @@ const redirects = {
},
// old UI
"teddit": {
-
"normal": [
"https://teddit.net",
"https://teddit.ggc-project.de",
@@ -71,9 +72,9 @@ function setRedditFrontend(val) {
};
-function redirect(url, initiator, type) {
-
- if (disableReddit || data.isException(url, initiator))
+async function redirect(url, initiator, type) {
+ await init()
+ if (disableReddit)
return null;
// Do not redirect when already on the selected view
@@ -82,11 +83,11 @@ function redirect(url, initiator, type) {
// Do not redirect exclusions nor anything other than main_frame
- if (type !== "main_frame" || url.pathname.match(redditHelper.bypassPaths))
+ if (type !== "main_frame" || url.pathname.match(bypassPaths))
return null;
- let libredditLink = commonHelper.getRandomInstance(redditHelper.redirects.libreddit.normal);
- let tedditLink = commonHelper.getRandomInstance(redditHelper.redirects.teddit.normal);
+ let libredditLink = commonHelper.getRandomInstance(redirects.libreddit.normal);
+ let tedditLink = commonHelper.getRandomInstance(redirects.teddit.normal);
if (url.host === "i.redd.it")
// As of 2021-04-09, redirects for teddit images are nontrivial:
@@ -111,6 +112,16 @@ function redirect(url, initiator, type) {
if (redditFrontend == 'teddit') return `${tedditLink}${url.pathname}${url.search}`;
}
+async function init() {
+ let result = await browser.storage.sync.get([
+ "disableReddit",
+ "redditInstance",
+ "redditFrontend",
+ ])
+ disableReddit = result.disableReddit || false;
+ redditInstance = result.redditInstance;
+ redditFrontend = result.redditFrontend || 'libreddit';
+}
export default {
targets,
@@ -123,4 +134,5 @@ export default {
getRedditFrontend,
setRedditFrontend,
redirect,
+ init,
};
diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js
index 4fdad605..c622c341 100644
--- a/src/assets/javascripts/helpers/twitter.js
+++ b/src/assets/javascripts/helpers/twitter.js
@@ -1,4 +1,5 @@
-import data from "../data.js";
+import commonHelper from './common.js'
+
/*
Please remember to also update the src/manifest.json file
(content_scripts > matches, 'remove-twitter-sw.js')
@@ -58,26 +59,27 @@ function setNitterInstance(val) {
}
-function redirect(url, initiator) {
- if (disableNitter || data.isException(url, initiator))
+async function redirect(url, initiator) {
+ await init();
+ if (disableNitter)
return null;
if (url.pathname.split("/").includes("home")) {
return null;
}
if (
- data.isFirefox() &&
+ commonHelper.isFirefox() &&
initiator &&
(
initiator.origin === nitterInstance ||
- twitterHelper.redirects.normal.includes(initiator.origin) ||
- twitterHelper.targets.includes(initiator.host)
+ redirects.normal.includes(initiator.origin) ||
+ targets.includes(initiator.host)
)
) {
browser.storage.sync.set({ redirectBypassFlag: true });
return null;
}
- let link = commonHelper.getRandomInstance(twitterHelper.redirects.normal)
+ let link = commonHelper.getRandomInstance(redirects.normal)
if (url.host.split(".")[0] === "pbs" || url.host.split(".")[0] === "video")
return `${link}/pic/${encodeURIComponent(url.href)}`;
@@ -89,6 +91,14 @@ function redirect(url, initiator) {
}
+async function init() {
+ let result = await browser.storage.sync.get([
+ "disableNitter",
+ "nitterInstance"
+ ]);
+ disableNitter = result.disableNitter || false;
+ nitterInstance = result.nitterInstance;
+}
export default {
targets,
@@ -98,4 +108,5 @@ export default {
getNitterInstance,
setNitterInstance,
redirect,
+ init,
};
diff --git a/src/assets/javascripts/helpers/wikipedia.js b/src/assets/javascripts/helpers/wikipedia.js
index 00a8a4cc..f27305f4 100644
--- a/src/assets/javascripts/helpers/wikipedia.js
+++ b/src/assets/javascripts/helpers/wikipedia.js
@@ -7,21 +7,22 @@ const redirects = {
};
let disableWikipedia;
+const getDisableWikipedia = () => disableWikipedia;
function setDisableWikipedia(val) {
disableWikipedia = val;
browser.storage.sync.set({ disableWikipedia })
}
-const getDisableWikipedia = () => disableWikipedia;
let wikipediaInstance;
+const getWikipediaInstance = () => wikipediaInstance;
function setWikipediaInstance(val) {
wikipediaInstance = val;
browser.storage.sync.set({ wikipediaInstance })
};
-const getWikipediaInstance = () => wikipediaInstance;
-function redirectWikipedia(url, initiator) {
- if (disableWikipedia || data.isException(url, initiator)) return null;
+async function redirect(url, initiator) {
+ await init()
+ if (disableWikipedia) return null;
let GETArguments = [];
if (url.search.length > 0) {
@@ -54,12 +55,22 @@ function redirectWikipedia(url, initiator) {
else return null;
}
+async function init() {
+ let result = await browser.storage.sync.get([
+ "disableWikipedia",
+ "wikipediaInstance",
+ ]);
+ disableWikipedia = result.disableWikipedia || false;
+ wikipediaInstance = result.wikipediaInstance;
+}
+
export default {
+ targets,
+ redirects,
setDisableWikipedia,
getDisableWikipedia,
setWikipediaInstance,
getWikipediaInstance,
- redirectWikipedia,
- targets,
- redirects,
+ redirect,
+ init,
};
diff --git a/src/assets/javascripts/helpers/youtube.js b/src/assets/javascripts/helpers/youtube.js
index c55dda5b..957160a0 100644
--- a/src/assets/javascripts/helpers/youtube.js
+++ b/src/assets/javascripts/helpers/youtube.js
@@ -1,5 +1,7 @@
"use strict";
+import commonHelper from './common.js'
+
window.browser = window.browser || window.chrome;
const targets = [
@@ -114,20 +116,20 @@ function setInvidiousPlayerStyle(val) {
}
let invidiousSubtitles;
+let getInvidiousSubtitles = () => invidiousSubtitles;
function setInvidiousSubtitles(val) {
invidiousSubtitles = val;
browser.storage.sync.set({ invidiousSubtitles })
console.log("invidiousSubtitles: ", invidiousSubtitles)
}
-let getInvidiousSubtitles = () => invidiousSubtitles;
let invidiousAutoplay;
+const getInvidiousAutoplay = () => invidiousAutoplay;
function setInvidiousAutoplay(val) {
invidiousAutoplay = val;
browser.storage.sync.set({ invidiousAutoplay })
console.log("invidiousAutoplay: ", invidiousAutoplay)
}
-const getInvidiousAutoplay = () => invidiousAutoplay;
let useFreeTube;
function setUseFreeTube(val) {
@@ -147,16 +149,17 @@ function setPersistInvidiousPrefs(val) {
}
const getPersistInvidiousPrefs = () => persistInvidiousPrefs;
-function redirect(url, initiator, type) {
- if (disableInvidious || data.isException(url, initiator))
+async function redirect(url, initiator, type) {
+ await init();
+ if (disableInvidious)
return null;
if (
initiator &&
(
initiator.origin === invidiousInstance ||
- youtubeHelper.redirects.normal.includes(initiator.origin) ||
- youtubeHelper.targets.includes(initiator.host)
+ redirects.normal.includes(initiator.origin) ||
+ targets.includes(initiator.host)
)
)
return null;
@@ -190,7 +193,7 @@ function redirect(url, initiator, type) {
if (invidiousAutoplay) url.searchParams.append("autoplay", 1);
- let randomInstance = commonHelper.getRandomInstance(youtubeHelper.redirects.normal)
+ let randomInstance = commonHelper.getRandomInstance(redirects.normal)
return `${randomInstance}${url.pathname.replace("/shorts", "")}${url.search}`;
}
@@ -216,6 +219,7 @@ function initInvidiousCookie() {
prefs.dark_mode = invidiousDarkMode;
document.cookie = `PREFS=${encodeURIComponent(JSON.stringify(prefs))}`;
}
+
async function init() {
let result = await browser.storage.sync.get(
[
@@ -235,17 +239,17 @@ async function init() {
"invidiousAutoplay",
"useFreeTube",
]);
- disableInvidious = result.disableInvidious;
+ disableInvidious = result.disableInvidious || false;
invidiousInstance = result.invidiousInstance;
- invidiousAlwaysProxy = result.invidiousAlwaysProxy;
- invidiousOnlyEmbeddedVideo = result.invidiousOnlyEmbeddedVideo;
- invidiousVideoQuality = result.invidiousVideoQuality;
- invidiousDarkMode = result.invidiousDarkMode;
- invidiousVolume = result.invidiousVolume;
- invidiousPlayerStyle = result.invidiousPlayerStyle;
- invidiousSubtitles = result.invidiousSubtitles;
- invidiousAutoplay = result.invidiousAutoplay;
- useFreeTube = result.useFreeTube;
+ invidiousAlwaysProxy = result.invidiousAlwaysProxy || true;
+ invidiousOnlyEmbeddedVideo = result.invidiousOnlyEmbeddedVideo || false;
+ invidiousVideoQuality = result.invidiousVideoQuality || 'medium';
+ invidiousDarkMode = result.invidiousDarkMode || true;
+ invidiousVolume = result.invidiousVolume || 50;
+ invidiousPlayerStyle = result.invidiousPlayerStyle || 'invidious';
+ invidiousSubtitles = result.invidiousSubtitles || '';
+ invidiousAutoplay = result.invidiousAutoplay || true;
+ useFreeTube = result.useFreeTube || false;
if (result.persistInvidiousPrefs) initInvidiousCookie();
}
diff --git a/src/assets/javascripts/remove-twitter-sw.js b/src/assets/javascripts/remove-twitter-sw.js
index d431f1a3..39282db1 100644
--- a/src/assets/javascripts/remove-twitter-sw.js
+++ b/src/assets/javascripts/remove-twitter-sw.js
@@ -35,13 +35,7 @@ function isNotException(url) {
}
function shouldRedirect(url) {
- return (
- !redirectBypassFlag &&
- isNotException(url) &&
- !disableNitter &&
- url.host !== nitterInstance &&
- !url.pathname.includes("/home")
- );
+ return (!redirectBypassFlag && isNotException(url) && !disableNitter && url.host !== nitterInstance && !url.pathname.includes("/home"));
}
function redirectTwitter(url) {
@@ -64,16 +58,14 @@ browser.storage.sync.get(
],
(result) => {
redirectBypassFlag = result.redirectBypassFlag;
- browser.storage.sync.set({
- redirectBypassFlag: false,
- });
+ browser.storage.sync.set({ redirectBypassFlag: false });
if (!result.removeTwitterSW) {
disableNitter = result.disableNitter;
nitterInstance = result.nitterInstance || getRandomInstance();
exceptions = result.exceptions
? result.exceptions.map((e) => {
- return new RegExp(e);
- })
+ return new RegExp(e);
+ })
: [];
navigator.serviceWorker.getRegistrations().then((registrations) => {
for (let registration of registrations) {
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 68b6db55..05403a88 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -24,9 +24,19 @@ window.browser = window.browser || window.chrome;
// : [];
// data.invidiousSubtitles = result.invidiousSubtitles || "";
+googleMaps.init()
+searchHelper.init()
+googleTranslateHelper.init()
+instagramHelper.init()
+mediumHelper.init()
+redditHelper.init()
+twitterHelper.init()
+wikipediaHelper.init()
+youtubeHelper.init()
+
browser.webRequest.onBeforeRequest.addListener(
- (details) => {
+ async (details) => {
const url = new URL(details.url);
let initiator;
if (details.originUrl)
@@ -34,25 +44,25 @@ browser.webRequest.onBeforeRequest.addListener(
else if (details.initiator)
initiator = new URL(details.initiator);
- let newUrl;
+ var newUrl;
- if (youtubeHelper.targets.includes(url.host)) newUrl = youtubeHelper.redirect(url, initiator, details.type)
+ if (youtubeHelper.targets.includes(url.host)) newUrl = await youtubeHelper.redirect(url, initiator, details.type)
- else if (twitterHelper.targets.includes(url.host)) newUrl = redirectTwitter(url, initiator);
+ else if (twitterHelper.targets.includes(url.host)) newUrl = await twitterHelper.redirect(url, initiator);
- else if (instagramHelper.targets.includes(url.host)) newUrl = redirectInstagram(url, initiator, details.type);
+ else if (instagramHelper.targets.includes(url.host)) newUrl = await instagramHelper.redirect(url, initiator, details.type);
- else if (url.href.match(mapsHelper.targets)) newUrl = redirectGoogleMaps(url, initiator);
+ else if (url.href.match(mapsHelper.targets)) newUrl = await mapsHelper.redirect(url, initiator);
- else if (redditHelper.targets.includes(url.host)) newUrl = redirectReddit(url, initiator, details.type);
+ else if (redditHelper.targets.includes(url.host)) newUrl = await redditHelper.redirect(url, initiator, details.type);
- else if (mediumHelper.targets.some((rx) => rx.test(url.host))) newUrl = redirectMedium(url, initiator);
+ else if (mediumHelper.targets.some((rx) => rx.test(url.host))) newUrl = await mediumHelper.redirect(url, initiator);
- else if (searchHelper.targets.some((rx) => rx.test(url.href))) newUrl = redirectSearch(url, initiator);
+ else if (searchHelper.targets.some((rx) => rx.test(url.href))) newUrl = await searchHelper.redirect(url, initiator)
- else if (googleTranslateHelper.targets.includes(url.host)) newUrl = redirectGoogleTranslate(url, initiator);
+ else if (googleTranslateHelper.targets.includes(url.host)) newUrl = await googleTranslateHelper.redirect(url, initiator);
- else if (url.host.match(wikipediaHelper.targets)) newUrl = redirectWikipedia(url, initiator);
+ else if (url.host.match(wikipediaHelper.targets)) newUrl = await wikipediaHelper.redirect(url, initiator);
if (newUrl) {
console.info("Redirecting", url.href, "=>", newUrl);
diff --git a/src/pages/options/init.js b/src/pages/options/init.js
index f9de76f1..09b41fd8 100644
--- a/src/pages/options/init.js
+++ b/src/pages/options/init.js
@@ -1,8 +1,3 @@
-browser.storage.sync.get(
- [
- "theme"
- ],
- (result) => {
- if (result.theme) document.body.classList.add(result.theme);
- }
-) \ No newline at end of file
+browser.storage.sync.get("theme", (result) => {
+ if (result.theme) document.body.classList.add(result.theme);
+}) \ No newline at end of file
diff --git a/src/pages/options/instagram.js b/src/pages/options/instagram.js
index 77438742..7be11ff1 100644
--- a/src/pages/options/instagram.js
+++ b/src/pages/options/instagram.js
@@ -2,7 +2,9 @@ import instagramHelper from "../../assets/javascripts/helpers/instagram.js";
let disableBibliogramElement = document.getElementById("disable-bibliogram");
-disableBibliogramElement.checked = !instagramHelper.getDisableBibliogram();
+instagramHelper.init().then(() => {
+ disableBibliogramElement.checked = !instagramHelper.getDisableBibliogram();
+})
disableBibliogramElement.addEventListener("change",
(event) => instagramHelper.setDisableBibliogram(!event.target.checked)
diff --git a/src/pages/options/maps.js b/src/pages/options/maps.js
index 310f9285..a8819a50 100644
--- a/src/pages/options/maps.js
+++ b/src/pages/options/maps.js
@@ -2,7 +2,9 @@ import mapsHelper from "../../assets/javascripts/helpers/google-maps.js";
let disableOsmElement = document.getElementById("disable-osm");
-disableOsmElement.checked = !mapsHelper.getDisableOsm();
+mapsHelper.init().then(() => {
+ disableOsmElement.checked = !mapsHelper.getDisableOsm();
+})
disableOsmElement.addEventListener("change",
(event) => mapsHelper.setDisableOsm(!event.target.checked)
diff --git a/src/pages/options/medium.js b/src/pages/options/medium.js
index bcd2c2e4..5f41282e 100644
--- a/src/pages/options/medium.js
+++ b/src/pages/options/medium.js
@@ -2,7 +2,9 @@ import mediumHelper from "../../assets/javascripts/helpers/medium.js";
let disableScribeElement = document.getElementById("disable-scribe");
-disableScribeElement.checked = !mediumHelper.getDisableScribe();
+mediumHelper.init().then(() => {
+ disableScribeElement.checked = !mediumHelper.getDisableScribe();
+})
disableScribeElement.addEventListener("change",
(event) => mediumHelper.setDisableScribe(!event.target.checked)
diff --git a/src/pages/options/reddit.js b/src/pages/options/reddit.js
index 96b736be..0222c6dd 100644
--- a/src/pages/options/reddit.js
+++ b/src/pages/options/reddit.js
@@ -1,15 +1,17 @@
-import reddit from "../../assets/javascripts/helpers/reddit.js";
+import redditHelper from "../../assets/javascripts/helpers/reddit.js";
let disableRedditElement = document.getElementById("disable-reddit");
let redditFrontendElement = document.getElementById("reddit-frontend");
-disableRedditElement.checked = !reddit.getDisableReddit();
-redditFrontendElement.value = reddit.getRedditFrontend();
+redditHelper.init().then(() => {
+ disableRedditElement.checked = !redditHelper.getDisableReddit();
+ redditFrontendElement.value = redditHelper.getRedditFrontend();
+})
disableRedditElement.addEventListener("change",
- (event) => reddit.setDisableReddit(!event.target.checked)
+ (event) => redditHelper.setDisableReddit(!event.target.checked)
);
redditFrontendElement.addEventListener("change",
- (event) => reddit.setRedditFrontend(event.target.options[redditFrontendElement.selectedIndex].value)
+ (event) => redditHelper.setRedditFrontend(event.target.options[redditFrontendElement.selectedIndex].value)
); \ No newline at end of file
diff --git a/src/pages/options/search.html b/src/pages/options/search.html
index 77bd4d23..d0510eed 100644
--- a/src/pages/options/search.html
+++ b/src/pages/options/search.html
@@ -65,6 +65,7 @@
<script type="module" src="./init.js"></script>
+ <script type="module" src="./init.js"></script>
<script type="module" src="./search.js"></script>
<script src="../../assets/javascripts/localise.js"></script>
</body>
diff --git a/src/pages/options/search.js b/src/pages/options/search.js
index 85e39749..37e095a0 100644
--- a/src/pages/options/search.js
+++ b/src/pages/options/search.js
@@ -3,8 +3,10 @@ import searchHelper from "../../assets/javascripts/helpers/google-search.js";
let disableSearchElement = document.getElementById("disable-search");
let searchFrontendElement = document.getElementById("search-frontend");
-disableSearchElement.checked = !searchHelper.getDisableSearch();
-searchFrontendElement.value = searchHelper.getSearchFrontend();
+searchHelper.init().then(() => {
+ disableSearchElement.checked = !searchHelper.getDisableSearch();
+ searchFrontendElement.value = searchHelper.getSearchFrontend();
+});
searchFrontendElement.addEventListener("change",
(event) => searchHelper.setSearchFrontend(event.target.options[searchFrontendElement.selectedIndex].value)
diff --git a/src/pages/options/shared.js b/src/pages/options/shared.js
index caa3a407..62da2504 100644
--- a/src/pages/options/shared.js
+++ b/src/pages/options/shared.js
@@ -17,7 +17,6 @@ function parseURL(urlString) {
return "";
}
-
function autocomplete(input, list) {
let currentFocus;
input.addEventListener("focus", (e) => {
@@ -109,9 +108,6 @@ function autocomplete(input, list) {
}
-
-
-
export default {
autocompletes,
parseURL,
diff --git a/src/pages/options/translate.js b/src/pages/options/translate.js
index 4e254446..c6182fc2 100644
--- a/src/pages/options/translate.js
+++ b/src/pages/options/translate.js
@@ -2,7 +2,9 @@ import googleTranslateHelper from "../../assets/javascripts/helpers/google-trans
let disableSimplyTranslateElement = document.getElementById("disable-simplyTranslate");
-disableSimplyTranslateElement.checked = !googleTranslateHelper.getDisableSimplyTranslate();
+googleTranslateHelper.init().then(() => {
+ disableSimplyTranslateElement.checked = !googleTranslateHelper.getDisableSimplyTranslate();
+});
disableSimplyTranslateElement.addEventListener("change",
(event) => googleTranslateHelper.setDisableSimplyTranslate(!event.target.checked)
diff --git a/src/pages/options/twitter.js b/src/pages/options/twitter.js
index 60be6cb0..bf4f6b98 100644
--- a/src/pages/options/twitter.js
+++ b/src/pages/options/twitter.js
@@ -3,8 +3,10 @@ import twitterHelper from "../../assets/javascripts/helpers/twitter.js";
let removeTwitterSWElement = document.getElementById("remove-twitter-sw");
let disableNitterElement = document.getElementById("disable-nitter");
-disableNitterElement.checked = !twitterHelper.getDisableNitter();
-removeTwitterSWElement.checked = !remove.getRemoveTwitterSW; // Problem
+twitterHelper.init().then(() => {
+ disableNitterElement.checked = !twitterHelper.getDisableNitter();
+ removeTwitterSWElement.checked = !remove.getRemoveTwitterSW; // Problem
+});
disableNitterElement.addEventListener("change",
(event) => twitterHelper.setDisableNitter(!event.target.checked)
diff --git a/src/pages/options/wikipedia.js b/src/pages/options/wikipedia.js
index b2e7d23c..95ef6406 100644
--- a/src/pages/options/wikipedia.js
+++ b/src/pages/options/wikipedia.js
@@ -2,7 +2,9 @@ import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
let disableWikipediaElement = document.getElementById("disable-wikipedia");
-disableWikipediaElement.checked = !wikipediaHelper.getDisableWikipedia();
+wikipediaHelper.init().then(() => {
+ disableWikipediaElement.checked = !wikipediaHelper.getDisableWikipedia();
+})
disableWikipediaElement.addEventListener("change",
(event) => wikipediaHelper.setDisableWikipedia(!event.target.checked)
diff --git a/src/pages/options/youtube.js b/src/pages/options/youtube.js
index 95e7d2c9..a05f4c14 100644
--- a/src/pages/options/youtube.js
+++ b/src/pages/options/youtube.js
@@ -19,13 +19,13 @@ youtubeHelper.init().then(() => {
invidiousDarkModeElement.checked = youtubeHelper.getInvidiousDarkMode();
persistInvidiousPrefsElement.checked = youtubeHelper.getPersistInvidiousPrefs();
invidiousVolumeElement.value = youtubeHelper.getInvidiousVolume();
- invidiousVolumeValueElement.textContent = youtubeHelper.getInvidiousVolume() ? `${youtubeHelper.getInvidiousVolume()}%` : " - ";
- invidiousPlayerStyleElement.value = youtubeHelper.getInvidiousPlayerStyle() || "";
- invidiousSubtitlesElement.value = youtubeHelper.getInvidiousSubtitles() || "";
+ invidiousVolumeValueElement.textContent = `${youtubeHelper.getInvidiousVolume()}%`;
+ invidiousPlayerStyleElement.value = youtubeHelper.getInvidiousPlayerStyle();
+ invidiousSubtitlesElement.value = youtubeHelper.getInvidiousSubtitles();
useFreeTubeElement.checked = youtubeHelper.getUseFreeTube();
invidiousOnlyEmbeddedVideoElement.checked = youtubeHelper.getInvidiousOnlyEmbeddedVideo();
invidiousAlwaysProxyElement.checked = youtubeHelper.getInvidiousAlwaysProxy();
- invidiousVideoQualityElement.value = youtubeHelper.getInvidiousVideoQuality() || "";
+ invidiousVideoQualityElement.value = youtubeHelper.getInvidiousVideoQuality();
invidiousAutoplayElement.checked = youtubeHelper.getInvidiousAutoplay();
});
@@ -43,11 +43,10 @@ persistInvidiousPrefsElement.addEventListener("change",
);
invidiousVolumeElement.addEventListener("input",
- commonHelper.debounce(() => {
+ () => {
youtubeHelper.setInvidiousVolume(invidiousVolumeElement.value);
- console.info("youtubeHelper.invidiousVolume:", youtubeHelper.getInvidiousVolume());
invidiousVolumeValueElement.textContent = `${invidiousVolumeElement.value}%`;
- }, 1)
+ }
);
invidiousPlayerStyleElement.addEventListener("change",
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index 5f570774..30587d3e 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -2,6 +2,15 @@
import commonHelper from "../../assets/javascripts/helpers/common.js";
import data from "../../assets/javascripts/data.js";
+import twitterHelper from "../../assets/javascripts/helpers/twitter.js";
+import youtubeHelper from "../../assets/javascripts/helpers/youtube.js";
+import instagramHelper from "../../assets/javascripts/helpers/instagram.js";
+import mapsHelper from "../../assets/javascripts/helpers/google-maps.js";
+import redditHelper from "../../assets/javascripts/helpers/reddit.js";
+import searchHelper from "../../assets/javascripts/helpers/google-search.js";
+import translateHelper from "../../assets/javascripts/helpers/google-translate.js";
+import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
+import mediumHelper from "../../assets/javascripts/helpers/medium.js";
let disableNitterElement = document.querySelector("#disable-nitter");
let disableInvidiousElement = document.querySelector("#disable-invidious");
@@ -29,51 +38,41 @@ disableWikipediaElement.checked = !data.disableWikipedia;
disableScribeElement.checked = !data.disableScribe;
-disableNitterElement.addEventListener("change", (event) => {
- data.disableNitter = !event.target.checked;
- browser.storage.sync.set({ disableNitter: data.disableNitter });
-});
+disableNitterElement.addEventListener("change",
+ (event) => twitterHelper.setDisableNitter(!event.target.checked)
+);
-disableInvidiousElement.addEventListener("change", (event) => {
- data.disableInvidious = !event.target.checked;
- browser.storage.sync.set({ disableInvidious: data.disableInvidious });
-});
+disableInvidiousElement.addEventListener("change",
+ (event) => youtubeHelper.setDisableInvidious(!event.target.checked)
+);
-disableBibliogramElement.addEventListener("change", (event) => {
- data.disableBibliogram = !event.target.checked;
- browser.storage.sync.set({ disableBibliogram: data.disableBibliogram });
-});
+disableBibliogramElement.addEventListener("change",
+ (event) => instagramHelper.setDisableBibliogram(!event.target.checked)
+);
-disableOsmElement.addEventListener("change", (event) => {
- data.disableOsm = !event.target.checked;
- browser.storage.sync.set({ disableOsm: data.disableOsm });
-});
+disableOsmElement.addEventListener("change",
+ (event) => mapsHelper.setDisableOsm(!event.target.checked)
+);
-disableRedditElement.addEventListener("change", (event) => {
- data.disableReddit = !event.target.checked;
- browser.storage.sync.set({ disableReddit: data.disableReddit });
-});
+disableRedditElement.addEventListener("change",
+ (event) => redditHelper.setDisableReddit(!event.target.checked)
+);
-disableSearchElement.addEventListener("change", (event) => {
- data.disableSearch = !event.target.checked;
- console.log("DisableSearch", data.disableSearch)
- browser.storage.sync.set({ disableSearch: data.disableSearch });
-});
+disableSearchElement.addEventListener("change",
+ (event) => searchHelper.setDisableSearch(!event.target.checked)
+);
-disableSimplyTranslateElement.addEventListener("change", (event) => {
- data.disableSimplyTranslate = !event.target.checked;
- browser.storage.sync.set({ disableSimplyTranslate: data.disableSimplyTranslate });
-});
+disableSimplyTranslateElement.addEventListener("change",
+ (event) => translateHelper.setDisableSimplyTranslate(!event.target.checked)
+);
-disableWikipediaElement.addEventListener("change", (event) => {
- data.disableWikipedia = !event.target.checked;
- browser.storage.sync.set({ disableWikipedia: data.disableWikipedia });
-});
+disableWikipediaElement.addEventListener("change",
+ (event) => wikipediaHelper.setDisableWikipedia(!event.target.checked)
+);
-disableScribeElement.addEventListener("change", (event) => {
- data.disableScribe = !event.target.checked;
- browser.storage.sync.set({ disableScribe: data.disableScribe });
-});
+disableScribeElement.addEventListener("change",
+ (event) => mediumHelper.setDisableScribe(!event.target.checked)
+);
document.querySelector("#update-instances").addEventListener("click", () => {