about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authornitrohorse <1514352+nitrohorse@users.noreply.github.com>2020-09-05 22:21:41 -0700
committernitrohorse <1514352+nitrohorse@users.noreply.github.com>2020-09-05 22:21:41 -0700
commit2603e7a9ea7bd12b40d88e799ff377a8960cccaf (patch)
tree4c79701358756ca7c6c3dfc8794d497af4e91dc1
parentBump manifest version (diff)
downloadlibredirect-2603e7a9ea7bd12b40d88e799ff377a8960cccaf.zip
Update Reddit-related text for consistency, bugfix
Even when on an old Reddit view, redirect from desktop or mobile
depending on whichever one the redirect is set to.
-rw-r--r--background.js45
-rw-r--r--pages/options/options.html14
-rw-r--r--pages/options/options.js32
-rw-r--r--pages/popup/popup.html10
-rw-r--r--pages/popup/popup.js10
5 files changed, 53 insertions, 58 deletions
diff --git a/background.js b/background.js
index 185147b5..5e896a13 100644
--- a/background.js
+++ b/background.js
@@ -88,14 +88,14 @@ const redditDomains = [
   "www.reddit.com",
   "np.reddit.com",
   "new.reddit.com",
-  "amp.reddit.com"
+  "amp.reddit.com",
 ];
 const redditBypassPaths = /\/(gallery\/poll\/rpan\/settings\/topics)/;
