diff options
author | ManeraKai <manerakai@protonmail.com> | 2022-02-26 15:38:13 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2022-02-26 15:38:32 +0300 |
commit | f4d07c15ac48cca44edb5ede82b595df07ab7a27 (patch) | |
tree | 9e428b315b6a839183b84728c4ced9358ba7d069 /src/pages/background | |
parent | Bump version to 1.4.2 (diff) | |
download | libredirect-f4d07c15ac48cca44edb5ede82b595df07ab7a27.zip |
Added bypass to WatchOnYoutube and made invidious as default #56
Diffstat (limited to 'src/pages/background')
-rw-r--r-- | src/pages/background/background.js | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 50b054ec..1ae7be17 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -36,6 +36,8 @@ wholeInit(); browser.storage.onChanged.addListener(wholeInit); +let bybassTabs = []; + browser.webRequest.onBeforeRequest.addListener( (details) => { const url = new URL(details.url); @@ -49,36 +51,43 @@ browser.webRequest.onBeforeRequest.addListener( if (exceptionsHelper.isException(url, initiator)) newUrl = null; - else if (youtubeMusicHelper.isYoutubeMusic(url, initiator)) newUrl = youtubeMusicHelper.redirect(url, details.type) - else if (youtubeHelper.isYoutube(url, initiator)) newUrl = youtubeHelper.redirect(url, details.type, details) + if (!newUrl) newUrl = youtubeHelper.redirect(url, details, initiator) + if (youtubeMusicHelper.isYoutubeMusic(url, initiator)) newUrl = youtubeMusicHelper.redirect(url, details.type) - else if (twitterHelper.isTwitter(url, initiator)) newUrl = twitterHelper.redirect(url); + if (twitterHelper.isTwitter(url, initiator)) newUrl = twitterHelper.redirect(url); - else if (instagramHelper.isInstagram(url, initiator)) newUrl = instagramHelper.redirect(url, details.type); + if (instagramHelper.isInstagram(url, initiator)) newUrl = instagramHelper.redirect(url, details.type); - else if (mapsHelper.isMaps(url, initiator)) newUrl = mapsHelper.redirect(url); + if (mapsHelper.isMaps(url, initiator)) newUrl = mapsHelper.redirect(url); - else if (redditHelper.isReddit(url, initiator)) newUrl = redditHelper.redirect(url, details.type); + if (redditHelper.isReddit(url, initiator)) newUrl = redditHelper.redirect(url, details.type); - else if (mediumHelper.isMedium(url, initiator)) newUrl = mediumHelper.redirect(url, details.type); + if (mediumHelper.isMedium(url, initiator)) newUrl = mediumHelper.redirect(url, details.type); - else if (imgurHelper.isImgur(url, initiator)) newUrl = imgurHelper.redirect(url, details.type); + if (imgurHelper.isImgur(url, initiator)) newUrl = imgurHelper.redirect(url, details.type); - else if (tiktokHelper.isTiktok(url, initiator)) newUrl = tiktokHelper.redirect(url, details.type); + if (tiktokHelper.isTiktok(url, initiator)) newUrl = tiktokHelper.redirect(url, details.type); - else if (translateHelper.isTranslate(url, initiator)) newUrl = translateHelper.redirect(url); + if (translateHelper.isTranslate(url, initiator)) newUrl = translateHelper.redirect(url); - else if (searchHelper.isSearch(url)) newUrl = searchHelper.redirect(url) + if (searchHelper.isSearch(url)) newUrl = searchHelper.redirect(url) - else if (wikipediaHelper.isWikipedia(url, initiator)) newUrl = wikipediaHelper.redirect(url); + if (wikipediaHelper.isWikipedia(url, initiator)) newUrl = wikipediaHelper.redirect(url); if (youtubeHelper.isPipedorInvidious(newUrl ?? url, details.type)) newUrl = youtubeHelper.addUrlParams(newUrl ?? url); + if (bybassTabs.includes(details.tabId)) newUrl = null; + if (newUrl) { if (newUrl == 'CANCEL') { console.log(`Canceled ${url}`); return { cancel: true }; } + else if (newUrl == 'BYBASSTAB') { + console.log(`Bybassed ${details.tabId}`); + bybassTabs.push(details.tabId); + return null; + } else { console.info("Redirecting", url.href, "=>", newUrl); return { redirectUrl: newUrl }; @@ -90,6 +99,13 @@ browser.webRequest.onBeforeRequest.addListener( ["blocking"] ); +browser.tabs.onRemoved.addListener((tabId) => { + let index = bybassTabs.indexOf(tabId); + if (index > -1) bybassTabs.splice(index, 1); + console.log("Removed bybassTabs", tabId); +}); + + browser.tabs.onUpdated.addListener( (tabId, changeInfo) => { if (changeInfo.url && youtubeHelper.isUrlPipedorInvidious(changeInfo.url)) |