aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-06-06 19:30:07 +0300
committerManeraKai <manerakai@protonmail.com>2022-06-06 19:30:07 +0300
commitadbfb9a89008858f308e4793979bb479dd8abf6a (patch)
treec447410a80b010e75b61d3a953bd5e505b1ea402
parentAdding weblate. Changing small things (diff)
downloadlibredirect-adbfb9a89008858f308e4793979bb479dd8abf6a.zip
Fix removeXFrameOptions not working in YT #279
Diffstat (limited to '')
-rw-r--r--src/assets/javascripts/twitter.js15
-rw-r--r--src/assets/javascripts/youtube/youtube.js8
-rw-r--r--src/pages/background/background.js8
3 files changed, 20 insertions, 11 deletions
diff --git a/src/assets/javascripts/twitter.js b/src/assets/javascripts/twitter.js
index 1ee7f755..59b784bb 100644
--- a/src/assets/javascripts/twitter.js
+++ b/src/assets/javascripts/twitter.js
@@ -133,13 +133,20 @@ function switchInstance(url) {
}
function removeXFrameOptions(e) {
+ if (e.type != 'sub_frame') return;
let url = new URL(e.url);
let protocolHost = utils.protocolHost(url);
- if (!all().includes(protocolHost) || e.type != 'sub_frame') return;
+ if (!all().includes(protocolHost)) 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;
+ 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 };
}
diff --git a/src/assets/javascripts/youtube/youtube.js b/src/assets/javascripts/youtube/youtube.js
index 6f022e21..61e73fdf 100644
--- a/src/assets/javascripts/youtube/youtube.js
+++ b/src/assets/javascripts/youtube/youtube.js
@@ -426,13 +426,17 @@ function removeXFrameOptions(e) {
const url = new URL(e.url);
const protocolHost = utils.protocolHost(url);
if (!all().includes(protocolHost)) return;
-
let isChanged = false;
- for (const i in e.responseHeaders)
+ 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 };
}
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index c5f1718d..88daa6cd 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -33,7 +33,6 @@ function openResetWarning() {
})
}
-
browser.runtime.onInstalled.addListener(
async details => {
// if (details.reason == 'install') {
@@ -140,7 +139,6 @@ browser.webRequest.onBeforeRequest.addListener(
["blocking"]
);
-
let incognitoList = [];
browser.tabs.onCreated.addListener(
tab => {
@@ -164,9 +162,9 @@ browser.tabs.onRemoved.addListener(
);
browser.webRequest.onHeadersReceived.addListener(
- async e => {
- let response = twitterHelper.removeXFrameOptions(e)
- if (!response) youtubeHelper.removeXFrameOptions(e)
+ e => {
+ let response = twitterHelper.removeXFrameOptions(e);
+ if (!response) response = youtubeHelper.removeXFrameOptions(e);
return response;
},
{ urls: ["<all_urls>"], },