diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-06-06 19:30:07 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-06-06 19:30:07 +0300 |
commit | adbfb9a89008858f308e4793979bb479dd8abf6a (patch) | |
tree | c447410a80b010e75b61d3a953bd5e505b1ea402 /src | |
parent | Adding weblate. Changing small things (diff) | |
download | libredirect-adbfb9a89008858f308e4793979bb479dd8abf6a.zip |
Fix removeXFrameOptions not working in YT #279
Diffstat (limited to 'src')
-rw-r--r-- | src/assets/javascripts/twitter.js | 15 | ||||
-rw-r--r-- | src/assets/javascripts/youtube/youtube.js | 8 | ||||
-rw-r--r-- | src/pages/background/background.js | 8 |
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>"], }, |