From 9547cc95fd3dbabd236f88149647346835699988 Mon Sep 17 00:00:00 2001 From: ManeraKai Date: Wed, 23 Mar 2022 13:50:51 +0300 Subject: Removed x-frame-options header on iframes from Nitter instances #20 --- src/assets/javascripts/helpers/twitter.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/assets/javascripts/helpers') diff --git a/src/assets/javascripts/helpers/twitter.js b/src/assets/javascripts/helpers/twitter.js index 3ad01b7f..bacbdcfc 100644 --- a/src/assets/javascripts/helpers/twitter.js +++ b/src/assets/javascripts/helpers/twitter.js @@ -184,6 +184,20 @@ function switchInstance(url) { return `${randomInstance}${url.pathname}${url.search}`; } +function removeXFrameOptions(e) { + let url = new URL(e.url); + let protocolHost = `${url.protocol}//${url.host}`; + let twitterList = [ + ...redirects.nitter.normal, + ...redirects.nitter.tor, + ...nitterNormalCustomRedirects, + ...nitterTorCustomRedirects, + ]; + if (!twitterList.includes(protocolHost) && e.type != 'sub_frame') return; + for (const i in e.responseHeaders) if (e.responseHeaders[i].name = 'x-frame-options') e.responseHeaders.splice(i, 1); + return { responseHeaders: e.responseHeaders }; +} + function isNitter(url, type) { let protocolHost = `${url.protocol}//${url.host}`; @@ -299,6 +313,8 @@ export default { getBypassWatchOnTwitter, setBypassWatchOnTwitter, + removeXFrameOptions, + getProtocol, setProtocol, -- cgit 1.4.1