diff options
-rw-r--r-- | src/assets/javascripts/helpers/youtube/youtube.js | 26 | ||||
-rw-r--r-- | src/pages/background/background.js | 10 |
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"] |