about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/assets/javascripts/helpers/twitter.js16
-rw-r--r--src/pages/background/background.js10
2 files changed, 26 insertions, 0 deletions
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,
 
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index 9b32bbdf..0d92e934 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -131,6 +131,16 @@ browser.tabs.onRemoved.addListener(
   }
 );
 
+
+// Set "blocking" and "responseHeaders".
+browser.webRequest.onHeadersReceived.addListener(
+  e => {
+    return twitterHelper.removeXFrameOptions(e);
+  },
+  { urls: ["<all_urls>"], },
+  ["blocking", "responseHeaders"]
+);
+
 function redirectOfflineInstance(url, tabId) {
   let newUrl;