[tbb-commits] [Git][tpo/applications/firefox-android][firefox-android-115.2.1-13.5-1] fixup! Add Tor integration and UI

richard (@richard) git at gitlab.torproject.org
Fri Jun 7 21:53:28 UTC 2024



richard pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android


Commits:
1cf0ae40 by Dan Ballard at 2024-06-07T11:08:19-07:00
fixup! Add Tor integration and UI

Bug 42593: Also persisting of bridges set to off, support enabling bridges once a previous selection is remembered

- - - - -


2 changed files:

- fenix/app/src/main/java/org/mozilla/fenix/settings/TorBridgeConfigFragment.kt
- fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt


Changes:

=====================================
fenix/app/src/main/java/org/mozilla/fenix/settings/TorBridgeConfigFragment.kt
=====================================
@@ -103,7 +103,7 @@ class TorBridgeConfigFragment : PreferenceFragmentCompat() {
                     preference.context.components.torController.bridgeTransport = bridge
                     previousTransportConfig = bridge
                     updateCurrentConfiguredBridgePref(preference)
-                    context.components.torController.restartTor()
+                    preference.context.components.torController.restartTor()
                 }
                 true
             }


=====================================
fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt
=====================================
@@ -89,13 +89,13 @@ class TorControllerGV(
     }
 
 
-    // Bridges Enabled is a cache variable. The TorController interface we are locked into at the
-    // moment to support the TAS backend calls setting `bridgesEnabled = true` and setting
-    // the bridge type seperately so to support that,
-    // while at the same time it being invalid states to not submit them together to the TorSettings
-    // backend where TorSettings.sys.mjs's #cleanupSettings will remove a lone bridgeEnabled
-    // we thus have to hold it here to support the UI but not submit to the backend until
-    // bridgeTransport is also set (below)
+    // On a fresh install bridgeEnagled can be set to true without a valid bridgeSource
+    // having been selected. After first use this will not happen because last selected bridge
+    // will be remembered and reused.
+    // However, on first use, submitting this to TorSettings is an invalid state.
+    // TorSettings.sys.mjs's #cleanupSettings will remove a lone bridgeEnabled with no source
+    // selected. Therefore we check and don't call setSettings if bridgeSource isn't selected
+    // (when trying to enable). Disabeling is always valid.
     private var _bridgesEnabled: Boolean? = null
     override var bridgesEnabled: Boolean
         get() {
@@ -103,6 +103,12 @@ class TorControllerGV(
         }
         set(value) {
             _bridgesEnabled = value
+            getTorSettings()?.let {
+                if (!value || it.bridgesSource != BridgeSource.Invalid) {
+                    it.bridgesEnabled = value
+                    getTorIntegration().setSettings(it, true, true)
+                }
+            }
         }
 
 
@@ -146,8 +152,9 @@ class TorControllerGV(
 
 
     // Currently the UI takes a user provided string and sets this in one step so there is where we
-    // actually set it.bridgesSource = BridgeSource.UserProvided, not above, as TorSettings.sys.mjs #cleanupSettings
-    // could reject BridgeSource.UserProvided with no bridge strings
+    // actually set it.bridgesSource = BridgeSource.UserProvided, not above,
+    // as TorSettings.sys.mjs #cleanupSettings could reject BridgeSource.UserProvided
+    // with no bridge strings
     override var userProvidedBridges: String?
         get() {
             return getTorSettings()?.bridgeBridgeStrings?.joinToString("\r\n")



View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/1cf0ae407817280d9770d09560d289568a046a04

-- 
This project does not include diff previews in email notifications.
View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/commit/1cf0ae407817280d9770d09560d289568a046a04
You're receiving this email because of your account on gitlab.torproject.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tbb-commits/attachments/20240607/7b4c7c6e/attachment-0001.htm>


More information about the tbb-commits mailing list