-const redditVersions = [
-  "https://old.reddit.com",
-  "https://i.reddit.com" // Old Mobile view
+const oldRedditViews = [
+  "https://old.reddit.com", // desktop
+  "https://i.reddit.com" // mobile
 ];
-const redditDefault = redditVersions[0];
+const redditDefault = oldRedditViews[0];
 const googleMapsRegex = /https?:\/\/(((www|maps)\.)?(google\.).*(\/maps)|maps\.(google\.).*)/;
 const mapCentreRegex = /@(-?\d[0-9.]*),(-?\d[0-9.]*),(\d{1,2})[.z]/;
 const dataLatLngRegex = /(!3d|!4d)(-?[0-9]{1,10}.[0-9]{1,10})/g;
@@ -117,12 +117,12 @@ let disableNitter;
 let disableInvidious;
 let disableBibliogram;
 let disableOsm;
-let disableRedditVersion;
+let disableOldReddit;
 let nitterInstance;
 let invidiousInstance;
 let bibliogramInstance;
 let osmInstance;
-let redditVersion;
+let oldRedditView;
 let alwaysProxy;
 let onlyEmbeddedVideo;
 let videoQuality;
@@ -141,12 +141,12 @@ browser.storage.sync.get(
     "invidiousInstance",
     "bibliogramInstance",
     "osmInstance",
-    "redditVersion",
+    "oldRedditView",
     "disableNitter",
     "disableInvidious",
     "disableBibliogram",
     "disableOsm",
-    "disableRedditVersion",
+    "disableOldReddit",
     "alwaysProxy",
     "onlyEmbeddedVideo",
     "videoQuality",
@@ -162,12 +162,12 @@ browser.storage.sync.get(
     disableInvidious = result.disableInvidious;
     disableBibliogram = result.disableBibliogram;
     disableOsm = result.disableOsm;
-    disableRedditVersion = result.disableRedditVersion;
+    disableOldReddit = result.disableOldReddit;
     nitterInstance = result.nitterInstance;
     invidiousInstance = result.invidiousInstance;
     bibliogramInstance = result.bibliogramInstance;
     osmInstance = result.osmInstance || osmDefault;
-    redditVersion = result.redditVersion || redditDefault;
+    oldRedditView = result.oldRedditView || redditDefault;
     alwaysProxy = result.alwaysProxy;
     onlyEmbeddedVideo = result.onlyEmbeddedVideo;
     videoQuality = result.videoQuality;
@@ -197,8 +197,8 @@ browser.storage.onChanged.addListener((changes) => {
   if ("osmInstance" in changes) {
     osmInstance = changes.osmInstance.newValue || osmDefault;
   }
-  if ("redditVersion" in changes) {
-    redditVersion = changes.redditVersion.newValue || redditDefault;
+  if ("oldRedditView" in changes) {
+    oldRedditView = changes.oldRedditView.newValue || redditDefault;
   }
   if ("disableNitter" in changes) {
     disableNitter = changes.disableNitter.newValue;
@@ -212,8 +212,8 @@ browser.storage.onChanged.addListener((changes) => {
   if ("disableOsm" in changes) {
     disableOsm = changes.disableOsm.newValue;
   }
-  if ("disableRedditVersion" in changes) {
-    disableRedditVersion = changes.disableRedditVersion.newValue;
+  if ("disableOldReddit" in changes) {
+    disableOldReddit = changes.disableOldReddit.newValue;
   }
   if ("alwaysProxy" in changes) {
     alwaysProxy = changes.alwaysProxy.newValue;
@@ -498,23 +498,18 @@ function redirectGoogleMaps(url, initiator) {
 }
 
 function redirectReddit(url, initiator, type) {
-  if (disableRedditVersion || isException(url, initiator)) {
+  if (disableOldReddit || isException(url, initiator)) {
     return null;
   }
-  // Do not redirect old or mobile Reddit versions on normal Reddit links
-  if (
-    initiator &&
-    (initiator.origin === redditVersion ||
-      redditVersions.includes(initiator.origin) ||
-      redditVersions.includes(initiator.host))
-  ) {
+  // Do not redirect when already on the selected view
+  if (initiator && initiator.origin === oldRedditView || url.origin === oldRedditView) {
     return null;
   }
   // Do not redirect anything other than main_frame
   if (type !== "main_frame" || url.pathname.match(redditBypassPaths)) {
     return null;
   }
-  return `${redditVersion}${url.pathname}${url.search}`;
+  return `${oldRedditView}${url.pathname}${url.search}`;
 }
 
 browser.webRequest.onBeforeRequest.addListener(
@@ -543,7 +538,7 @@ browser.webRequest.onBeforeRequest.addListener(
       redirect = {
         redirectUrl: redirectGoogleMaps(url, initiator),
       };
-    } else if (redditDomains.includes(url.host)) {
+    } else if (redditDomains.includes(url.host) || oldRedditViews.includes(url.origin)) {
       redirect = {
         redirectUrl: redirectReddit(url, initiator, details.type),
       }
diff --git a/pages/options/options.html b/pages/options/options.html
index 96641515..bf9d5cdb 100644
--- a/pages/options/options.html
+++ b/pages/options/options.html
@@ -121,22 +121,22 @@
         </table>
       </section>
       <section class="settings-block">
-        <table class="option" aria-label="Toggle Reddit version redirects">
+        <table class="option" aria-label="Toggle old Reddit redirects">
           <tbody>
             <tr>
               <td>
-                <h1 data-localise="__MSG_disableRedditVersion__">
-                  Reddit Version Redirects
+                <h1 data-localise="__MSG_disableOldReddit__">
+                  Old Reddit Redirects
                 </h1>
               </td>
               <td>
                 <input
                   aria-hidden="true"
-                  id="disable-reddit-version"
+                  id="disable-old-reddit"
                   type="checkbox"
                   checked
                 />&nbsp;
-                <label for="disable-reddit-version" class="checkbox-label"> </label>
+                <label for="disable-old-reddit" class="checkbox-label"> </label>
               </td>
             </tr>
           </tbody>
@@ -184,10 +184,10 @@
         </div>
       </section>
       <section class="settings-block">
-        <h1 data-localise="__MSG_redditVersion__">Reddit Version</h1>
+        <h1 data-localise="__MSG_oldRedditView__">Old Reddit View (Desktop or Mobile)</h1>
         <div class="autocomplete">
           <input
-            id="reddit-version"
+            id="old-reddit-view"
             type="url"
             placeholder="https://old.reddit.com"
           />
diff --git a/pages/options/options.js b/pages/options/options.js
index ff08fa43..65133581 100644
--- a/pages/options/options.js
+++ b/pages/options/options.js
@@ -45,28 +45,28 @@ const bibliogramInstances = [
   "https://bibliogram.ggc-project.de",
 ];
 const osmInstances = ["https://openstreetmap.org"];
-const redditVersions = [
-  "https://old.reddit.com",
-  "https://i.reddit.com"
+const oldRedditViews = [
+  "https://old.reddit.com", // desktop
+  "https://i.reddit.com" // mobile
 ];
 const autocompletes = [
   { id: "nitter-instance", instances: nitterInstances },
   { id: "invidious-instance", instances: invidiousInstances },
   { id: "bibliogram-instance", instances: bibliogramInstances },
   { id: "osm-instance", instances: osmInstances },
-  { id: "reddit-version", instances: redditVersions },
+  { id: "old-reddit-view", instances: oldRedditViews },
 ];
 
 let nitterInstance = document.getElementById("nitter-instance");
 let invidiousInstance = document.getElementById("invidious-instance");
 let bibliogramInstance = document.getElementById("bibliogram-instance");
 let osmInstance = document.getElementById("osm-instance");
-let redditVersion = document.getElementById("reddit-version");
+let oldRedditView = document.getElementById("old-reddit-view");
 let disableNitter = document.getElementById("disable-nitter");
 let disableInvidious = document.getElementById("disable-invidious");
 let disableBibliogram = document.getElementById("disable-bibliogram");
 let disableOsm = document.getElementById("disable-osm");
-let disableRedditVersion = document.getElementById("disable-reddit-version");
+let disableOldReddit = document.getElementById("disable-old-reddit");
 let alwaysProxy = document.getElementById("always-proxy");
 let onlyEmbeddedVideo = document.getElementById("only-embed");
 let videoQuality = document.getElementById("video-quality");
@@ -110,12 +110,12 @@ browser.storage.sync.get(
     "invidiousInstance",
     "bibliogramInstance",
     "osmInstance",
-    "redditVersion",
+    "oldRedditView",
     "disableNitter",
     "disableInvidious",
     "disableBibliogram",
     "disableOsm",
-    "disableRedditVersion",
+    "disableOldReddit",
     "alwaysProxy",
     "onlyEmbeddedVideo",
     "videoQuality",
@@ -136,12 +136,12 @@ browser.storage.sync.get(
     invidiousInstance.value = result.invidiousInstance || "";
     bibliogramInstance.value = result.bibliogramInstance || "";
     osmInstance.value = result.osmInstance || "";
-    redditVersion.value = result.redditVersion || "";
+    oldRedditView.value = result.oldRedditView || "";
     disableNitter.checked = !result.disableNitter;
     disableInvidious.checked = !result.disableInvidious;
     disableBibliogram.checked = !result.disableBibliogram;
     disableOsm.checked = !result.disableOsm;
-    disableRedditVersion.checked = !result.disableRedditVersion;
+    disableOldReddit.checked = !result.disableOldReddit;
     alwaysProxy.checked = result.alwaysProxy;
     onlyEmbeddedVideo.checked = result.onlyEmbeddedVideo;
     videoQuality.value = result.videoQuality || "";
@@ -284,14 +284,14 @@ let osmInstanceChange = debounce(() => {
 }, 500);
 osmInstance.addEventListener("input", osmInstanceChange);
 
-let redditVersionChange = debounce(() => {
-  if (redditVersion.checkValidity()) {
+let oldRedditViewChange = debounce(() => {
+  if (oldRedditView.checkValidity()) {
     browser.storage.sync.set({
-      redditVersion: parseURL(redditVersion.value),
+      oldRedditView: parseURL(oldRedditView.value),
     });
   }
 }, 500);
-redditVersion.addEventListener("input", redditVersionChange);
+oldRedditView.addEventListener("input", oldRedditViewChange);
 
 disableNitter.addEventListener("change", (event) => {
   browser.storage.sync.set({ disableNitter: !event.target.checked });
@@ -309,8 +309,8 @@ disableOsm.addEventListener("change", (event) => {
   browser.storage.sync.set({ disableOsm: !event.target.checked });
 });
 
-disableRedditVersion.addEventListener("change", (event) => {
-  browser.storage.sync.set({ disableRedditVersion: !event.target.checked });
+disableOldReddit.addEventListener("change", (event) => {
+  browser.storage.sync.set({ disableOldReddit: !event.target.checked });
 });
 
 alwaysProxy.addEventListener("change", (event) => {
diff --git a/pages/popup/popup.html b/pages/popup/popup.html
index 871e2c62..faf0deb8 100644
--- a/pages/popup/popup.html
+++ b/pages/popup/popup.html
@@ -117,22 +117,22 @@
     </section>
 
     <section class="settings-block">
-      <table class="option" aria-label="Toggle Reddit version redirects">
+      <table class="option" aria-label="Toggle old Reddit redirects">
         <tbody>
           <tr>
             <td>
-              <h1 data-localise="__MSG_disableRedditVersion__">
-                Reddit Version Redirects
+              <h1 data-localise="__MSG_disableOldReddit__">
+                Old Reddit Redirects
               </h1>
             </td>
             <td>
               <input
                 aria-hidden="true"
-                id="disable-reddit-version"
+                id="disable-old-reddit"
                 type="checkbox"
                 checked
               />&nbsp;
-              <label for="disable-reddit-version" class="checkbox-label"> </label>
+              <label for="disable-old-reddit" class="checkbox-label"> </label>
             </td>
           </tr>
         </tbody>
diff --git a/pages/popup/popup.js b/pages/popup/popup.js
index 4ea627cd..34253702 100644
--- a/pages/popup/popup.js
+++ b/pages/popup/popup.js
@@ -4,7 +4,7 @@ let disableNitter = document.querySelector("#disable-nitter");
 let disableInvidious = document.querySelector("#disable-invidious");
 let disableBibliogram = document.querySelector("#disable-bibliogram");
 let disableOsm = document.querySelector("#disable-osm");
-let disableRedditVersion = document.querySelector("#disable-reddit-version");
+let disableOldReddit = document.querySelector("#disable-old-reddit");
 let version = document.querySelector("#version");
 
 window.browser = window.browser || window.chrome;
@@ -15,7 +15,7 @@ browser.storage.sync.get(
     "disableInvidious",
     "disableBibliogram",
     "disableOsm",
-    "disableRedditVersion",
+    "disableOldReddit",
     "theme",
   ],
   (result) => {
@@ -24,7 +24,7 @@ browser.storage.sync.get(
     disableInvidious.checked = !result.disableInvidious;
     disableBibliogram.checked = !result.disableBibliogram;
     disableOsm.checked = !result.disableOsm;
-    disableRedditVersion.checked = !result.disableRedditVersion;
+    disableOldReddit.checked = !result.disableOldReddit;
   }
 );
 
@@ -46,8 +46,8 @@ disableOsm.addEventListener("change", (event) => {
   browser.storage.sync.set({ disableOsm: !event.target.checked });
 });
 
-disableRedditVersion.addEventListener("change", (event) => {
-  browser.storage.sync.set({ disableRedditVersion: !event.target.checked });
+disableOldReddit.addEventListener("change", (event) => {
+  browser.storage.sync.set({ disableOldReddit: !event.target.checked });
 });
 
 document.querySelector("#more-options").addEventListener("click", () => {