about summary refs log tree commit diff stats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--assets/remove-twitter-sw.js10
-rw-r--r--background.js22
-rw-r--r--manifest.json2
3 files changed, 23 insertions, 11 deletions
diff --git a/assets/remove-twitter-sw.js b/assets/remove-twitter-sw.js
index b897a18b..37200f1a 100644
--- a/assets/remove-twitter-sw.js
+++ b/assets/remove-twitter-sw.js
@@ -20,6 +20,10 @@ function redirectTwitter(url) {
 browser.storage.sync.get(
   ['nitterInstance', 'disableNitter', 'removeTwitterSW', 'redirectBypassFlag'],
   (result) => {
+    const redirectBypassFlag = result.redirectBypassFlag;
+    browser.storage.sync.set({
+      redirectBypassFlag: false
+    });
     if (!result.removeTwitterSW) {
       disableNitter = result.disableNitter;
       nitterInstance = result.nitterInstance || nitterDefault;
@@ -32,11 +36,7 @@ browser.storage.sync.get(
         }
       });
       const url = new URL(window.location);
-      const redirectBypassFlag = result.redirectBypassFlag;
-      browser.storage.sync.set({
-        redirectBypassFlag: false
-      });
-      if (!redirectBypassFlag && !disableNitter && url.host !== nitterInstance) {
+      if (!redirectBypassFlag && !disableNitter && url.host !== nitterInstance && !url.pathname.includes('/home')) {
         const redirect = redirectTwitter(url);
         console.info(
           'Redirecting', `"${url.href}"`, '=>', `"${redirect}"`
diff --git a/background.js b/background.js
index 1a64639c..f3a50cf6 100644
--- a/background.js
+++ b/background.js
@@ -10,6 +10,7 @@ const youtubeDomains = [
   'www.youtube-nocookie.com',
   'youtu.be',
   's.ytimg.com',
+  'music.youtube.com'
 ];
 const nitterDefault = 'https://nitter.net';
 const twitterDomains = [
@@ -85,6 +86,7 @@ let onlyEmbeddedVideo;
 let videoQuality;
 let invidiousDarkMode;
 let whitelist;
+let redirectBypassFlag;
 
 window.browser = window.browser || window.chrome;
 
@@ -161,6 +163,9 @@ browser.storage.onChanged.addListener(changes => {
   if ('whitelist' in changes) {
     whitelist = changes.whitelist.newValue.map(e => new RegExp(e));
   }
+  if ('redirectBypassFlag' in changes) {
+    redirectBypassFlag = changes.redirectBypassFlag.newValue;
+  }
 });
 
 function addressToLatLng(address, callback) {
@@ -193,6 +198,10 @@ function isWhitelisted(initiator) {
   return initiator && whitelist.some(regex => (regex.test(initiator.href)));
 }
 
+function isFirefox() {
+  return typeof InstallTrigger !== 'undefined';
+}
+
 function redirectYouTube(url, initiator, type) {
   if (disableInvidious || isWhitelisted(initiator)) {
     return null;
@@ -208,16 +217,16 @@ function redirectYouTube(url, initiator, type) {
     // Avoid redirecting `studio.youtube.com`
     return null;
   }
-  // Proxy video through the server if enabled by user
+  if (onlyEmbeddedVideo && type !== 'sub_frame') {
+    return null;
+  }
+  // Apply settings
   if (alwaysProxy) {
     url.searchParams.append('local', true);
   }
   if (videoQuality) {
     url.searchParams.append('quality', videoQuality);
   }
-  if (onlyEmbeddedVideo && type !== 'sub_frame') {
-    return null;
-  }
   if (invidiousDarkMode) {
     url.searchParams.append('dark_mode', invidiousDarkMode);
   }
@@ -228,7 +237,10 @@ function redirectTwitter(url, initiator) {
   if (disableNitter || isWhitelisted(initiator)) {
     return null;
   }
-  if (initiator && (initiator.origin === nitterInstance || twitterDomains.includes(initiator.host))) {
+  if (url.pathname.includes('/home')) {
+    return null;
+  }
+  if (isFirefox() && initiator && (initiator.origin === nitterInstance || twitterDomains.includes(initiator.host))) {
     browser.storage.sync.set({
       redirectBypassFlag: true
     });
diff --git a/manifest.json b/manifest.json
index a0a927a1..542c81cc 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,7 +1,7 @@
 {
   "name": "Privacy Redirect",
   "description": "Redirects Twitter, YouTube, Instagram & Google Maps requests to privacy friendly alternatives.",
-  "version": "1.1.32",
+  "version": "1.1.33",
   "manifest_version": 2,
   "background": {
     "scripts": [