aboutsummaryrefslogtreecommitdiffstats
path: root/src/assets/javascripts/youtube
diff options
context:
space:
mode:
authorBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-07-26 22:28:50 +0100
committerBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-07-26 22:28:50 +0100
commit2a0596f08fb54e2faef4bcb4548a28f5837fc067 (patch)
treecf5851f95c37da269a561623cee0d3967ca321ec /src/assets/javascripts/youtube
parentI should really inspect diffs before commiting (diff)
downloadlibredirect-2a0596f08fb54e2faef4bcb4548a28f5837fc067.zip
Many things
Made all instances updateable Added hyperpipe Closes https://github.com/libredirect/libredirect/issues/398 Added cloudtube Closes https://github.com/libredirect/libredirect/issues/397 Start using prettier
Diffstat (limited to 'src/assets/javascripts/youtube')
-rw-r--r--src/assets/javascripts/youtube/get_pipedMaterial_preferences.js10
-rw-r--r--src/assets/javascripts/youtube/get_piped_preferences.js44
-rw-r--r--src/assets/javascripts/youtube/set_pipedMaterial_preferences.js13
-rw-r--r--src/assets/javascripts/youtube/set_piped_preferences.js84
-rw-r--r--src/assets/javascripts/youtube/youtube.js1257
5 files changed, 828 insertions, 580 deletions
diff --git a/src/assets/javascripts/youtube/get_pipedMaterial_preferences.js b/src/assets/javascripts/youtube/get_pipedMaterial_preferences.js
index 9d052f62..df79e13c 100644
--- a/src/assets/javascripts/youtube/get_pipedMaterial_preferences.js
+++ b/src/assets/javascripts/youtube/get_pipedMaterial_preferences.js
@@ -1,7 +1,5 @@
-window.browser = window.browser || window.chrome;
+window.browser = window.browser || window.chrome
-browser.storage.local.set(
- {
- 'pipedMaterial_PREFERENCES': localStorage.getItem("PREFERENCES")
- }
-) \ No newline at end of file
+browser.storage.local.set({
+ pipedMaterial_PREFERENCES: localStorage.getItem("PREFERENCES"),
+})
diff --git a/src/assets/javascripts/youtube/get_piped_preferences.js b/src/assets/javascripts/youtube/get_piped_preferences.js
index 417d64df..388ecd19 100644
--- a/src/assets/javascripts/youtube/get_piped_preferences.js
+++ b/src/assets/javascripts/youtube/get_piped_preferences.js
@@ -1,24 +1,22 @@
-window.browser = window.browser || window.chrome;
+window.browser = window.browser || window.chrome
-browser.storage.local.set(
- {
- 'piped_bufferGoal': localStorage.getItem("bufferGoal"),
- 'piped_comments': localStorage.getItem("comments"),
- 'piped_disableLBRY': localStorage.getItem("disableLBRY"),
- 'piped_enabledCodecs': localStorage.getItem("enabledCodecs"),
- 'piped_hl': localStorage.getItem("hl"),
- 'piped_homepage': localStorage.getItem("homepage"),
- 'piped_instance': localStorage.getItem("instance"),
- 'piped_listen': localStorage.getItem("listen"),
- 'piped_minimizeDescription': localStorage.getItem("minimizeDescription"),
- 'piped_playerAutoPlay': localStorage.getItem("playerAutoPlay"),
- 'piped_proxyLBRY': localStorage.getItem("proxyLBRY"),
- 'piped_quality': localStorage.getItem("quality"),
- 'piped_region': localStorage.getItem("region"),
- 'piped_selectedSkip': localStorage.getItem("selectedSkip"),
- 'piped_sponsorblock': localStorage.getItem("sponsorblock"),
- 'piped_theme': localStorage.getItem("theme"),
- 'piped_volume': localStorage.getItem("volume"),
- 'piped_watchHistory': localStorage.getItem("watchHistory"),
- }
-)
+browser.storage.local.set({
+ piped_bufferGoal: localStorage.getItem("bufferGoal"),
+ piped_comments: localStorage.getItem("comments"),
+ piped_disableLBRY: localStorage.getItem("disableLBRY"),
+ piped_enabledCodecs: localStorage.getItem("enabledCodecs"),
+ piped_hl: localStorage.getItem("hl"),
+ piped_homepage: localStorage.getItem("homepage"),
+ piped_instance: localStorage.getItem("instance"),
+ piped_listen: localStorage.getItem("listen"),
+ piped_minimizeDescription: localStorage.getItem("minimizeDescription"),
+ piped_playerAutoPlay: localStorage.getItem("playerAutoPlay"),
+ piped_proxyLBRY: localStorage.getItem("proxyLBRY"),
+ piped_quality: localStorage.getItem("quality"),
+ piped_region: localStorage.getItem("region"),
+ piped_selectedSkip: localStorage.getItem("selectedSkip"),
+ piped_sponsorblock: localStorage.getItem("sponsorblock"),
+ piped_theme: localStorage.getItem("theme"),
+ piped_volume: localStorage.getItem("volume"),
+ piped_watchHistory: localStorage.getItem("watchHistory"),
+})
diff --git a/src/assets/javascripts/youtube/set_pipedMaterial_preferences.js b/src/assets/javascripts/youtube/set_pipedMaterial_preferences.js
index 7415255a..59d6dcc4 100644
--- a/src/assets/javascripts/youtube/set_pipedMaterial_preferences.js
+++ b/src/assets/javascripts/youtube/set_pipedMaterial_preferences.js
@@ -1,10 +1,7 @@
-window.browser = window.browser || window.chrome;
+window.browser = window.browser || window.chrome
-browser.storage.local.get(
- "pipedMaterial_PREFERENCES",
- r => {
- if (r.pipedMaterial_PREFERENCES !== undefined) localStorage.setItem("PREFERENCES", r.pipedMaterial_PREFERENCES)
+browser.storage.local.get("pipedMaterial_PREFERENCES", r => {
+ if (r.pipedMaterial_PREFERENCES !== undefined) localStorage.setItem("PREFERENCES", r.pipedMaterial_PREFERENCES)
- window.close();
- }
-) \ No newline at end of file
+ window.close()
+})
diff --git a/src/assets/javascripts/youtube/set_piped_preferences.js b/src/assets/javascripts/youtube/set_piped_preferences.js
index 346de5c2..374f2d61 100644
--- a/src/assets/javascripts/youtube/set_piped_preferences.js
+++ b/src/assets/javascripts/youtube/set_piped_preferences.js
@@ -1,45 +1,45 @@
-window.browser = window.browser || window.chrome;
+window.browser = window.browser || window.chrome
browser.storage.local.get(
- [
- "piped_bufferGoal",
- "piped_comments",
- "piped_disableLBRY",
- "piped_enabledCodecs",
- "piped_homepage",
- "piped_instance",
- "piped_listen",
- "piped_minimizeDescription",
- "piped_playerAutoPlay",
- "piped_proxyLBRY",
- "piped_quality",
- "piped_region",
- "piped_selectedSkip",
- "piped_sponsorblock",
- "piped_theme",
- "piped_volume",
- "piped_watchHistory",
- ],
- r => {
- if (r.piped_bufferGoal !== undefined) localStorage.setItem("bufferGoal", r.piped_bufferGoal);
- if (r.piped_comments !== undefined) localStorage.setItem("comments", r.piped_comments);
- if (r.piped_disableLBRY !== undefined) localStorage.setItem("disableLBRY", r.piped_disableLBRY);
- if (r.piped_hl !== undefined) localStorage.setItem("hl", r.piped_hl);
- if (r.piped_enabledCodecs !== undefined) localStorage.setItem("enabledCodecs", r.piped_enabledCodecs);
- if (r.piped_homepage !== undefined) localStorage.setItem("homepage", r.piped_homepage);
- if (r.piped_instance !== undefined) localStorage.setItem("instance", r.piped_instance);
- if (r.piped_listen !== undefined) localStorage.setItem("listen", r.piped_listen);
- if (r.piped_minimizeDescription !== undefined) localStorage.setItem("minimizeDescription", r.piped_minimizeDescription);
- if (r.piped_playerAutoPlay !== undefined) localStorage.setItem("playerAutoPlay", r.piped_playerAutoPlay);
- if (r.piped_proxyLBRY !== undefined) localStorage.setItem("proxyLBRY", r.piped_proxyLBRY);
- if (r.piped_quality !== undefined) localStorage.setItem("quality", r.piped_quality);
- if (r.piped_region !== undefined) localStorage.setItem("region", r.piped_region);
- if (r.piped_selectedSkip !== undefined) localStorage.setItem("selectedSkip", r.piped_selectedSkip);
- if (r.piped_sponsorblock !== undefined) localStorage.setItem("sponsorblock", r.piped_sponsorblock);
- if (r.piped_theme !== undefined) localStorage.setItem("theme", r.piped_theme);
- if (r.piped_volume !== undefined) localStorage.setItem("volume", r.piped_volume);
- if (r.piped_watchHistory !== undefined) localStorage.setItem("watchHistory", r.piped_watchHistory);
+ [
+ "piped_bufferGoal",
+ "piped_comments",
+ "piped_disableLBRY",
+ "piped_enabledCodecs",
+ "piped_homepage",
+ "piped_instance",
+ "piped_listen",
+ "piped_minimizeDescription",
+ "piped_playerAutoPlay",
+ "piped_proxyLBRY",
+ "piped_quality",
+ "piped_region",
+ "piped_selectedSkip",
+ "piped_sponsorblock",
+ "piped_theme",
+ "piped_volume",
+ "piped_watchHistory",
+ ],
+ r => {
+ if (r.piped_bufferGoal !== undefined) localStorage.setItem("bufferGoal", r.piped_bufferGoal)
+ if (r.piped_comments !== undefined) localStorage.setItem("comments", r.piped_comments)
+ if (r.piped_disableLBRY !== undefined) localStorage.setItem("disableLBRY", r.piped_disableLBRY)
+ if (r.piped_hl !== undefined) localStorage.setItem("hl", r.piped_hl)
+ if (r.piped_enabledCodecs !== undefined) localStorage.setItem("enabledCodecs", r.piped_enabledCodecs)
+ if (r.piped_homepage !== undefined) localStorage.setItem("homepage", r.piped_homepage)
+ if (r.piped_instance !== undefined) localStorage.setItem("instance", r.piped_instance)
+ if (r.piped_listen !== undefined) localStorage.setItem("listen", r.piped_listen)
+ if (r.piped_minimizeDescription !== undefined) localStorage.setItem("minimizeDescription", r.piped_minimizeDescription)
+ if (r.piped_playerAutoPlay !== undefined) localStorage.setItem("playerAutoPlay", r.piped_playerAutoPlay)
+ if (r.piped_proxyLBRY !== undefined) localStorage.setItem("proxyLBRY", r.piped_proxyLBRY)
+ if (r.piped_quality !== undefined) localStorage.setItem("quality", r.piped_quality)
+ if (r.piped_region !== undefined) localStorage.setItem("region", r.piped_region)
+ if (r.piped_selectedSkip !== undefined) localStorage.setItem("selectedSkip", r.piped_selectedSkip)
+ if (r.piped_sponsorblock !== undefined) localStorage.setItem("sponsorblock", r.piped_sponsorblock)
+ if (r.piped_theme !== undefined) localStorage.setItem("theme", r.piped_theme)
+ if (r.piped_volume !== undefined) localStorage.setItem("volume", r.piped_volume)
+ if (r.piped_watchHistory !== undefined) localStorage.setItem("watchHistory", r.piped_watchHistory)
- window.close();
- }
-) \ No newline at end of file
+ window.close()
+ }
+)
diff --git a/src/assets/javascripts/youtube/youtube.js b/src/assets/javascripts/youtube/youtube.js
index 72763c46..e8a77ff6 100644
--- a/src/assets/javascripts/youtube/youtube.js
+++ b/src/assets/javascripts/youtube/youtube.js
@@ -1,601 +1,856 @@
-"use strict";
+"use strict"
-window.browser = window.browser || window.chrome;
+window.browser = window.browser || window.chrome
-import utils from '../utils.js'
+import utils from "../utils.js"
const targets = [
- /^https?:\/{2}(www\.|music\.|m\.|)youtube\.com(\/.*|$)/,
+ /^https?:\/{2}(www\.|music\.|m\.|)youtube\.com(\/.*|$)/,
- /^https?:\/{2}img\.youtube\.com\/vi\/.*\/..*/, // https://stackoverflow.com/questions/2068344/how-do-i-get-a-youtube-video-thumbnail-from-the-youtube-api
- /^https?:\/{2}(i|s)\.ytimg\.com\/vi\/.*\/..*/,
+ /^https?:\/{2}img\.youtube\.com\/vi\/.*\/..*/, // https://stackoverflow.com/questions/2068344/how-do-i-get-a-youtube-video-thumbnail-from-the-youtube-api
+ /^https?:\/{2}(i|s)\.ytimg\.com\/vi\/.*\/..*/,
- /^https?:\/{2}(www\.|music\.|)youtube\.com\/watch\?v\=..*/,
+ /^https?:\/{2}(www\.|music\.|)youtube\.com\/watch\?v\=..*/,
- /^https?:\/{2}youtu\.be\/..*/,
+ /^https?:\/{2}youtu\.be\/..*/,
- /^https?:\/{2}(www\.|)(youtube|youtube-nocookie)\.com\/embed\/..*/,
-];
+ /^https?:\/{2}(www\.|)(youtube|youtube-nocookie)\.com\/embed\/..*/,
+]
-const frontends = new Array("invidious", "piped", "pipedMaterial")
+const frontends = new Array("invidious", "piped", "pipedMaterial", "cloudtube")
const protocols = new Array("normal", "tor", "i2p", "loki")
-let redirects = {};
+let redirects = {}
for (let i = 0; i < frontends.length; i++) {
- redirects[frontends[i]] = {}
- for (let x = 0; x < protocols.length; x++) {
- redirects[frontends[i]][protocols[x]] = []
- }
+ redirects[frontends[i]] = {}
+ for (let x = 0; x < protocols.length; x++) {
+ redirects[frontends[i]][protocols[x]] = []
+ }
}
function setRedirects(val) {
- browser.storage.local.get('cloudflareBlackList', r => {
- redirects.invidious = val.invidious;
- redirects.piped = val.piped;
- redirects.pipedMaterial = val.pipedMaterial
- invidiousNormalRedirectsChecks = [...redirects.invidious.normal];
- pipedNormalRedirectsChecks = [...redirects.piped.normal];
- pipedMaterialNormalRedirectsChecks = [...redirects.pipedMaterial.normal]
- for (const instance of r.cloudflareBlackList) {
- const a = invidiousNormalRedirectsChecks.indexOf(instance);
- if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1);
+ browser.storage.local.get("cloudflareBlackList", r => {
+ for (let i = 0; i < frontends.length; i++) {
+ redirects.frontends = val.frontends
+ }
+ invidiousNormalRedirectsChecks = [...redirects.invidious.normal]
+ pipedNormalRedirectsChecks = [...redirects.piped.normal]
+ pipedMaterialNormalRedirectsChecks = [...redirects.pipedMaterial.normal]
+ for (const instance of r.cloudflareBlackList) {
+ const a = invidiousNormalRedirectsChecks.indexOf(instance)
+ if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1)
- const b = pipedNormalRedirectsChecks.indexOf(instance);
- if (b > -1) pipedNormalRedirectsChecks.splice(b, 1);
+ const b = pipedNormalRedirectsChecks.indexOf(instance)
+ if (b > -1) pipedNormalRedirectsChecks.splice(b, 1)
- const c = pipedMaterialNormalRedirectsChecks.indexOf(instance);
- if (c > -1) pipedMaterialNormalRedirectsChecks.splice(c, 1);
- }
- browser.storage.local.set({
- youtubeRedirects: redirects,
- invidiousNormalRedirectsChecks,
- invidiousTorRedirectsChecks: redirects.invidious.tor,
- pipedNormalRedirectsChecks,
- pipedTorRedirectsChecks: redirects.piped.tor,
- pipedMaterialNormalRedirectsChecks,
- // pipedMaterialTorRedirectsChecks: redirects.pipedMaterial.tor
- })
- })
+ const c = pipedMaterialNormalRedirectsChecks.indexOf(instance)
+ if (c > -1) pipedMaterialNormalRedirectsChecks.splice(c, 1)
+
+ const d = cloudtubeNormalRedirectsChecks.indexOf(instance)
+ if (c > -1) cloudtubeNormalRedirectsChecks.splice(d, 1)
+ }
+ browser.storage.local.set({
+ youtubeRedirects: redirects,
+ invidiousNormalRedirectsChecks,
+ pipedNormalRedirectsChecks,
+ pipedMaterialNormalRedirectsChecks,
+ cloudtubeNormalRedirectsChecks,
+ })
+ })
}
-let
- disableYoutube,
- onlyEmbeddedVideo,
- youtubeFrontend,
- protocol,
- protocolFallback,
- youtubeEmbedFrontend,
- youtubeRedirects,
- invidiousNormalRedirectsChecks,
- invidiousNormalCustomRedirects,
- invidiousTorRedirectsChecks,
- invidiousTorCustomRedirects,
- invidiousI2pCustomRedirects,
- invidiousLokiCustomRedirects,
- pipedNormalRedirectsChecks,
- pipedNormalCustomRedirects,
- pipedTorRedirectsChecks,
- pipedTorCustomRedirects,
- pipedI2pCustomRedirects,
- pipedLokiCustomRedirects,
- pipedMaterialNormalRedirectsChecks,
- pipedMaterialNormalCustomRedirects,
- pipedMaterialTorRedirectsChecks,
- pipedMaterialTorCustomRedirects,
- pipedMaterialI2pCustomRedirects,
- pipedMaterialLokiCustomRedirects;
+let disableYoutube,
+ onlyEmbeddedVideo,
+ youtubeFrontend,
+ protocol,
+ protocolFallback,
+ youtubeEmbedFrontend,
+ youtubeRedirects,
+ invidiousNormalRedirectsChecks,
+ invidiousNormalCustomRedirects,
+ invidiousTorRedirectsChecks,
+ invidiousTorCustomRedirects,
+ invidiousI2pRedirectsChecks,
+ invidiousI2pCustomRedirects,
+ invidiousLokiRedirectsChecks,
+ invidiousLokiCustomRedirects,
+ pipedNormalRedirectsChecks,
+ pipedNormalCustomRedirects,
+ pipedTorRedirectsChecks,
+ pipedTorCustomRedirects,
+ pipedI2pRedirectsChecks,
+ pipedI2pCustomRedirects,
+ pipedLokiRedirectsChecks,
+ pipedLokiCustomRedirects,
+ pipedMaterialNormalRedirectsChecks,
+ pipedMaterialNormalCustomRedirects,
+ pipedMaterialTorRedirectsChecks,
+ pipedMaterialTorCustomRedirects,
+ pipedMaterialI2pRedirectsChecks,
+ pipedMaterialI2pCustomRedirects,
+ pipedMaterialLokiRedirectsChecks,
+ pipedMaterialLokiCustomRedirects,
+ cloudtubeNormalRedirectsChecks,
+ cloudtubeNormalCustomRedirects,
+ cloudtubeTorRedirectsChecks,
+ cloudtubeTorCustomRedirects,
+ cloudtubeI2pRedirectsChecks,
+ cloudtubeI2pCustomRedirects,
+ cloudtubeLokiRedirectsChecks,
+ cloudtubeLokiCustomRedirects
function init() {
- return new Promise(resolve => {
- browser.storage.local.get(
- [
- "disableYoutube",
- "onlyEmbeddedVideo",
- "youtubeFrontend",
- "protocol",
- "protocolFallback",
- "youtubeEmbedFrontend",
- "youtubeRedirects",
- "invidiousNormalRedirectsChecks",
- "invidiousNormalCustomRedirects",
- "invidiousTorRedirectsChecks",
- "invidiousTorCustomRedirects",
- "invidiousI2pCustomRedirects",
- "invidiousLokiCustomRedirects",
- "pipedNormalRedirectsChecks",
- "pipedNormalCustomRedirects",
- "pipedTorRedirectsChecks",
- "pipedTorCustomRedirects",
- "pipedI2pCustomRedirects",
- "pipedLokiCustomRedirects",
- "pipedMaterialNormalRedirectsChecks",
- "pipedMaterialNormalCustomRedirects",
- "pipedMaterialTorRedirectsChecks",
- "pipedMaterialTorCustomRedirects",
- "pipedMaterialI2pCustomRedirects",
- "pipedMaterialLokiCustomRedirects"
- ],
- r => {
- disableYoutube = r.disableYoutube;
- onlyEmbeddedVideo = r.onlyEmbeddedVideo;
- youtubeFrontend = r.youtubeFrontend;
- protocol = r.protocol;
- protocolFallback = r.protocolFallback;
- youtubeEmbedFrontend = r.youtubeEmbedFrontend;
- youtubeRedirects = r.youtubeRedirects;
- invidiousNormalRedirectsChecks = r.invidiousNormalRedirectsChecks;
- invidiousNormalCustomRedirects = r.invidiousNormalCustomRedirects;
- invidiousTorRedirectsChecks = r.invidiousTorRedirectsChecks;
- invidiousTorCustomRedirects = r.invidiousTorCustomRedirects;
- invidiousI2pCustomRedirects = r.invidiousI2pCustomRedirects;
- invidiousLokiCustomRedirects = r.invidiousLokiCustomRedirects;
- pipedNormalRedirectsChecks = r.pipedNormalRedirectsChecks;
- pipedNormalCustomRedirects = r.pipedNormalCustomRedirects;
- pipedTorRedirectsChecks = r.pipedTorRedirectsChecks;
- pipedTorCustomRedirects = r.pipedTorCustomRedirects;
- pipedI2pCustomRedirects = r.pipedI2pCustomRedirects;
- pipedLokiCustomRedirects = r.pipedLokiCustomRedirects;
- pipedMaterialNormalRedirectsChecks = r.pipedMaterialNormalRedirectsChecks;
- pipedMaterialNormalCustomRedirects = r.pipedMaterialNormalCustomRedirects;
- pipedMaterialTorRedirectsChecks = r.pipedMaterialTorRedirectsChecks;
- pipedMaterialTorCustomRedirects = r.pipedMaterialTorCustomRedirects;
- pipedMaterialI2pCustomRedirects = r.pipedMaterialI2pCustomRedirects;
- pipedMaterialLokiCustomRedirects = r.pipedMaterialLokiCustomRedirects;
- resolve();
- }
- )
- })
+ return new Promise(resolve => {
+ browser.storage.local.get(
+ [
+ "disableYoutube",
+ "onlyEmbeddedVideo",
+ "youtubeFrontend",
+ "protocol",
+ "protocolFallback",
+ "youtubeEmbedFrontend",
+ "youtubeRedirects",
+ "invidiousNormalRedirectsChecks",
+ "invidiousNormalCustomRedirects",
+ "invidiousTorRedirectsChecks",
+ "invidiousTorCustomRedirects",
+ "invidiousI2pRedirectsChecks",
+ "invidiousI2pCustomRedirects",
+ "invidiousLokiRedirectsChecks",
+ "invidiousLokiCustomRedirects",
+ "pipedNormalRedirectsChecks",
+ "pipedNormalCustomRedirects",
+ "pipedTorRedirectsChecks",
+ "pipedTorCustomRedirects",
+ "pipedI2pRedirectsChecks",
+ "pipedI2pCustomRedirects",
+ "pipedLokiRedirectsChecks",
+ "pipedLokiCustomRedirects",
+ "pipedMaterialNormalRedirectsChecks",
+ "pipedMaterialNormalCustomRedirects",
+ "pipedMaterialTorRedirectsChecks",
+ "pipedMaterialTorCustomRedirects",
+ "pipedMaterialI2pRedirectsChecks",
+ "pipedMaterialI2pCustomRedirects",
+ "pipedMaterialLokiRedirectsChecks",
+ "pipedMaterialLokiCustomRedirects",
+ "cloudtubeNormalRedirectsChecks",
+ "cloudtubeNormalCustomRedirects",
+ "cloudtubeTorRedirectsChecks",
+ "cloudtubeTorCustomRedirects",
+ "cloudtubeI2pRedirectsChecks",
+ "cloudtubeI2pCustomRedirects",
+ "cloudtubeLokiRedirectsChecks",
+ "cloudtubeLokiCustomRedirects",
+ ],
+ r => {
+ disableYoutube = r.disableYoutube
+ onlyEmbeddedVideo = r.onlyEmbeddedVideo
+ youtubeFrontend = r.youtubeFrontend
+ protocol = r.protocol
+ protocolFallback = r.protocolFallback
+ youtubeEmbedFrontend = r.youtubeEmbedFrontend
+ youtubeRedirects = r.youtubeRedirects
+ invidiousNormalRedirectsChecks = r.invidiousNormalRedirectsChecks
+ invidiousNormalCustomRedirects = r.invidiousNormalCustomRedirects
+ invidiousTorRedirectsChecks = r.invidiousTorRedirectsChecks
+ invidiousTorCustomRedirects = r.invidiousTorCustomRedirects
+ invidiousI2pRedirectsChecks = r.invidiousI2pRedirectsChecks
+ invidiousI2pCustomRedirects = r.invidiousI2pCustomRedirects
+ invidiousLokiRedirectsChecks = r.invidiousLokiRedirectsChecks
+ invidiousLokiCustomRedirects = r.invidiousLokiCustomRedirects
+ pipedNormalRedirectsChecks = r.pipedNormalRedirectsChecks
+ pipedNormalCustomRedirects = r.pipedNormalCustomRedirects
+ pipedTorRedirectsChecks = r.pipedTorRedirectsChecks
+ pipedTorCustomRedirects = r.pipedTorCustomRedirects
+ pipedI2pRedirectsChecks = r.pipedI2pRedirectsChecks
+ pipedI2pCustomRedirects = r.pipedI2pCustomRedirects
+ pipedLokiRedirectsChecks = r.pipedLokiRedirectsChecks
+ pipedLokiCustomRedirects = r.pipedLokiCustomRedirects
+ pipedMaterialNormalRedirectsChecks = r.pipedMaterialNormalRedirectsChecks
+ pipedMaterialNormalCustomRedirects = r.pipedMaterialNormalCustomRedirects
+ pipedMaterialTorRedirectsChecks = r.pipedMaterialTorRedirectsChecks
+ pipedMaterialTorCustomRedirects = r.pipedMaterialTorCustomRedirects
+ pipedMaterialI2pRedirectsChecks = r.pipedMaterialI2pRedirectsChecks
+ pipedMaterialI2pCustomRedirects = r.pipedMaterialI2pCustomRedirects
+ pipedMaterialLokiRedirectsChecks = r.pipedMaterialLokiRedirectsChecks
+ pipedMaterialLokiCustomRedirects = r.pipedMaterialLokiCustomRedirects
+ cloudtubeNormalRedirectsChecks = r.cloudtubeNormalRedirectsChecks
+ cloudtubeNormalCustomRedirects = r.cloudtubeNormalCustomRedirects
+ cloudtubeTorRedirectsChecks = r.cloudtubeTorRedirectsChecks
+ cloudtubeTorCustomRedirects = r.cloudtubeTorCustomRedirects
+ cloudtubeI2pRedirectsChecks = r.cloudtubeI2pRedirectsChecks
+ cloudtubeI2pCustomRedirects = r.cloudtubeI2pCustomRedirects
+ cloudtubeLokiRedirectsChecks = r.cloudtubeLokiRedirectsChecks
+ cloudtubeLokiCustomRedirects = r.cloudtubeLokiCustomRedirects
+ resolve()
+ }
+ )
+ })
}
-init();
+init()
browser.storage.onChanged.addListener(init)
function all() {
- return [
- ...youtubeRedirects.invidious.normal,
- ...youtubeRedirects.invidious.tor,
+ return [
+ ...youtubeRedirects.invidious.normal,
+ ...youtubeRedirects.invidious.tor,
+ ...youtubeRedirects.invidious.i2p,
+ ...youtubeRedirects.invidious.loki,
- ...youtubeRedirects.piped.normal,
- ...youtubeRedirects.piped.tor,
+ ...youtubeRedirects.piped.normal,
+ ...youtubeRedirects.piped.tor,
+ ...youtubeRedirects.piped.i2p,
+ ...youtubeRedirects.piped.loki,
- ...youtubeRedirects.pipedMaterial.normal,
- ...youtubeRedirects.pipedMaterial.tor,
+ ...youtubeRedirects.pipedMaterial.normal,
+ ...youtubeRedirects.pipedMaterial.tor,
+ ...youtubeRedirects.pipedMaterial.i2p,
+ ...youtubeRedirects.pipedMaterial.loki,
- ...invidiousNormalCustomRedirects,
- ...invidiousTorCustomRedirects,
- ...invidiousI2pCustomRedirects,
- ...invidiousLokiCustomRedirects,
+ ...youtubeRedirects.cloudtube.normal,
+ ...youtubeRedirects.cloudtube.tor,
+ ...youtubeRedirects.cloudtube.i2p,
+ ...youtubeRedirects.cloudtube.loki,
- ...pipedNormalCustomRedirects,
- ...pipedTorCustomRedirects,
- ...pipedI2pCustomRedirects,
- ...pipedLokiCustomRedirects,
+ ...invidiousNormalCustomRedirects,
+ ...invidiousTorCustomRedirects,
+ ...invidiousI2pCustomRedirects,
+ ...invidiousLokiCustomRedirects,
- ...pipedMaterialNormalCustomRedirects,
- ...pipedMaterialTorCustomRedirects,
- ...pipedMaterialI2pCustomRedirects,
- ...pipedMaterialLokiCustomRedirects
- ];
-}
+ ...pipedNormalCustomRedirects,
+ ...pipedTorCustomRedirects,
+ ...pipedI2pCustomRedirects,
+ ...pipedLokiCustomRedirects,
-function redirect(url, type, initiator, disableOverride) {
- if (disableYoutube && !disableOverride) return;
- if (!targets.some(rx => rx.test(url.href))) return;
- if (initiator && all().includes(initiator.origin)) return 'BYPASSTAB';
+ ...pipedMaterialNormalCustomRedirects,
+ ...pipedMaterialTorCustomRedirects,
+ ...pipedMaterialI2pCustomRedirects,
+ ...pipedMaterialLokiCustomRedirects,
- const isInvidious = youtubeFrontend == 'invidious';
- const isPiped = youtubeFrontend == 'piped';
- const isPipedMaterial = youtubeFrontend == 'pipedMaterial'
- const isFreetube = youtubeFrontend == 'freetube';
- const isYatte = youtubeFrontend == 'yatte';
+ ...cloudtubeNormalCustomRedirects,
+ ...cloudtubeTorCustomRedirects,
+ ...cloudtubeI2pCustomRedirects,
+ ...cloudtubeLokiCustomRedirects,
+ ]
+}
- //const isFrontendYoutube = youtubeEmbedFrontend == "youtube";
- const isFrontendInvidious = youtubeEmbedFrontend == 'invidious';
- const isFrontendPiped = youtubeEmbedFrontend == 'piped';
- const isFrontendPipedMaterial = youtubeEmbedFrontend == 'pipedMaterial';
+function calculateFrontend(type) {
+ switch (type) {
+ case "main_frame":
+ return youtubeFrontend
+ case "sub_frame":
+ return youtubeEmbedFrontend
+ }
+}
- const main_frame = type === "main_frame";
- const sub_frame = type === "sub_frame";
+function getInstanceList(type) {
+ let instancesList = []
+ switch (calculateFrontend(type)) {
+ case "invidious":
+ switch (protocol) {
+ case "loki":
+ instancesList = [...invidiousLokiRedirectsChecks, ...invidiousLokiCustomRedirects]
+ break
+ case "i2p":
+ instancesList = [...invidiousI2pRedirectsChecks, ...invidiousI2pCustomRedirects]
+ break
+ case "tor":
+ instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
+ }
+ if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+ instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects]
+ }
+ break
+ case "piped":
+ switch (protocol) {
+ case "loki":
+ instancesList = [...pipedLokiRedirectsChecks, ...pipedLokiCustomRedirects]
+ break
+ case "i2p":
+ instancesList = [...pipedI2pRedirectsChecks, ...pipedI2pCustomRedirects]
+ break
+ case "tor":
+ instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
+ }
+ if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+ instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects]
+ }
+ break
+ case "pipedMaterial":
+ switch (protocol) {
+ case "loki":
+ instancesList = [...pipedMaterialLokiRedirectsChecks, ...pipedMaterialLokiCustomRedirects]
+ break
+ case "i2p":
+ instancesList = [...pipedMaterialI2pRedirectsChecks, ...pipedMaterialI2pCustomRedirects]
+ break
+ case "tor":
+ instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects]
+ }
+ if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+ instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects]
+ }
+ case "cloudtube":
+ switch (protocol) {
+ case "loki":
+ instancesList = [...cloudtubeLokiRedirectsChecks, ...cloudtubeLokiCustomRedirects]
+ break
+ case "i2p":
+ instancesList = [...cloudtubeI2pRedirectsChecks, ...cloudtubeI2pCustomRedirects]
+ break
+ case "tor":
+ instancesList = [...cloudtubeTorRedirectsChecks, ...cloudtubeTorCustomRedirects]
+ }
+ if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+ instancesList = [...cloudtubeNormalRedirectsChecks, ...cloudtubeNormalCustomRedirects]
+ }
+ }
+ return instancesList
+}
- if (!sub_frame && !main_frame) return;
- if (url.pathname.match(/iframe_api/) || url.pathname.match(/www-widgetapi/)) return; // Don't redirect YouTube Player API.
- if (onlyEmbeddedVideo == 'onlyEmbedded' && main_frame) return;
- if (onlyEmbeddedVideo == 'onlyNotEmbedded' && !main_frame) return;
+function redirect(url, type, initiator, disableOverride) {
+ if (disableYoutube && !disableOverride) return
+ if (!targets.some(rx => rx.test(url.href))) return
+ if (initiator && all().includes(initiator.origin)) return "BYPASSTAB"
- //if ((isFreetube || isYatte) && sub_frame && isFrontendYoutube) return;
+ if (type != ("main_frame" || "sub_frame")) return
+ if (url.pathname.match(/iframe_api/) || url.pathname.match(/www-widgetapi/)) return // Don't redirect YouTube Player API.
+ if (onlyEmbeddedVideo == "onlyEmbedded" && type == "main_frame") return
+ if (onlyEmbeddedVideo == "onlyNotEmbedded" && type == "sub_frame") return
- if (isYatte && main_frame) return url.href.replace(/^https?:\/{2}/, 'yattee://');
- if (isFreetube && main_frame) return `freetube://https://youtube.com${url.pathname}${url.search}`;
+ if (type == "main_frame") {
+ switch (youtubeFrontend) {
+ case "yatte":
+ return url.href.replace(/^https?:\/{2}/, "yattee://")
+ case "freetube":
+ return `freetube://https://youtube.com${url.pathname}${url.search}`
+ }
+ }
- if (isInvidious || ((isFreetube || isYatte) && sub_frame && isFrontendInvidious)) {
- let instancesList = [];
- if (protocol == 'loki') instancesList = [...invidiousLokiCustomRedirects];
- else if (protocol == 'i2p') instancesList = [...invidiousI2pCustomRedirects];
- else if (protocol == 'tor') instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
- if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
- instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
- }
- if (instancesList.length === 0) return;
- const randomInstance = utils.getRandomInstance(instancesList);
- return `${randomInstance}${url.pathname}${url.search}`;
- }
- if (isPiped || ((isFreetube || isYatte) && sub_frame && isFrontendPiped)) {
- let instancesList = [];
- if (protocol == 'loki') instancesList = [...pipedLokiCustomRedirects];
- else if (protocol == 'i2p') instancesList = [...pipedI2pCustomRedirects];
- else if (protocol == 'tor') instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects];
- if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
- instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects];
- }
- if (instancesList.length === 0) return;
- const randomInstance = utils.getRandomInstance(instancesList);
- return `${randomInstance}${url.pathname}${url.search}`;
- }
- if (isPipedMaterial || ((isFreetube || isYatte) && sub_frame && isFrontendPipedMaterial)) {
- let instancesList = [];
- if (protocol == 'loki') instancesList = [...pipedMaterialLokiCustomRedirects];
- else if (protocol == 'i2p') instancesList = [...pipedMaterialI2pCustomRedirects];
- else if (protocol == 'tor') instancesList = [...pipedMaterialTorCustomRedirects]; //...pipedMaterialTorRedirectsChecks,
- if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
- instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
- }
- const randomInstance = utils.getRandomInstance(instancesList);
- return `${randomInstance}${url.pathname}${url.search}`;
- }
- return 'CANCEL';
+ const instanceList = getInstanceList(type)
+ try {
+ if (instanceList.length >= 1) {
+ const randomInstance = utils.getRandomInstance(instanceList)
+ return `${randomInstance}${url.pathname}${url.search}`
+ }
+ } catch {
+ return
+ }
}
function reverse(url) {
- return new Promise(async resolve => {
- await init();
- const protocolHost = utils.protocolHost(url);
- if (!all().includes(protocolHost)) { resolve(); return; }
- resolve(`https://youtube.com${url.pathname}${url.search}`);
- })
+ return new Promise(async resolve => {
+ await init()
+ const protocolHost = utils.protocolHost(url)
+ if (!all().includes(protocolHost)) {
+ resolve()
+ return
+ }
+ resolve(`https://youtube.com${url.pathname}${url.search}`)
+ })
}
function switchInstance(url, disableOverride) {
- return new Promise(async resolve => {
- await init();
- if (disableYoutube && !disableOverride) { resolve(); return; }
- const protocolHost = utils.protocolHost(url);
- if (!all().includes(protocolHost)) { resolve(); return; }
+ return new Promise(async resolve => {
+ await init()
+ if (disableYoutube && !disableOverride) {
+ resolve()
+ return
+ }
+ const protocolHost = utils.protocolHost(url)
+ if (!all().includes(protocolHost)) {
+ resolve()
+ return
+ }
- let instancesList = [];
- if (protocol == 'loki') {
- if (youtubeFrontend == 'invidious') instancesList = [...invidiousLokiCustomRedirects]; //...invidiousLokiRedirectsChecks,
- else if (youtubeFrontend == 'piped') instancesList = [...pipedLokiCustomRedirects]; //...pipedLokiRedirectsChecks,
- else if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialLokiCustomRedirects]; //...pipedMaterialLokiRedirectsChecks,
- }
- else if (protocol == 'i2p') {
- if (youtubeFrontend == 'invidious') instancesList = [...invidiousI2pCustomRedirects]; //...invidiousI2pRedirectsChecks,
- else if (youtubeFrontend == 'piped') instancesList = [...pipedI2pCustomRedirects]; //...pipedI2pRedirectsChecks,
- else if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialI2pCustomRedirects]; //...pipedMaterialI2pRedirectsChecks,
- }
- else if (protocol == 'tor') {
- if (youtubeFrontend == 'invidious') instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
- else if (youtubeFrontend == 'piped') instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects];
- else if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialTorCustomRedirects]; //...pipedMaterialTorRedirectsChecks,
- }
- if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
- if (youtubeFrontend == 'invidious') instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
- else if (youtubeFrontend == 'piped') instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects];
- else if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
- }
+ let instancesList = []
+ switch (protocol) {
+ case "loki":
+ switch (youtubeFrontend) {
+ case "invidious":
+ instancesList = [...invidiousLokiRedirectsChecks, ...invidiousLokiCustomRedirects]
+ break
+ case "piped":
+ instancesList = [...pipedLokiRedirectsChecks, ...pipedLokiCustomRedirects]
+ break
+ case "pipedMaterial":
+ instancesList = [...pipedMaterialLokiRedirectsChecks, ...pipedMaterialLokiCustomRedirects]
+ break
+ case "cloudtube":
+ instancesList = [...cloudtubeLokiRedirectsChecks, ...cloudtubeLokiCustomRedirects]
+ }
+ break
+ case "i2p":
+ switch (youtubeFrontend) {
+ case "invidious":
+ instancesList = [...invidiousI2pRedirectsChecks, ...invidiousI2pCustomRedirects]
+ break
+ case "piped":
+ instancesList = [...pipedI2pRedirectsChecks, ...pipedI2pCustomRedirects]
+ break
+ case "pipedMaterial":
+ instancesList = [...pipedMaterialI2pRedirectsChecks, ...pipedMaterialI2pCustomRedirects]
+ break
+ case "cloudtube":
+ instancesList = [...cloudtubeI2pRedirectsChecks, ...cloudtubeI2pCustomRedirects]
+ }
+ break
+ case "tor":
+ switch (youtubeFrontend) {
+ case "invidious":
+ instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
+ break
+ case "piped":
+ instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
+ break
+ case "pipedMaterial":
+ instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects]
+ break
+ case "cloudtube":
+ instancesList = [...cloudtubeTorRedirectsChecks, ...cloudtubeTorCustomRedirects]
+ }
+ }
+ if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+ switch (youtubeFrontend) {
+ case "invidious":
+ instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects]
+ break
+ case "piped":
+ instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects]
+ break
+ case "pipedMaterial":
+ instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects]
+ break
+ case "cloudtube":
+ instancesList = [...cloudtubeNormalRedirectsChecks, ...cloudtubeNormalCustomRedirects]
+ }
+ }
- const i = instancesList.indexOf(protocolHost);
- if (i > -1) instancesList.splice(i, 1);
- if (instancesList.length == 0) { resolve(); return; }
+ const i = instancesList.indexOf(protocolHost)
+ if (i > -1) instancesList.splice(i, 1)
+ if (instancesList.length == 0) {
+ resolve()
+ return
+ }
- const randomInstance = utils.getRandomInstance(instancesList);
- resolve(`${randomInstance}${url.pathname}${url.search}`);
- })
+ const randomInstance = utils.getRandomInstance(instancesList)
+ resolve(`${randomInstance}${url.pathname}${url.search}`)
+ })
}
function initDefaults() {
- return new Promise(async resolve => {
- fetch('/instances/data.json').then(response => response.text()).then(async data => {
- let dataJson = JSON.parse(data);
- for (let i = 0; i < frontends.length; i++) {
- redirects[frontends[i]] = dataJson[frontends[i]]
- }
- browser.storage.local.get('cloudflareBlackList', async r => {
+ return new Promise(async resolve => {
+ fetch("/instances/data.json")
+ .then(response => response.text())
+ .then(async data => {
+ let dataJson = JSON.parse(data)
+ for (let i = 0; i < frontends.length; i++) {
+ redirects[frontends[i]] = dataJson[frontends[i]]
+ }
+ browser.storage.local.get("cloudflareBlackList", async r => {
+ invidiousNormalRedirectsChecks = [...redirects.invidious.normal]
+ pipedNormalRedirectsChecks = [...redirects.piped.normal]
+ pipedMaterialNormalRedirectsChecks = [...redirects.pipedMaterial.normal]
+ cloudtubeNormalRedirectsChecks = [...redirects.cloudtube.normal]
+
+ for (const instance of r.cloudflareBlackList) {
+ const a = invidiousNormalRedirectsChecks.indexOf(instance)
+ if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1)
+
+ const b = pipedNormalRedirectsChecks.indexOf(instance)
+ if (b > -1) pipedNormalRedirectsChecks.splice(b, 1)
- invidiousNormalRedirectsChecks = [...redirects.invidious.normal];
- pipedNormalRedirectsChecks = [...redirects.piped.normal];
- pipedMaterialNormalRedirectsChecks = [...redirects.pipedMaterial.normal];
+ const c = pipedMaterialNormalRedirectsChecks.indexOf(instance)
+ if (c > -1) pipedMaterialNormalRedirectsChecks.splice(c, 1)
- for (const instance of r.cloudflareBlackList) {
- const a = invidiousNormalRedirectsChecks.indexOf(instance);
- if (a > -1) invidiousNormalRedirectsChecks.splice(a, 1);
+ const d = cloudtubeNormalRedirectsChecks.indexOf(instance)
+ if (d > -1) cloudtubeNormalRedirectsChecks.indexOf(instance)
+ }
- const b = pipedNormalRedirectsChecks.indexOf(instance);
- if (b > -1) pipedNormalRedirectsChecks.splice(b, 1);
+ browser.storage.local.set(
+ {
+ disableYoutube: false,
+ enableYoutubeCustomSettings: false,
+ onlyEmbeddedVideo: "both",
+ youtubeRedirects: redirects,
+ youtubeFrontend: "invidious",
- const c = pipedMaterialNormalRedirectsChecks.indexOf(instance);
- if (c > -1) pipedMaterialNormalRedirectsChecks.splice(c, 1);
- }
+ invidiousNormalRedirectsChecks: invidiousNormalRedirectsChecks,
+ invidiousNormalCustomRedirects: [],
- browser.storage.local.set({
- disableYoutube: false,
- enableYoutubeCustomSettings: false,
- onlyEmbeddedVideo: 'both',
- youtubeRedirects: redirects,
- youtubeFrontend: 'invidious',
+ invidiousTorRedirectsChecks: [...redirects.invidious.tor],
+ invidiousTorCustomRedirects: [],
- invidiousNormalRedirectsChecks: invidiousNormalRedirectsChecks,
- invidiousNormalCustomRedirects: [],
+ invidiousI2pRedirectsChecks: [...redirects.invidious.i2p],
+ invidiousI2pCustomRedirects: [],
- invidiousTorRedirectsChecks: [...redirects.invidious.tor],
- invidiousTorCustomRedirects: [],
+ invidiousLokiRedirectsChecks: [...redirects.invidious.loki],
+ invidiousLokiCustomRedirects: [],
- invidiousI2pRedirectsChecks: [...redirects.invidious.i2p],
- invidiousI2pCustomRedirects: [],
+ pipedNormalRedirectsChecks: pipedNormalRedirectsChecks,
+ pipedNormalCustomRedirects: [],
- invidiousLokiRedirectsChecks: [...redirects.invidious.loki],
- invidiousLokiCustomRedirects: [],
+ pipedTorRedirectsChecks: [...redirects.piped.tor],
+ pipedTorCustomRedirects: [],
- pipedNormalRedirectsChecks: pipedNormalRedirectsChecks,
- pipedNormalCustomRedirects: [],
+ pipedI2pRedirectsChecks: [...redirects.piped.i2p],
+ pipedI2pCustomRedirects: [],
- pipedTorRedirectsChecks: [...redirects.piped.tor],
- pipedTorCustomRedirects: [],
+ pipedLokiRedirectsChecks: [...redirects.piped.loki],
+ pipedLokiCustomRedirects: [],
- pipedI2pRedirectsChecks: [...redirects.piped.i2p],
- pipedI2pCustomRedirects: [],
+ pipedMaterialNormalRedirectsChecks: pipedMaterialNormalRedirectsChecks,
+ pipedMaterialNormalCustomRedirects: [],
- pipedLokiRedirectsChecks: [...redirects.piped.loki],
- pipedLokiCustomRedirects: [],
+ pipedMaterialTorRedirectsChecks: [...redirects.pipedMaterial.tor],
+ pipedMaterialTorCustomRedirects: [],
- pipedMaterialNormalRedirectsChecks: pipedMaterialNormalRedirectsChecks,
- pipedMaterialNormalCustomRedirects: [],
+ pipedMaterialI2pRedirectsChecks: [...redirects.pipedMaterial.i2p],
+ pipedMaterialI2pCustomRedirects: [],
- pipedMaterialTorRedirectsChecks: [...redirects.pipedMaterial.tor],
- pipedMaterialTorCustomRedirects: [],
+ pipedMaterialLokiRedirectsChecks: [...redirects.pipedMaterial.loki],
+ pipedMaterialLokiCustomRedirects: [],
- pipedMaterialI2pRedirectsChecks: [...redirects.pipedMaterial.i2p],
- pipedMaterialI2pCustomRedirects: [],
+ cloudtubeNormalRedirectsChecks: cloudtubeNormalRedirectsChecks,
+ cloudtubeNormalCustomRedirects: [],
- pipedMaterialLokiRedirectsChecks: [...redirects.pipedMaterial.loki],
- pipedMaterialLokiCustomRedirects: [],
+ cloudtubeTorRedirectsChecks: [...redirects.cloudtube.tor],
+ cloudtubeTorCustomRedirects: [],
- youtubeEmbedFrontend: 'invidious'
- }, () => resolve())
- })
- })
- })
+ cloudtubeI2pRedirectsChecks: [...redirects.cloudtube.i2p],
+ cloudtubeI2pCustomRedirects: [],
+
+ cloudtubeLokiRedirectsChecks: [...redirects.cloudtube.loki],
+ cloudtubeLokiCustomRedirects: [],
+
+ youtubeEmbedFrontend: "invidious",
+ },
+ () => resolve()
+ )
+ })
+ })
+ })
}
function copyPasteInvidiousCookies(test, from) {
- return new Promise(async resolve => {
- await init();
- if (disableYoutube || youtubeFrontend != 'invidious') { resolve(); return; }
- const protocolHost = utils.protocolHost(from);
- if (![
- ...invidiousNormalRedirectsChecks,
- ...invidiousTorRedirectsChecks,
- ...invidiousNormalCustomRedirects,
- ...invidiousTorCustomRedirects,
- ...invidiousI2pCustomRedirects,
- ...invidiousLokiCustomRedirects
- ].includes(protocolHost)) { resolve(); return; }
- if (!test) {
- let checkedInstances = [];
+ return new Promise(async resolve => {
+ await init()
+ if (disableYoutube || youtubeFrontend != "invidious") {
+ resolve()
+ return
+ }
+ const protocolHost = utils.protocolHost(from)
+ if (
+ ![
+ ...invidiousNormalRedirectsChecks,
+ ...invidiousTorRedirectsChecks,
+ ...invidiousNormalCustomRedirects,
+ ...invidiousTorCustomRedirects,
+ ...invidiousI2pCustomRedirects,
+ ...invidiousLokiCustomRedirects,
+ ].includes(protocolHost)
+ ) {
+ resolve()
+ return
+ }
+ if (!test) {
+ let checkedInstances = []
- if (protocol == 'loki') checkedInstances = [...invidiousLokiCustomRedirects];
- else if (protocol == 'i2p') checkedInstances = [...invidiousI2pCustomRedirects];
- else if (protocol == 'tor') checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
- if ((checkedInstances.length === 0 && protocolFallback) || protocol == 'normal') {
- checkedInstances = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
- }
- const i = checkedInstances.indexOf(protocolHost);
- if (i !== -1) checkedInstances.splice(i, 1);
- await utils.copyCookie('invidious', from, checkedInstances, 'PREFS');
- }
- resolve(true);
- })
+ if (protocol == "loki") checkedInstances = [...invidiousLokiCustomRedirects]
+ else if (protocol == "i2p") checkedInstances = [...invidiousI2pCustomRedirects]
+ else if (protocol == "tor") checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
+ if ((checkedInstances.length === 0 && protocolFallback) || protocol == "normal") {
+ checkedInstances = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects]
+ }
+ const i = checkedInstances.indexOf(protocolHost)
+ if (i !== -1) checkedInstances.splice(i, 1)
+ await utils.copyCookie("invidious", from, checkedInstances, "PREFS")
+ }
+ resolve(true)
+ })
}
function pasteInvidiousCookies() {
- return new Promise(async resolve => {
- await init();
- if (disableYoutube || youtubeFrontend != 'invidious') { resolve(); return; }
- let checkedInstances = [];
- if (protocol == 'loki') checkedInstances = [...invidiousLokiCustomRedirects];
- else if (protocol == 'i2p') checkedInstances = [...invidiousI2pCustomRedirects];
- else if (protocol == 'tor') checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
- if ((checkedInstances.length === 0 && protocolFallback) || protocol == 'normal') {
- checkedInstances = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects]
- }
- utils.getCookiesFromStorage('invidious', checkedInstances, 'PREFS');
- resolve();
- })
+ return new Promise(async resolve => {
+ await init()
+ if (disableYoutube || youtubeFrontend != "invidious") {
+ resolve()
+ return
+ }
+ let checkedInstances = []
+ if (protocol == "loki") checkedInstances = [...invidiousLokiCustomRedirects]
+ else if (protocol == "i2p") checkedInstances = [...invidiousI2pCustomRedirects]
+ else if (protocol == "tor") checkedInstances = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
+ if ((checkedInstances.length === 0 && protocolFallback) || protocol == "normal") {
+ checkedInstances = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects]
+ }
+ utils.getCookiesFromStorage("invidious", checkedInstances, "PREFS")
+ resolve()
+ })
}
function copyPastePipedLocalStorage(test, url, tabId) {
- return new Promise(async resolve => {
- await init();
- if (disableYoutube || youtubeFrontend != 'piped') { resolve(); return; }
- const protocolHost = utils.protocolHost(url);
- if (![
- ...pipedNormalCustomRedirects,
- ...pipedNormalRedirectsChecks,
- ...pipedTorRedirectsChecks,
- ...pipedTorCustomRedirects,
- ...pipedI2pCustomRedirects,
- ...pipedLokiCustomRedirects
- ].includes(protocolHost)) { resolve(); return; }
+ return new Promise(async resolve => {
+ await init()
+ if (disableYoutube || youtubeFrontend != "piped") {
+ resolve()
+ return
+ }
+ const protocolHost = utils.protocolHost(url)
+ if (
+ ![...pipedNormalCustomRedirects, ...pipedNormalRedirectsChecks, ...pipedTorRedirectsChecks, ...pipedTorCustomRedirects, ...pipedI2pCustomRedirects, ...pipedLokiCustomRedirects].includes(
+ protocolHost
+ )
+ ) {
+ resolve()
+ return
+ }
- if (!test) {
- browser.tabs.executeScript(tabId, { file: "/assets/javascripts/youtube/get_piped_preferences.js", runAt: "document_start" });
+ if (!test) {
+ browser.tabs.executeScript(tabId, {
+ file: "/assets/javascripts/youtube/get_piped_preferences.js",
+ runAt: "document_start",
+ })
- let checkedInstances = [];
- if (protocol == 'loki') checkedInstances = [...pipedLokiCustomRedirects];
- else if (protocol == 'i2p') checkedInstances = [...pipedI2pCustomRedirects];
- else if (protocol == 'tor') checkedInstances = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
- if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
- checkedInstances = [...pipedNormalCustomRedirects, ...pipedNormalRedirectsChecks]
- }
- const i = checkedInstances.indexOf(protocolHost);
- if (i !== -1) checkedInstances.splice(i, 1);
- for (const to of checkedInstances) {
- browser.tabs.create({ url: to },
- tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/youtube/set_piped_preferences.js", runAt: "document_start" }))
- }
- }
- resolve(true);
- })
+ let checkedInstances = []
+ if (protocol == "loki") checkedInstances = [...pipedLokiCustomRedirects]
+ else if (protocol == "i2p") checkedInstances = [...pipedI2pCustomRedirects]
+ else if (protocol == "tor") checkedInstances = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
+ if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+ checkedInstances = [...pipedNormalCustomRedirects, ...pipedNormalRedirectsChecks]
+ }
+ const i = checkedInstances.indexOf(protocolHost)
+ if (i !== -1) checkedInstances.splice(i, 1)
+ for (const to of checkedInstances) {
+ browser.tabs.create({ url: to }, tab =>
+ browser.tabs.executeScript(tab.id, {
+ file: "/assets/javascripts/youtube/set_piped_preferences.js",
+ runAt: "document_start",
+ })
+ )
+ }
+ }
+ resolve(true)
+ })
}
function pastePipedLocalStorage() {
- return new Promise(async resolve => {
- await init();
- if (disableYoutube || youtubeFrontend != 'piped') { resolve(); return; }
- let checkedInstances = [];
- if (protocol == 'loki') checkedInstances = [...pipedLokiCustomRedirects];
- else if (protocol == 'i2p') checkedInstances = [...pipedI2pCustomRedirects];
- else if (protocol == 'tor') checkedInstances = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
- if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
- checkedInstances = [...pipedNormalCustomRedirects, ...pipedNormalRedirectsChecks]
- }
- for (const to of checkedInstances) {
- browser.tabs.create({ url: to },
- tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/youtube/set_piped_preferences.js", runAt: "document_start" }))
- }
- resolve();
- })
+ return new Promise(async resolve => {
+ await init()
+ if (disableYoutube || youtubeFrontend != "piped") {
+ resolve()
+ return
+ }
+ let checkedInstances = []
+ if (protocol == "loki") checkedInstances = [...pipedLokiCustomRedirects]
+ else if (protocol == "i2p") checkedInstances = [...pipedI2pCustomRedirects]
+ else if (protocol == "tor") checkedInstances = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
+ if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+ checkedInstances = [...pipedNormalCustomRedirects, ...pipedNormalRedirectsChecks]
+ }
+ for (const to of checkedInstances) {
+ browser.tabs.create({ url: to }, tab =>
+ browser.tabs.executeScript(tab.id, {
+ file: "/assets/javascripts/youtube/set_piped_preferences.js",
+ runAt: "document_start",
+ })
+ )
+ }
+ resolve()
+ })
}
-function copyPastePipedMaterialLocalStorage(test, url, tabId,) {
- return new Promise(async resolve => {
- await init();
- if (disableYoutube || youtubeFrontend != 'pipedMaterial') { resolve(); return; }
- const protocolHost = utils.protocolHost(url);
- if (![
- ...pipedMaterialNormalRedirectsChecks,
- ...pipedMaterialNormalCustomRedirects,
- //...pipedMaterialTorRedirectsChecks,
- ...pipedMaterialTorCustomRedirects,
- ...pipedMaterialI2pCustomRedirects,
- ...pipedMaterialLokiCustomRedirects
- ].includes(protocolHost)) { resolve(); return; }
+function copyPastePipedMaterialLocalStorage(test, url, tabId) {
+ return new Promise(async resolve => {
+ await init()
+ if (disableYoutube || youtubeFrontend != "pipedMaterial") {
+ resolve()
+ return
+ }
+ const protocolHost = utils.protocolHost(url)
+ if (
+ ![
+ ...pipedMaterialNormalRedirectsChecks,
+ ...pipedMaterialNormalCustomRedirects,
+ //...pipedMaterialTorRedirectsChecks,
+ ...pipedMaterialTorCustomRedirects,
+ ...pipedMaterialI2pCustomRedirects,
+ ...pipedMaterialLokiCustomRedirects,
+ ].includes(protocolHost)
+ ) {
+ resolve()
+ return
+ }
- if (!test) {
- browser.tabs.executeScript(tabId, { file: "/assets/javascripts/youtube/get_pipedMaterial_preferences.js", runAt: "document_start" });
+ if (!test) {
+ browser.tabs.executeScript(tabId, {
+ file: "/assets/javascripts/youtube/get_pipedMaterial_preferences.js",
+ runAt: "document_start",
+ })
- let checkedInstances = [];
- if (protocol == 'loki') checkedInstances = [...pipedMaterialLokiCustomRedirects];
- else if (protocol == 'i2p') checkedInstances = [...pipedMaterialI2pCustomRedirects];
- else if (protocol == 'tor') checkedInstances = [...pipedMaterialTorCustomRedirects]; //...pipedMaterialTorRedirectsChecks,
- if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
- checkedInstances = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects]
- }
- const i = checkedInstances.indexOf(protocolHost);
- if (i !== -1) checkedInstances.splice(i, 1);
- for (const to of checkedInstances)
- browser.tabs.create(
- { url: to },
- tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/youtube/set_pipedMaterial_preferences.js", runAt: "document_start" })
- );
- }
- resolve(true);
- })
+ let checkedInstances = []
+ if (protocol == "loki") checkedInstances = [...pipedMaterialLokiCustomRedirects]
+ else if (protocol == "i2p") checkedInstances = [...pipedMaterialI2pCustomRedirects]
+ else if (protocol == "tor") checkedInstances = [...pipedMaterialTorCustomRedirects] //...pipedMaterialTorRedirectsChecks,
+ if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+ checkedInstances = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects]
+ }
+ const i = checkedInstances.indexOf(protocolHost)
+ if (i !== -1) checkedInstances.splice(i, 1)
+ for (const to of checkedInstances)
+ browser.tabs.create({ url: to }, tab =>
+ browser.tabs.executeScript(tab.id, {
+ file: "/assets/javascripts/youtube/set_pipedMaterial_preferences.js",
+ runAt: "document_start",
+ })
+ )
+ }
+ resolve(true)
+ })
}
function pastePipedMaterialLocalStorage() {
- return new Promise(async resolve => {
- await init();
- if (disableYoutube || youtubeFrontend != 'pipedMaterial') { resolve(); return; }
- let checkedInstances = [];
- if (protocol == 'loki') checkedInstances = [...pipedMaterialLokiCustomRedirects];
- else if (protocol == 'i2p') checkedInstances = [...pipedMaterialI2pCustomRedirects];
- else if (protocol == 'tor') checkedInstances = [...pipedMaterialTorCustomRedirects]; //...pipedMaterialTorRedirectsChecks,
- if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
- checkedInstances = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects]
- }
- for (const to of checkedInstances) {
- browser.tabs.create({ url: to },
- tab => browser.tabs.executeScript(tab.id, { file: "/assets/javascripts/youtube/set_pipedMaterial_preferences.js", runAt: "document_start" }))
- }
- resolve();
- })
+ return new Promise(async resolve => {
+ await init()
+ if (disableYoutube || youtubeFrontend != "pipedMaterial") {
+ resolve()
+ return
+ }
+ let checkedInstances = []
+ if (protocol == "loki") checkedInstances = [...pipedMaterialLokiCustomRedirects]
+ else if (protocol == "i2p") checkedInstances = [...pipedMaterialI2pCustomRedirects]
+ else if (protocol == "tor") checkedInstances = [...pipedMaterialTorCustomRedirects] //...pipedMaterialTorRedirectsChecks,
+ if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+ checkedInstances = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects]
+ }
+ for (const to of checkedInstances) {
+ browser.tabs.create({ url: to }, tab =>
+ browser.tabs.executeScript(tab.id, {
+ file: "/assets/javascripts/youtube/set_pipedMaterial_preferences.js",
+ runAt: "document_start",
+ })
+ )
+ }
+ resolve()
+ })
}
function removeXFrameOptions(e) {
- let isChanged = false;
+ let isChanged = false
- if (e.type == 'main_frame') {
- for (const i in e.responseHeaders) {
- if (e.responseHeaders[i].name == 'content-security-policy') {
- let instancesList = [];
- if (protocol == 'loki') {
- if (youtubeFrontend == 'invidious') instancesList = [...invidiousLokiCustomRedirects]; //...invidiousLokiRedirectsChecks,
- if (youtubeFrontend == 'piped') instancesList = [...pipedLokiCustomRedirects]; //...pipedLokiRedirectsChecks,
- if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialLokiCustomRedirects]; //...pipedMaterialLokiRedirectsChecks,
- }
- else if (protocol == 'i2p') {
- if (youtubeFrontend == 'invidious') instancesList = [...invidiousI2pCustomRedirects]; //...invidiousI2pRedirectsChecks,
- if (youtubeFrontend == 'piped') instancesList = [...pipedI2pCustomRedirects]; //...pipedI2pRedirectsChecks,
- if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialI2pCustomRedirects]; //...pipedMaterialI2pRedirectsChecks,
- }
- else if (protocol == 'tor') {
- if (youtubeFrontend == 'invidious') instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects];
- if (youtubeFrontend == 'piped') instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects];
- if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialTorCustomRedirects]; //...pipedMaterialTorRedirectsChecks,
- }
- if ((instancesList.length === 0 && protocolFallback) || protocol == 'normal') {
- if (youtubeFrontend == 'invidious') instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects];
- if (youtubeFrontend == 'piped') instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects];
- if (youtubeFrontend == 'pipedMaterial') instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects];
- }
- let securityPolicyList = e.responseHeaders[i].value.split(';');
- for (const i in securityPolicyList) securityPolicyList[i] = securityPolicyList[i].trim();
+ if (e.type == "main_frame") {
+ for (const i in e.responseHeaders) {
+ if (e.responseHeaders[i].name == "content-security-policy") {
+ let instancesList = []
+ switch (protocol) {
+ case "loki":
+ switch (youtubeFrontend) {
+ case "invidious":
+ instancesList = [...invidiousLokiRedirectsChecks, ...invidiousLokiCustomRedirects]
+ break
+ case "piped":
+ instancesList = [...pipedLokiRedirectsChecks, ...pipedLokiCustomRedirects]
+ break
+ case "pipedMaterial":
+ instancesList = [...pipedMaterialLokiRedirectsChecks, ...pipedMaterialLokiCustomRedirects]
+ break
+ case "cloudtube":
+ instancesList = [...cloudtubeLokiRedirectsChecks, ...cloudtubeLokiCustomRedirects]
+ }
+ break
+ case "i2p":
+ switch (youtubeFrontend) {
+ case "invidious":
+ instancesList = [...invidiousI2pRedirectsChecks, ...invidiousI2pCustomRedirects]
+ break
+ case "piped":
+ instancesList = [...pipedI2pRedirectsChecks, ...pipedI2pCustomRedirects]
+ break
+ case "pipedMaterial":
+ instancesList = [...pipedMaterialI2pRedirectsChecks, ...pipedMaterialI2pCustomRedirects]
+ break
+ case "cloudtube":
+ instancesList = [...cloudtubeI2pRedirectsChecks, ...cloudtubeI2pCustomRedirects]
+ }
+ break
+ case "tor":
+ switch (youtubeFrontend) {
+ case "invidious":
+ instancesList = [...invidiousTorRedirectsChecks, ...invidiousTorCustomRedirects]
+ break
+ case "piped":
+ instancesList = [...pipedTorRedirectsChecks, ...pipedTorCustomRedirects]
+ break
+ case "pipedMaterial":
+ instancesList = [...pipedMaterialTorRedirectsChecks, ...pipedMaterialTorCustomRedirects]
+ break
+ case "cloudtube":
+ instancesList = [...cloudtubeTorRedirectsChecks, ...cloudtubeTorCustomRedirects]
+ }
+ }
+ if ((instancesList.length === 0 && protocolFallback) || protocol == "normal") {
+ switch (youtubeFrontend) {
+ case "invidious":
+ instancesList = [...invidiousNormalRedirectsChecks, ...invidiousNormalCustomRedirects]
+ break
+ case "piped":
+ instancesList = [...pipedNormalRedirectsChecks, ...pipedNormalCustomRedirects]
+ break
+ case "pipedMaterial":
+ instancesList = [...pipedMaterialNormalRedirectsChecks, ...pipedMaterialNormalCustomRedirects]
+ break
+ case "cloudtube":
+ instancesList = [...cloudtubeNormalRedirectsChecks, ...cloudtubeNormalCustomRedirects]
+ }
+ }
+ let securityPolicyList = e.responseHeaders[i].value.split(";")
+ for (const i in securityPolicyList) securityPolicyList[i] = securityPolicyList[i].trim()
- let newSecurity = '';
- for (const item of securityPolicyList) {
- if (item.trim() == '') continue
- let regex = item.match(/([a-z-]{0,}) (.*)/)
- if (regex == null) continue
- let [, key, vals] = regex;
- if (key == 'frame-src') vals = vals + ' ' + instancesList.join(' ');
- newSecurity += key + ' ' + vals + '; ';
- }
+ let newSecurity = ""
+ for (const item of securityPolicyList) {
+ if (item.trim() == "") continue
+ let regex = item.match(/([a-z-]{0,}) (.*)/)
+ if (regex == null) continue
+ let [, key, vals] = regex
+ if (key == "frame-src") vals = vals + " " + instancesList.join(" ")
+ newSecurity += key + " " + vals + "; "
+ }
- e.responseHeaders[i].value = newSecurity;
- isChanged = true;
- }
- }
- }
- else if (e.type == 'sub_frame') {
- const url = new URL(e.url);
- const protocolHost = utils.protocolHost(url);
- if (all().includes(protocolHost)) {
- for (const i in e.responseHeaders) {
- if (e.responseHeaders[i].name == 'x-frame-options') {
- e.responseHeaders.splice(i, 1);
- isChanged = true;
- }
- else if (e.responseHeaders[i].name == 'content-security-policy') {
- e.responseHeaders.splice(i, 1);
- isChanged = true;
- }
- }
- }
- }
- if (isChanged) return { responseHeaders: e.responseHeaders };
+ e.responseHeaders[i].value = newSecurity
+ isChanged = true
+ }
+ }
+ } else if (e.type == "sub_frame") {
+ const url = new URL(e.url)
+ const protocolHost = utils.protocolHost(url)
+ if (all().includes(protocolHost)) {
+ for (const i in e.responseHeaders) {
+ if (e.responseHeaders[i].name == "x-frame-options") {
+ e.responseHeaders.splice(i, 1)
+ isChanged = true
+ } else if (e.responseHeaders[i].name == "content-security-policy") {
+ e.responseHeaders.splice(i, 1)
+ isChanged = true
+ }
+ }
+ }
+ }
+ if (isChanged) return { responseHeaders: e.responseHeaders }
}
export default {
- setRedirects,
- copyPastePipedLocalStorage,
- pastePipedLocalStorage,
- copyPastePipedMaterialLocalStorage,
- pastePipedMaterialLocalStorage,
- copyPasteInvidiousCookies,
- pasteInvidiousCookies,
- redirect,
- reverse,
- switchInstance,
- initDefaults,
- removeXFrameOptions,
-};
+ setRedirects,
+ copyPastePipedLocalStorage,
+ pastePipedLocalStorage,
+ copyPastePipedMaterialLocalStorage,
+ pastePipedMaterialLocalStorage,
+ copyPasteInvidiousCookies,
+ pasteInvidiousCookies,
+ redirect,
+ reverse,
+ switchInstance,
+ initDefaults,
+ removeXFrameOptions,
+}