summaryrefslogtreecommitdiff
path: root/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.js')
-rw-r--r--data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.js689
1 files changed, 0 insertions, 689 deletions
diff --git a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.js b/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.js
deleted file mode 100644
index c08d7b4..0000000
--- a/data/extensions/{b7f9d2cd-d772-4302-8c3f-eb941af36f76}/pages/background/background.js
+++ /dev/null
@@ -1,689 +0,0 @@
-"use strict";
-
-import commonHelper from "../../assets/javascripts/helpers/common.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 googleTranslateHelper from "../../assets/javascripts/helpers/google-translate.js";
-import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
-
-const nitterInstances = twitterHelper.redirects;
-const twitterDomains = twitterHelper.targets;
-const youtubeDomains = youtubeHelper.targets;
-const invidiousInstances = youtubeHelper.redirects;
-const instagramDomains = instagramHelper.targets;
-const bibliogramInstances = instagramHelper.redirects;
-const instagramReservedPaths = instagramHelper.reservedPaths;
-const bibliogramBypassPaths = instagramHelper.bypassPaths;
-const osmDefault = mapsHelper.redirects[0];
-const googleMapsRegex = mapsHelper.targets;
-const mapCentreRegex = mapsHelper.mapCentreRegex;
-const dataLatLngRegex = mapsHelper.dataLatLngRegex;
-const placeRegex = mapsHelper.placeRegex;
-const travelModes = mapsHelper.travelModes;
-const layers = mapsHelper.layers;
-const redditInstances = redditHelper.redirects;
-const redditDomains = redditHelper.targets;
-const redditBypassPaths = redditHelper.bypassPaths;
-const redditDefault = redditHelper.redirects[0];
-const googleSearchRegex = searchHelper.targets;
-const searchEngineInstances = searchHelper.redirects;
-const simplyTranslateInstances = googleTranslateHelper.redirects;
-const simplyTranslateDefault = simplyTranslateInstances[0];
-const googleTranslateDomains = googleTranslateHelper.targets;
-const wikipediaInstances = wikipediaHelper.redirects;
-const wikipediaDefault = wikipediaInstances[0];
-const wikipediaRegex = wikipediaHelper.targets;
-
-let disableNitter;
-let disableInvidious;
-let disableBibliogram;
-let disableOsm;
-let disableReddit;
-let disableSearchEngine;
-let disableSimplyTranslate;
-let disableWikipedia;
-let nitterInstance;
-let invidiousInstance;
-let bibliogramInstance;
-let osmInstance;
-let redditInstance;
-let searchEngineInstance;
-let simplyTranslateInstance;
-let wikipediaInstance;
-let alwaysProxy;
-let onlyEmbeddedVideo;
-let videoQuality;
-let invidiousDarkMode;
-let invidiousVolume;
-let invidiousPlayerStyle;
-let invidiousSubtitles;
-let invidiousAutoplay;
-let useFreeTube;
-let nitterRandomPool;
-let invidiousRandomPool;
-let bibliogramRandomPool;
-let exceptions;
-
-window.browser = window.browser || window.chrome;
-
-browser.storage.sync.get(
- [
- "nitterInstance",
- "invidiousInstance",
- "bibliogramInstance",
- "osmInstance",
- "redditInstance",
- "searchEngineInstance",
- "simplyTranslateInstance",
- "wikipediaInstance",
- "disableNitter",
- "disableInvidious",
- "disableBibliogram",
- "disableOsm",
- "disableReddit",
- "disableSearchEngine",
- "disableSimplyTranslate",
- "disableWikipedia",
- "alwaysProxy",
- "onlyEmbeddedVideo",
- "videoQuality",
- "invidiousDarkMode",
- "invidiousVolume",
- "invidiousPlayerStyle",
- "invidiousSubtitles",
- "invidiousAutoplay",
- "useFreeTube",
- "nitterRandomPool",
- "invidiousRandomPool",
- "bibliogramRandomPool",
- "exceptions",
- ],
- (result) => {
- nitterInstance = result.nitterInstance;
- invidiousInstance = result.invidiousInstance;
- bibliogramInstance = result.bibliogramInstance;
- osmInstance = result.osmInstance || osmDefault;
- redditInstance = result.redditInstance || redditDefault;
- searchEngineInstance = result.searchEngineInstance;
- simplyTranslateInstance =
- result.simplyTranslateInstance || simplyTranslateDefault;
- wikipediaInstance = result.wikipediaInstance || wikipediaDefault;
- disableNitter = result.disableNitter;
- disableInvidious = result.disableInvidious;
- disableBibliogram = result.disableBibliogram;
- disableOsm = result.disableOsm;
- disableReddit = result.disableReddit;
- disableSearchEngine = result.disableSearchEngine;
- disableWikipedia = result.disableWikipedia;
- disableSimplyTranslate = result.disableSimplyTranslate;
- alwaysProxy = result.alwaysProxy;
- onlyEmbeddedVideo = result.onlyEmbeddedVideo;
- videoQuality = result.videoQuality;
- invidiousDarkMode = result.invidiousDarkMode;
- exceptions = result.exceptions
- ? result.exceptions.map((e) => {
- return new RegExp(e);
- })
- : [];
- invidiousVolume = result.invidiousVolume;
- invidiousPlayerStyle = result.invidiousPlayerStyle;
- invidiousSubtitles = result.invidiousSubtitles || "";
- invidiousAutoplay = result.invidiousAutoplay;
- useFreeTube = result.useFreeTube;
- nitterRandomPool = result.nitterRandomPool
- ? result.nitterRandomPool.split(",")
- : commonHelper.filterInstances(nitterInstances);
- invidiousRandomPool = result.invidiousRandomPool
- ? result.invidiousRandomPool.split(",")
- : commonHelper.filterInstances(invidiousInstances);
- bibliogramRandomPool = result.bibliogramRandomPool
- ? result.bibliogramRandomPool.split(",")
- : commonHelper.filterInstances(bibliogramInstances);
- }
-);
-
-browser.storage.onChanged.addListener((changes) => {
- if ("nitterInstance" in changes) {
- nitterInstance = changes.nitterInstance.newValue;
- }
- if ("invidiousInstance" in changes) {
- invidiousInstance = changes.invidiousInstance.newValue;
- }
- if ("bibliogramInstance" in changes) {
- bibliogramInstance = changes.bibliogramInstance.newValue;
- }
- if ("osmInstance" in changes) {
- osmInstance = changes.osmInstance.newValue || osmDefault;
- }
- if ("simplyTranslateInstance" in changes) {
- simplyTranslateInstance =
- changes.simplyTranslateInstance.newValue || simplyTranslateDefault;
- }
- if ("wikipediaInstance" in changes) {
- wikipediaInstance = changes.wikipediaInstance.newValue || wikipediaDefault;
- }
- if ("redditInstance" in changes) {
- redditInstance = changes.redditInstance.newValue || redditDefault;
- }
- if ("searchEngineInstance" in changes) {
- searchEngineInstance = changes.searchEngineInstance.newValue;
- }
- if ("disableNitter" in changes) {
- disableNitter = changes.disableNitter.newValue;
- }
- if ("disableInvidious" in changes) {
- disableInvidious = changes.disableInvidious.newValue;
- }
- if ("disableBibliogram" in changes) {
- disableBibliogram = changes.disableBibliogram.newValue;
- }
- if ("disableOsm" in changes) {
- disableOsm = changes.disableOsm.newValue;
- }
- if ("disableReddit" in changes) {
- disableReddit = changes.disableReddit.newValue;
- }
- if ("disableSearchEngine" in changes) {
- disableSearchEngine = changes.disableSearchEngine.newValue;
- }
- if ("disableSimplyTranslate" in changes) {
- disableSimplyTranslate = changes.disableSimplyTranslate.newValue;
- }
- if ("disableWikipedia" in changes) {
- disableWikipedia = changes.disableWikipedia.newValue;
- }
- if ("alwaysProxy" in changes) {
- alwaysProxy = changes.alwaysProxy.newValue;
- }
- if ("onlyEmbeddedVideo" in changes) {
- onlyEmbeddedVideo = changes.onlyEmbeddedVideo.newValue;
- }
- if ("videoQuality" in changes) {
- videoQuality = changes.videoQuality.newValue;
- }
- if ("invidiousDarkMode" in changes) {
- invidiousDarkMode = changes.invidiousDarkMode.newValue;
- }
- if ("invidiousVolume" in changes) {
- invidiousVolume = changes.invidiousVolume.newValue;
- }
- if ("invidiousPlayerStyle" in changes) {
- invidiousPlayerStyle = changes.invidiousPlayerStyle.newValue;
- }
- if ("invidiousSubtitles" in changes) {
- invidiousSubtitles = changes.invidiousSubtitles.newValue;
- }
- if ("invidiousAutoplay" in changes) {
- invidiousAutoplay = changes.invidiousAutoplay.newValue;
- }
- if ("useFreeTube" in changes) {
- useFreeTube = changes.useFreeTube.newValue;
- }
- if ("nitterRandomPool" in changes) {
- nitterRandomPool = changes.nitterRandomPool.newValue.split(",");
- }
- if ("invidiousRandomPool" in changes) {
- invidiousRandomPool = changes.invidiousRandomPool.newValue.split(",");
- }
- if ("bibliogramRandomPool" in changes) {
- bibliogramRandomPool = changes.bibliogramRandomPool.newValue.split(",");
- }
- if ("exceptions" in changes) {
- exceptions = changes.exceptions.newValue.map((e) => {
- return new RegExp(e);
- });
- }
-});
-
-function isException(url, initiator) {
- return (
- exceptions.some((regex) => regex.test(url.href)) ||
- (initiator && exceptions.some((regex) => regex.test(initiator.href)))
- );
-}
-
-function isFirefox() {
- return typeof InstallTrigger !== "undefined";
-}
-
-function redirectYouTube(url, initiator, type) {
- if (disableInvidious || isException(url, initiator)) {
- return null;
- }
- if (
- initiator &&
- (initiator.origin === invidiousInstance ||
- invidiousInstances.includes(initiator.origin) ||
- youtubeDomains.includes(initiator.host))
- ) {
- return null;
- }
- if (url.pathname.match(/iframe_api/) || url.pathname.match(/www-widgetapi/)) {
- // Don't redirect YouTube Player API.
- return null;
- }
- if (url.host.split(".")[0] === "studio") {
- // Avoid redirecting `studio.youtube.com`
- return null;
- }
- if (onlyEmbeddedVideo && type !== "sub_frame") {
- return null;
- }
- if (useFreeTube && type === "main_frame") {
- return `freetube://${url}`;
- }
- // Apply settings
- if (alwaysProxy) {
- url.searchParams.append("local", true);
- }
- if (videoQuality) {
- url.searchParams.append("quality", videoQuality);
- }
- if (invidiousDarkMode) {
- url.searchParams.append("dark_mode", invidiousDarkMode);
- }
- if (invidiousVolume) {
- url.searchParams.append("volume", invidiousVolume);
- }
- if (invidiousPlayerStyle) {
- url.searchParams.append("player_style", invidiousPlayerStyle);
- }
- if (invidiousSubtitles) {
- url.searchParams.append("subtitles", invidiousSubtitles);
- }
- if (invidiousAutoplay) {
- url.searchParams.append("autoplay", 1);
- }
-
- return `${
- invidiousInstance || commonHelper.getRandomInstance(invidiousRandomPool)
- }${url.pathname.replace("/shorts", "")}${url.search}`;
-}
-
-function redirectTwitter(url, initiator) {
- if (disableNitter || isException(url, initiator)) {
- return null;
- }
- if (url.pathname.split("/").includes("home")) {
- return null;
- }
- if (
- isFirefox() &&
- initiator &&
- (initiator.origin === nitterInstance ||
- nitterInstances.includes(initiator.origin) ||
- twitterDomains.includes(initiator.host))
- ) {
- browser.storage.sync.set({
- redirectBypassFlag: true,
- });
- return null;
- }
- if (url.host.split(".")[0] === "pbs" || url.host.split(".")[0] === "video") {
- return `${
- nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)
- }/pic/${encodeURIComponent(url.href)}`;
- } else if (url.pathname.split("/").includes("tweets")) {
- return `${
- nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)
- }${url.pathname.replace("/tweets", "")}${url.search}`;
- } else {
- return `${
- nitterInstance || commonHelper.getRandomInstance(nitterRandomPool)
- }${url.pathname}${url.search}`;
- }
-}
-
-function redirectInstagram(url, initiator, type) {
- if (disableBibliogram || isException(url, initiator)) {
- return null;
- }
- // Do not redirect Bibliogram view on Instagram links
- if (
- initiator &&
- (initiator.origin === bibliogramInstance ||
- bibliogramInstances.includes(initiator.origin) ||
- instagramDomains.includes(initiator.host))
- ) {
- return null;
- }
- // Do not redirect /accounts, /embeds.js, or anything other than main_frame
- if (type !== "main_frame" || url.pathname.match(bibliogramBypassPaths)) {
- return null;
- }
- if (
- url.pathname === "/" ||
- instagramReservedPaths.includes(url.pathname.split("/")[1])
- ) {
- return `${
- bibliogramInstance || commonHelper.getRandomInstance(bibliogramRandomPool)
- }${url.pathname}${url.search}`;
- } else {
- // Likely a user profile, redirect to '/u/...'
- return `${
- bibliogramInstance || commonHelper.getRandomInstance(bibliogramRandomPool)
- }/u${url.pathname}${url.search}`;
- }
-}
-
-function redirectGoogleMaps(url, initiator) {
- if (disableOsm || isException(url, initiator)) {
- return null;
- }
- if (initiator.host === "earth.google.com") {
- return null;
- }
- let redirect;
- let mapCentre = "";
- let params = "";
- // Set map centre if present
- 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(",");
- mapCentre = `#map=${url.searchParams.get("zoom") || "17"}/${lat}/${lon}`;
- // Set default zoom if mapCentre not present
- } else {
- params = "&zoom=17";
- }
- // Set map layer
- params = `${params}&layers=${
- layers[url.searchParams.get("layer")] || layers["none"]
- }`;
- // Handle Google Maps Embed API
- if (url.pathname.split("/").includes("embed")) {
- let query = "";
- if (url.searchParams.has("q")) {
- query = url.searchParams.get("q");
- } else if (url.searchParams.has("query")) {
- query = url.searchParams.has("query");
- } else if (url.searchParams.has("pb")) {
- try {
- query = url.searchParams.get("pb").split(/!2s(.*?)!/)[1];
- } catch (error) {
- console.error(error);
- // Unable to find map marker in URL.
- }
- }
- let marker, bbox;
- mapsHelper.addressToLatLng(query, (coords, boundingbox) => {
- marker = coords;
- bbox = boundingbox;
- });
- redirect = `${osmInstance}/export/embed.html?bbox=${bbox}&layer=mapnik&marker=${marker}`;
- // Handle Google Maps Directions
- } else if (url.pathname.split("/").includes("dir")) {
- const travelMode =
- travelModes[url.searchParams.get("travelmode")] || travelModes["driving"];
- let origin;
- mapsHelper.addressToLatLng(url.searchParams.get("origin"), (coords) => {
- origin = coords;
- });
- let destination;
- mapsHelper.addressToLatLng(
- url.searchParams.get("destination"),
- (coords) => {
- destination = coords;
- }
- );
- redirect = `${osmInstance}/directions?engine=${travelMode}&route=${origin}%3B${destination}${mapCentre}${params}`;
- // Get marker from data attribute
- } else if (
- url.pathname.includes("data=") &&
- url.pathname.match(dataLatLngRegex)
- ) {
- const [mlat, mlon] = url.pathname.match(dataLatLngRegex);
- redirect = `${osmInstance}/?mlat=${mlat.replace(
- "!3d",
- ""
- )}&mlon=${mlon.replace("!4d", "")}${mapCentre}${params}`;
- // Get marker from ll param
- } else if (url.searchParams.has("ll")) {
- const [mlat, mlon] = url.searchParams.get("ll").split(",");
- redirect = `${osmInstance}/?mlat=${mlat}&mlon=${mlon}${mapCentre}${params}`;
- // Get marker from viewpoint param.
- } else if (url.searchParams.has("viewpoint")) {
- const [mlat, mlon] = url.searchParams.get("viewpoint").split(",");
- redirect = `${osmInstance}/?mlat=${mlat}&mlon=${mlon}${mapCentre}${params}`;
- // Use query as search if present.
- } else {
- 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(placeRegex)) {
- query = url.pathname.match(placeRegex)[1];
- }
- redirect = `${osmInstance}/${query ? "search?query=" + query : ""}${
- mapCentre || "#"
- }${params}`;
- }
-
- return redirect;
-}
-
-function redirectReddit(url, initiator, type) {
- if (disableReddit || isException(url, initiator)) {
- return null;
- }
- // Do not redirect when already on the selected view
- if (
- (initiator && initiator.origin === redditInstance) ||
- url.origin === redditInstance
- ) {
- return null;
- }
- // Do not redirect exclusions nor anything other than main_frame
- if (type !== "main_frame" || url.pathname.match(redditBypassPaths)) {
- return null;
- }
- if (url.host === "i.redd.it") {
- if (redditInstance.includes("libredd")) {
- return `${redditInstance}/img${url.pathname}${url.search}`;
- } else if (redditInstance.includes("teddit")) {
- // As of 2021-04-09, redirects for teddit images are nontrivial:
- // - navigating to the image before ever navigating to its page causes
- // 404 error (probably needs fix on teddit project)
- // - some image links on teddit are very different
- // Therefore, don't support redirecting image links for teddit.
- return null;
- } else {
- return null;
- }
- } else if (url.host === "redd.it") {
- if (
- redditInstance.includes("teddit") &&
- !url.pathname.match(/^\/+[^\/]+\/+[^\/]/)
- ) {
- // As of 2021-04-22, redirects for teddit redd.it/foo links don't work.
- // It appears that adding "/comments" as a prefix works, so manually add
- // that prefix if it is missing. Even though redd.it/comments/foo links
- // don't seem to work or exist, guard against affecting those kinds of
- // paths.
- //
- // Note the difference between redd.it/comments/foo (doesn't work) and
- // teddit.net/comments/foo (works).
- return `${redditInstance}/comments${url.pathname}${url.search}`;
- }
- }
- return `${redditInstance}${url.pathname}${url.search}`;
-}
-
-function redirectSearchEngine(url, initiator) {
- if (disableSearchEngine || isException(url, initiator)) {
- return null;
- }
-
- const searchEngine =
- searchEngineInstance ||
- commonHelper.getRandomInstance(searchEngineInstances);
- let search = "";
- url.search
- .slice(1)
- .split("&")
- .forEach(function (input) {
- if (input.startsWith("q=")) search = input;
- });
- return `${searchEngine.link}${searchEngine.q}?${search}`;
-}
-
-function redirectGoogleTranslate(url, initiator) {
- if (disableSimplyTranslate || isException(url, initiator)) {
- return null;
- }
-
- return `${simplyTranslateInstance}/${url.search}`;
-}
-
-function redirectWikipedia(url, initiator) {
- if (disableWikipedia || isException(url, initiator)) {
- return null;
- }
- let GETArguments = [];
- if (url.search.length > 0) {
- let search = url.search.substring(1); //get rid of '?'
- let argstrings = search.split("&");
- for (let i = 0; i < argstrings.length; i++) {
- let args = argstrings[i].split("=");
- GETArguments.push([args[0], args[1]]);
- }
- }
- let link = `${wikipediaInstance}${url.pathname}`;
- let urlSplit = url.host.split(".");
- if (urlSplit[0] != "wikipedia" && urlSplit[0] != "www") {
- if (urlSplit[0] == "m")
- GETArguments.push(["mobileaction", "toggle_view_mobile"]);
- else GETArguments.push(["lang", urlSplit[0]]);
- if (urlSplit[1] == "m")
- GETArguments.push(["mobileaction", "toggle_view_mobile"]);
- //wikiless doesn't have mobile view support yet
- }
- for (let i = 0; i < GETArguments.length; i++) {
- link +=
- (i == 0 ? "?" : "&") + GETArguments[i][0] + "=" + GETArguments[i][1];
- }
- if (
- urlSplit[urlSplit.length - 1] == "org" &&
- urlSplit[urlSplit.length - 2] == "wikipedia"
- )
- //just in case someone wanted to visit wikipedia.org.foo.bar.net
- return link;
- else return null;
-}
-
-browser.webRequest.onBeforeRequest.addListener(
- (details) => {
- const url = new URL(details.url);
- let initiator;
- if (details.originUrl) {
- initiator = new URL(details.originUrl);
- } else if (details.initiator) {
- initiator = new URL(details.initiator);
- }
- let redirect;
- if (youtubeDomains.includes(url.host)) {
- redirect = {
- redirectUrl: redirectYouTube(url, initiator, details.type),
- };
- } else if (twitterDomains.includes(url.host)) {
- redirect = {
- redirectUrl: redirectTwitter(url, initiator),
- };
-//
-// Bibliogram has been discontinued.
-// See <https://cadence.moe/blog/2022-09-01-discontinuing-bibliogram>
-// We'll keep this code in case the project is resurrected, but for
-// now we disable Bibliogram redirects and hide the associated UI.
-//
-// } else if (instagramDomains.includes(url.host)) {
-// redirect = {
-// redirectUrl: redirectInstagram(url, initiator, details.type),
-// };
-//
- } else if (url.href.match(googleMapsRegex)) {
- redirect = {
- redirectUrl: redirectGoogleMaps(url, initiator),
- };
- } else if (redditDomains.includes(url.host)) {
- redirect = {
- redirectUrl: redirectReddit(url, initiator, details.type),
- };
- } else if (url.href.match(googleSearchRegex)) {
- redirect = {
- redirectUrl: redirectSearchEngine(url, initiator),
- };
- } else if (googleTranslateDomains.includes(url.host)) {
- redirect = {
- redirectUrl: redirectGoogleTranslate(url, initiator),
- };
- } else if (url.host.match(wikipediaRegex)) {
- redirect = {
- redirectUrl: redirectWikipedia(url, initiator),
- };
- }
- if (redirect && redirect.redirectUrl) {
- console.info(
- "Redirecting",
- `"${url.href}"`,
- "=>",
- `"${redirect.redirectUrl}"`
- );
- console.info("Details", details);
- }
- return redirect;
- },
- {
- urls: ["<all_urls>"],
- },
- ["blocking"]
-);
-
-browser.runtime.onInstalled.addListener((details) => {
- browser.storage.sync.get(
- ["disableSearchEngine", "disableSimplyTranslate", "disableWikipedia"],
- (result) => {
- if (result.disableSearchEngine === undefined) {
- browser.storage.sync.set({
- disableSearchEngine: true,
- });
- }
- if (result.disableSimplyTranslate === undefined) {
- browser.storage.sync.set({
- disableSimplyTranslate: true,
- });
- }
- if (result.disableWikipedia === undefined) {
- browser.storage.sync.set({
- disableWikipedia: true,
- });
- }
- }
- );
- if (details.reason === "update") {
- browser.storage.sync.get(
- ["whitelist", "exceptions", "invidiousInstance", "disableSearchEngine"],
- (result) => {
- if (result.whitelist) {
- let whitelist = result.whitelist.map((e) =>
- e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")
- );
- browser.storage.sync.set({
- exceptions: result.exceptions.concat(whitelist),
- whitelist: null,
- });
- }
- if (result.invidiousInstance === "https://invidio.us") {
- browser.storage.sync.set({
- invidiousInstance: null,
- });
- }
- }
- );
- }
-});