about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/assets/javascripts/helpers/youtube/youtube.js26
-rw-r--r--src/pages/background/background.js10
2 files changed, 30 insertions, 6 deletions
diff --git a/src/assets/javascripts/helpers/youtube/youtube.js b/src/assets/javascripts/helpers/youtube/youtube.js
index cf6f9074..96f9959b 100644
--- a/src/assets/javascripts/helpers/youtube/youtube.js
+++ b/src/assets/javascripts/helpers/youtube/youtube.js
@@ -433,6 +433,29 @@ async function initInvidiousCookies(from) {
   )
 }
 
+function removeXFrameOptions(e) {
+  const url = new URL(e.url);
+  let protocolHost = commonHelper.protocolHost(url);
+  const list = [
+    ...redirects.invidious.normal,
+    ...invidiousNormalCustomRedirects,
+    ...redirects.invidious.tor,
+    ...invidiousTorCustomRedirects,
+
+    ...redirects.piped.normal,
+    ...redirects.piped.tor,
+    ...pipedNormalCustomRedirects,
+    ...pipedTorCustomRedirects
+  ];
+  if (!list.includes(protocolHost) || e.type != 'sub_frame') return;
+  let isChanged = false;
+  for (const i in e.responseHeaders) if (e.responseHeaders[i].name == 'x-frame-options') {
+    e.responseHeaders.splice(i, 1);
+    isChanged = true;
+  }
+  if (isChanged) return { responseHeaders: e.responseHeaders };
+}
+
 let
   initPipedLocalStorage = piped.initPipedLocalStorage,
   initPipedMaterialLocalStorage = pipedMaterial.initPipedMaterialLocalStorage,
@@ -454,6 +477,7 @@ export default {
   copyPipedLocalStorage,
 
   initDefaults,
-
   init,
+
+  removeXFrameOptions,
 };
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 3c6efd36..8e56f62d 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -86,10 +86,8 @@ browser.webRequest.onBeforeRequest.addListener(
       initiator = new URL(details.originUrl);
     else if (details.initiator)
       initiator = new URL(details.initiator);
-
-    let newUrl;
-
-    if (!newUrl) newUrl = youtubeHelper.redirect(url, details, initiator)
+    
+    let newUrl = youtubeHelper.redirect(url, details, initiator)
     if (youtubeMusicHelper.isYoutubeMusic(url, initiator)) newUrl = youtubeMusicHelper.redirect(url, details.type)
 
     if (!newUrl) newUrl = twitterHelper.redirect(url, initiator);
@@ -149,7 +147,9 @@ browser.tabs.onRemoved.addListener(
 browser.webRequest.onHeadersReceived.addListener(
   async e => {
     await wholeInit();
-    return twitterHelper.removeXFrameOptions(e);
+    let response = twitterHelper.removeXFrameOptions(e)
+    if (!response) youtubeHelper.removeXFrameOptions(e)
+    return response;
   },
   { urls: ["<all_urls>"], },
   ["blocking", "responseHeaders"]