about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/assets/javascripts/imgur.js2
-rw-r--r--src/assets/javascripts/search.js3
-rw-r--r--src/assets/javascripts/twitter.js10
-rw-r--r--src/assets/javascripts/utils.js25
-rw-r--r--src/assets/javascripts/youtube/youtube.js4
-rw-r--r--src/manifest.json2
-rw-r--r--src/pages/background/background.js18
-rw-r--r--src/pages/options/index.html12
-rw-r--r--src/pages/options/widgets/general.js8
-rw-r--r--src/pages/options/widgets/general.pug4
-rw-r--r--src/pages/options/widgets/twitter.js4
-rw-r--r--src/pages/options/widgets/twitter.pug7
-rw-r--r--src/pages/popup/popup.js4
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,