diff options
-rw-r--r-- | src/assets/javascripts/imgur.js | 2 | ||||
-rw-r--r-- | src/assets/javascripts/search.js | 3 | ||||
-rw-r--r-- | src/assets/javascripts/twitter.js | 10 | ||||
-rw-r--r-- | src/assets/javascripts/utils.js | 25 | ||||
-rw-r--r-- | src/assets/javascripts/youtube/youtube.js | 4 | ||||
-rw-r--r-- | src/manifest.json | 2 | ||||
-rw-r--r-- | src/pages/background/background.js | 18 | ||||
-rw-r--r-- | src/pages/options/index.html | 12 | ||||
-rw-r--r-- | src/pages/options/widgets/general.js | 8 | ||||
-rw-r--r-- | src/pages/options/widgets/general.pug | 4 | ||||
-rw-r--r-- | src/pages/options/widgets/twitter.js | 4 | ||||
-rw-r--r-- | src/pages/options/widgets/twitter.pug | 7 | ||||
-rw-r--r-- | src/pages/popup/popup.js | 4 |
13 files changed, 59 insertions, 44 deletions
diff --git a/src/assets/javascripts/imgur.js b/src/assets/javascripts/imgur.js index e6097a67..90dda136 100644 --- a/src/assets/javascripts/imgur.js +++ b/src/assets/javascripts/imgur.js @@ -2,7 +2,7 @@ window.browser = window.browser || window.chrome; import utils from './utils.js' -const targets = /^https?:\/{2}([im]\.)?imgur\.com(\/|$)/ +const targets = /^https?:\/{2}([im]\.)?imgur\.(com|io)(\/|$)/ let redirects = { "rimgo": { diff --git a/src/assets/javascripts/search.js b/src/assets/javascripts/search.js index 53d7c183..2b51f868 100644 --- a/src/assets/javascripts/search.js +++ b/src/assets/javascripts/search.js @@ -3,9 +3,6 @@ window.browser = window.browser || window.chrome; import utils from './utils.js' const targets = [ - /^https?:\/{2}(www\.|search\.|)google(\.[a-z]{2,3}){1,2}(\/search(\?.*|$)|\/$)/, - /^https?:\/{2}(www\.|www2\.|)bing\.com/, - /^https?:\/{2}yandex(\.[a-z]{2,3}){1,2}/, /^https?:\/{2}search\.libredirect\.invalid/, ]; diff --git a/src/assets/javascripts/twitter.js b/src/assets/javascripts/twitter.js index 120ad691..28689aa5 100644 --- a/src/assets/javascripts/twitter.js +++ b/src/assets/javascripts/twitter.js @@ -36,6 +36,7 @@ let disableTwitter, twitterProtocol, twitterRedirects, + twitterRedirectType, nitterNormalRedirectsChecks, nitterNormalCustomRedirects, nitterTorRedirectsChecks, @@ -48,6 +49,7 @@ function init() { "disableTwitter", "twitterProtocol", "twitterRedirects", + "twitterRedirectType", "nitterNormalRedirectsChecks", "nitterNormalCustomRedirects", "nitterTorRedirectsChecks", @@ -57,6 +59,7 @@ function init() { disableTwitter = r.disableTwitter; twitterProtocol = r.twitterProtocol; twitterRedirects = r.twitterRedirects; + twitterRedirectType = r.twitterRedirectType; nitterNormalRedirectsChecks = r.nitterNormalRedirectsChecks; nitterNormalCustomRedirects = r.nitterNormalCustomRedirects; nitterTorRedirectsChecks = r.nitterTorRedirectsChecks; @@ -79,11 +82,13 @@ function all() { ]; } -function redirect(url, initiator) { +function redirect(url, type, initiator) { if (disableTwitter) return; if (!targets.some(rx => rx.test(url.href))) return; if (url.pathname.split("/").includes("home")) return; if (initiator && all().includes(initiator.origin)) return 'BYPASSTAB'; + if (twitterRedirectType == 'sub_frame' && type == "main_frame") return; + if (twitterRedirectType == 'main_frame' && type != "main_frame") return; let instancesList; if (twitterProtocol == 'normal') instancesList = [...nitterNormalRedirectsChecks, ...nitterNormalCustomRedirects]; @@ -206,7 +211,7 @@ function pasteNitterCookies() { utils.getCookiesFromStorage('nitter', checkedInstances, 'proxyVideos'); utils.getCookiesFromStorage('nitter', checkedInstances, 'muteVideos'); utils.getCookiesFromStorage('nitter', checkedInstances, 'autoplayGifs'); - + utils.getCookiesFromStorage('nitter', checkedInstances, 'replaceInstagram'); utils.getCookiesFromStorage('nitter', checkedInstances, 'replaceReddit'); utils.getCookiesFromStorage('nitter', checkedInstances, 'replaceTwitter'); @@ -231,6 +236,7 @@ function initDefaults() { disableTwitter: false, twitterRedirects: redirects, twitterProtocol: "normal", + twitterRedirectType: "both", nitterNormalRedirectsChecks: nitterNormalRedirectsChecks, nitterNormalCustomRedirects: [], diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js index 26056d10..c03ca31c 100644 --- a/src/assets/javascripts/utils.js +++ b/src/assets/javascripts/utils.js @@ -307,17 +307,21 @@ function getCookiesFromStorage(frontend, urls, name) { browser.storage.local.get([key, 'firstPartyIsolate'], r => { const cookie = r[key]; if (cookie === undefined) return; - let query; - if (!r.firstPartyIsolate) query = { - url: url, name: cookie.name, value: cookie.value, secure: true, - expirationDate: cookie.expirationDate, - }; - else query = { - url: url, name: cookie.name, value: cookie.value, secure: true, - expirationDate: null, - firstPartyDomain: new URL(url).hostname, + for (const url of urls) { + let query = + r.firstPartyIsolate ? + { + url: url, name: cookie.name, value: cookie.value, secure: true, + expirationDate: null, + firstPartyDomain: new URL(url).hostname, + } + : + { + url: url, name: cookie.name, value: cookie.value, secure: true, + expirationDate: cookie.expirationDate, + }; + browser.cookies.set(query) } - for (const url of urls) browser.cookies.set(query) }) } @@ -367,6 +371,7 @@ function unify(test) { let url; try { url = new URL(currTab.url); } catch { resolve(); return; } + if (currTab.incognito) { resolve(); return; } let result = await youtubeHelper.copyPasteInvidiousCookies(test, url); if (!result) result = await youtubeHelper.copyPastePipedLocalStorage(test, url, currTab.id); diff --git a/src/assets/javascripts/youtube/youtube.js b/src/assets/javascripts/youtube/youtube.js index 39b48e0a..a1916032 100644 --- a/src/assets/javascripts/youtube/youtube.js +++ b/src/assets/javascripts/youtube/youtube.js @@ -169,8 +169,8 @@ function redirect(url, details, initiator) { const sub_frame = details.type === "sub_frame"; if (url.pathname.match(/iframe_api/) || url.pathname.match(/www-widgetapi/)) return; // Don't redirect YouTube Player API. - if (onlyEmbeddedVideo == 'onlyEmbedded' && !sub_frame) return; - if (onlyEmbeddedVideo == 'onlyNotEmbedded' && sub_frame) return; + if (onlyEmbeddedVideo == 'onlyEmbedded' && main_frame) return; + if (onlyEmbeddedVideo == 'onlyNotEmbedded' && !main_frame) return; if ((isFreetube || isYatte) && sub_frame && isFrontendYoutube) return; diff --git a/src/manifest.json b/src/manifest.json index b7584091..68515525 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -1,7 +1,7 @@ { "name": "__MSG_extensionName__", "description": "__MSG_extensionDescription__", - "version": "2.2.0", + "version": "2.2.1", "manifest_version": 2, "browser_specific_settings": { "gecko": { diff --git a/src/pages/background/background.js b/src/pages/background/background.js index d19828ca..5fef360a 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -59,7 +59,7 @@ browser.runtime.onInstalled.addListener( }); }) }; - function initDefault(){ + function initDefault() { } @@ -103,7 +103,7 @@ browser.webRequest.onBeforeRequest.addListener( let newUrl = youtubeMusicHelper.redirect(url, details.type) if (!newUrl) newUrl = youtubeHelper.redirect(url, details, initiator) - if (!newUrl) newUrl = twitterHelper.redirect(url, initiator); + if (!newUrl) newUrl = twitterHelper.redirect(url, details.type, initiator); if (!newUrl) newUrl = instagramHelper.redirect(url, details.type, initiator); if (!newUrl) newUrl = mapsHelper.redirect(url, initiator); if (!newUrl) newUrl = redditHelper.redirect(url, details.type, initiator); @@ -147,20 +147,8 @@ browser.webRequest.onBeforeRequest.addListener( ["blocking"] ); -let incognitoList = []; -browser.tabs.onCreated.addListener( - tab => { - if (tab.incognito) { - incognitoList.push(tab.id); - if (incognitoList.length == 1) browser.tabs.create({ url: browser.runtime.getURL("/pages/background/incognito.html"), active: false }); - } - } -); - browser.tabs.onRemoved.addListener( tabId => { - incognitoList.pop(tabId) - const i = BYPASSTABs.indexOf(tabId); if (i > -1) { BYPASSTABs.splice(i, 1); @@ -172,7 +160,7 @@ browser.tabs.onRemoved.addListener( browser.webRequest.onHeadersReceived.addListener( e => { let response = youtubeHelper.removeXFrameOptions(e); - if (!response) response = twitterHelper.removeXFrameOptions(e); + if (!response) response = twitterHelper.removeXFrameOptions(e); return response; }, { urls: ["<all_urls>"] }, diff --git a/src/pages/options/index.html b/src/pages/options/index.html index 0bb4ecde..2463c361 100644 --- a/src/pages/options/index.html +++ b/src/pages/options/index.html @@ -71,10 +71,6 @@ </select> </div> <div class="some-block option-block"> - <h4>First-party isolation (Enable for Tor)</h4> - <input id="firstPartyIsolate" type="checkbox"> - </div> - <div class="some-block option-block"> <h4 data-localise="__MSG_autoRedirect__"></h4> <input id="auto-redirect" type="checkbox"> </div> @@ -525,6 +521,14 @@ <option value="tor" data-localise="__MSG_tor__">Tor</option> </select> </div> + <div class="some-block option-block"> + <h4 data-localise="__MSG_redirectType__">Redirect Type</h4> + <select id="twitter-redirect_type"> + <option value="both" data-localise="__MSG_both__">both</option> + <option value="sub_frame" data-localise="__MSG_onlyEmbedded__">Only Embedded</option> + <option value="main_frame" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option> + </select> + </div> <div id="nitter"> <hr> <div class="normal"> diff --git a/src/pages/options/widgets/general.js b/src/pages/options/widgets/general.js index 0daeb90e..04568aa5 100644 --- a/src/pages/options/widgets/general.js +++ b/src/pages/options/widgets/general.js @@ -180,20 +180,20 @@ for (const frontend of generalHelper.allPopupFrontends) } ) -const firstPartyIsolate = document.getElementById('firstPartyIsolate'); -firstPartyIsolate.addEventListener("change", () => browser.storage.local.set({ firstPartyIsolate: firstPartyIsolate.checked })) +// const firstPartyIsolate = document.getElementById('firstPartyIsolate'); +// firstPartyIsolate.addEventListener("change", () => browser.storage.local.set({ firstPartyIsolate: firstPartyIsolate.checked })) browser.storage.local.get( [ 'theme', 'autoRedirect', 'exceptions', - 'firstPartyIsolate' + // 'firstPartyIsolate' ], r => { autoRedirectElement.checked = r.autoRedirect; themeElement.value = r.theme; - firstPartyIsolate.checked = r.firstPartyIsolate; + // firstPartyIsolate.checked = r.firstPartyIsolate; instanceTypeElement.addEventListener("change", event => { diff --git a/src/pages/options/widgets/general.pug b/src/pages/options/widgets/general.pug index c8e043b9..fe144a57 100644 --- a/src/pages/options/widgets/general.pug +++ b/src/pages/options/widgets/general.pug @@ -10,8 +10,8 @@ section#general_page.option-block option(value="light" data-localise="__MSG_light__") Light option(value="dark" data-localise="__MSG_dark__") Dark - .some-block.option-block - h4() First-party isolation (Enable for Tor) + //- .some-block.option-block + h4 Tor Browser input#firstPartyIsolate(type="checkbox") .some-block.option-block diff --git a/src/pages/options/widgets/twitter.js b/src/pages/options/widgets/twitter.js index 25356733..aff108c8 100644 --- a/src/pages/options/widgets/twitter.js +++ b/src/pages/options/widgets/twitter.js @@ -2,6 +2,7 @@ import utils from "../../../assets/javascripts/utils.js"; const enable = document.getElementById("twitter-enable"); const protocol = document.getElementById("twitter-protocol"); +const redirectType = document.getElementById("twitter-redirect_type"); const twitter = document.getElementById('twitter_page'); function changeProtocolSettings() { @@ -21,10 +22,12 @@ browser.storage.local.get( [ "disableTwitter", "twitterProtocol", + "twitterRedirectType", ], r => { enable.checked = !r.disableTwitter; protocol.value = r.twitterProtocol; + redirectType.value = r.twitterRedirectType; changeProtocolSettings(); } ) @@ -33,6 +36,7 @@ twitter.addEventListener("change", () => { browser.storage.local.set({ disableTwitter: !enable.checked, twitterProtocol: protocol.value, + twitterRedirectType: redirectType.value, }); changeProtocolSettings(); }) diff --git a/src/pages/options/widgets/twitter.pug b/src/pages/options/widgets/twitter.pug index 36835e8a..c2e949ca 100644 --- a/src/pages/options/widgets/twitter.pug +++ b/src/pages/options/widgets/twitter.pug @@ -12,6 +12,13 @@ section#twitter_page.option-block option(value="normal" data-localise="__MSG_normal__") Normal option(value="tor" data-localise="__MSG_tor__") Tor + .some-block.option-block + h4(data-localise="__MSG_redirectType__") Redirect Type + select#twitter-redirect_type + option(value="both" data-localise="__MSG_both__") both + option(value="sub_frame" data-localise="__MSG_onlyEmbedded__") Only Embedded + option(value="main_frame" data-localise="__MSG_onlyNotEmbedded__") Only Not Embedded + #nitter hr .normal diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index 39bbf239..27e9d535 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -45,6 +45,7 @@ let disableElement = document.getElementById("disable-simplyTranslate"); let disableWikipediaElement = document.getElementById("disable-wikipedia"); let disableMediumElement = document.getElementById("disable-medium"); let disableQuoraElement = document.getElementById("disable-quora"); +let disableImdbElement = document.getElementById("disable-imdb"); let disableReutersElement = document.getElementById("disable-reuters"); let disablePeertubeElement = document.getElementById("disable-peertube"); let disableLbryElement = document.getElementById("disable-lbry"); @@ -67,6 +68,7 @@ browser.storage.local.get( "disableTiktok", "disableMedium", "disableQuora", + "disableImdb", "disableReuters", "disablePeertubeTargets", "disableLbryTargets", @@ -88,6 +90,7 @@ browser.storage.local.get( disableTiktokElement.checked = !r.disableTiktok; disableMediumElement.checked = !r.disableMedium; disableQuoraElement.checked = !r.disableQuora; + disableImdbElement.checked = !r.disableImdb; disableReutersElement.checked = !r.disableReuters; disablePeertubeElement.checked = !r.disablePeertubeTargets; disableLbryElement.checked = !r.disableLbryTargets; @@ -116,6 +119,7 @@ document.addEventListener("change", () => { disableTiktok: !disableTiktokElement.checked, disableMedium: !disableMediumElement.checked, disableQuora: !disableQuoraElement.checked, + disableImdb: !disableImdbElement.checked, disableReuters: !disableReutersElement.checked, disablePeertubeTargets: !disablePeertubeElement.checked, disableLbryTargets: !disableLbryElement.checked, |