[tor-commits] [tor-browser/tor-browser-91.5.0esr-11.5-1] fixup! Bug 27476: Implement about:torconnect captive portal within Tor Browser

gk at torproject.org gk at torproject.org
Wed Jan 19 13:38:29 UTC 2022


commit eefa8951d7eabcb2b079cb0719bbfc8daff2fc24
Author: Richard Pospesel <richard at torproject.org>
Date:   Tue Dec 21 17:05:49 2021 +0100

    fixup! Bug 27476: Implement about:torconnect captive portal within Tor Browser
---
 browser/base/content/utilityOverlay.js | 12 +++++++++---
 browser/modules/TorConnect.jsm         | 11 ++++++-----
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/browser/base/content/utilityOverlay.js b/browser/base/content/utilityOverlay.js
index 3d22093119ca..5f629dece94e 100644
--- a/browser/base/content/utilityOverlay.js
+++ b/browser/base/content/utilityOverlay.js
@@ -337,11 +337,17 @@ function openUILinkIn(
   aPostData,
   aReferrerInfo
 ) {
-
   // make sure users are not faced with the scary red 'tor isn't working' screen
   // if they navigate to about:tor before bootstrapped
-  if (url === "about:tor" && TorConnect.shouldShowTorConnect) {
-    url = `about:torconnect?redirect=${encodeURIComponent("about:tor")}`;
+  //
+  // fixes tor-browser#40752
+  // new tabs also redirect to about:tor if browser.newtabpage.enabled is true
+  // otherwise they go to about:blank
+  if (TorConnect.shouldShowTorConnect) {
+    if (url === "about:tor" ||
+        (url === "about:newtab" && Services.prefs.getBoolPref("browser.newtabpage.enabled", false))) {
+      url = TorConnect.getRedirectURL(url);
+    }
   }
 
   var params;
diff --git a/browser/modules/TorConnect.jsm b/browser/modules/TorConnect.jsm
index 7c8580b5d8a9..c7ab480e2be0 100644
--- a/browser/modules/TorConnect.jsm
+++ b/browser/modules/TorConnect.jsm
@@ -587,6 +587,10 @@ const TorConnect = (() => {
             );
         },
 
+        getRedirectURL: function(url) {
+            return `about:torconnect?redirect=${encodeURIComponent(url)}`;
+        },
+
         // called from browser.js on browser startup, passed in either the user's homepage(s)
         // or uris passed via command-line; we want to replace them with about:torconnect uris
         // which redirect after bootstrapping
@@ -628,13 +632,10 @@ const TorConnect = (() => {
             let uris = uriStrings.map(uriStringToUri);
 
             // assume we have a valid uri and generate an about:torconnect redirect uri
-            let uriToRedirectUri = (uri) => {
-                return`about:torconnect?redirect=${encodeURIComponent(uri.spec)}`;
-            };
-            let redirectUris = uris.map(uriToRedirectUri);
+            let redirectUrls = uris.map((uri) => this.getRedirectURL(uri.spec));
 
             console.log(`TorConnect: Will load after bootstrap => [${uris.map((uri) => {return uri.spec;}).join(", ")}]`);
-            return redirectUris;
+            return redirectUrls;
         },
     };
     retval.init();





More information about the tor-commits mailing list