[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [Git][tpo/applications/tor-browser][tor-browser-147.0a1-16.0-2] 2 commits: fixup! Temporary changes to about:torconnect for Android.



Title: GitLab

clairehurst pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser

Commits:

  • 12387757
    by clairehurst at 2026-02-05T12:20:55-07:00
    fixup! Temporary changes to about:torconnect for Android.
    
    This reverts commit aed2663396d9fe060829290ac9e64774131ac1c3.
    
  • cd8bcb6e
    by clairehurst at 2026-02-05T12:20:55-07:00
    fixup! [android] Implement Android-native Connection Assist UI
    

9 changed files:

Changes:

  • mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
    ... ... @@ -185,7 +185,6 @@ import org.mozilla.fenix.compose.core.Action
    185 185
     import org.mozilla.fenix.compose.snackbar.SnackbarState
    
    186 186
     import org.mozilla.fenix.compose.snackbar.Snackbar
    
    187 187
     import org.mozilla.fenix.tor.UrlQuickLoadViewModel
    
    188
    -import org.mozilla.geckoview.TorAndroidIntegration
    
    189 188
     import org.mozilla.geckoview.TorAndroidIntegration.BootstrapStateChangeListener
    
    190 189
     import org.mozilla.geckoview.TorConnectStage
    
    191 190
     import kotlin.system.exitProcess
    
    ... ... @@ -197,7 +196,7 @@ import kotlin.system.exitProcess
    197 196
      * - browser screen
    
    198 197
      */
    
    199 198
     @SuppressWarnings("TooManyFunctions", "LargeClass", "LongMethod")
    
    200
    -open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAndroidIntegration.BootstrapStateChangeListener {
    
    199
    +open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
    
    201 200
         @VisibleForTesting
    
    202 201
         internal lateinit var binding: ActivityHomeBinding
    
    203 202
         lateinit var themeManager: ThemeManager
    
    ... ... @@ -611,14 +610,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn
    611 610
                 onBackPressedCallback = onBackPressedCallback,
    
    612 611
             )
    
    613 612
     
    
    614
    -        if (settings().useHtmlConnectionUi) {
    
    615
    -            val engine = components.core.engine
    
    616
    -            if (engine is GeckoEngine) {
    
    617
    -                val torIntegration = engine.getTorIntegrationController()
    
    618
    -                torIntegration.registerBootstrapStateChangeListener(this)
    
    619
    -            }
    
    620
    -        }
    
    621
    -
    
    622 613
             StartupTimeline.onActivityCreateEndHome(this) // DO NOT MOVE ANYTHING BELOW HERE.
    
    623 614
         }
    
    624 615
     
    
    ... ... @@ -1388,20 +1379,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn
    1388 1379
     
    
    1389 1380
         @VisibleForTesting
    
    1390 1381
         internal fun navigateToHome(navController: NavController) {
    
    1391
    -        // if (this is ExternalAppBrowserActivity) {
    
    1392
    -        //     return
    
    1393
    -        // }
    
    1394
    -
    
    1395
    -        if (!settings().useHtmlConnectionUi) {
    
    1396
    -            navController.navigate(NavGraphDirections.actionStartupTorConnectionAssist())
    
    1397
    -        } else {
    
    1398
    -            navController.navigate(NavGraphDirections.actionStartupHome())
    
    1399
    -            openToBrowserAndLoad(
    
    1400
    -                searchTermOrURL = "about:torconnect",
    
    1401
    -                newTab = true,
    
    1402
    -                from = BrowserDirection.FromHome,
    
    1403
    -            )
    
    1404
    -        }
    
    1382
    +        navController.navigate(NavGraphDirections.actionStartupTorConnectionAssist())
    
    1405 1383
         }
    
    1406 1384
     
    
    1407 1385
         final override fun attachBaseContext(base: Context) {
    
    ... ... @@ -1610,14 +1588,4 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn
    1610 1588
             finishAndRemoveTask()
    
    1611 1589
             exitProcess(0)
    
    1612 1590
         }
    
    1613
    -
    
    1614
    -    override fun onBootstrapStageChange(stage: TorConnectStage)  {
    
    1615
    -        if (stage.isBootstrapped) {
    
    1616
    -            if (settings().useHtmlConnectionUi) {
    
    1617
    -                components.useCases.tabsUseCases.removeAllTabs()
    
    1618
    -                navHost.navController.navigate(NavGraphDirections.actionStartupHome())
    
    1619
    -            }
    
    1620
    -        }
    
    1621
    -    }
    
    1622
    -    override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) = Unit
    
    1623 1591
     }

  • mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt
    ... ... @@ -1954,10 +1954,6 @@ abstract class BaseBrowserFragment :
    1954 1954
     
    
    1955 1955
                     @Suppress("DEPRECATION")
    
    1956 1956
                     it.announceForAccessibility(selectedTab.toDisplayTitle())
    
    1957
    -                if (getCurrentTab()?.content?.url == "about:torconnect") {
    
    1958
    -                    // FIXME: view is not available anymore.
    
    1959
    -                    // browserToolbarView.view.visibility = View.GONE
    
    1960
    -                }
    
    1961 1957
                 }
    
    1962 1958
             } else {
    
    1963 1959
                 view?.let { view -> initializeUI(view) }
    
    ... ... @@ -1991,26 +1987,6 @@ abstract class BaseBrowserFragment :
    1991 1987
                     ),
    
    1992 1988
                 )
    
    1993 1989
             }
    
    1994
    -
    
    1995
    -        handleBetaHtmlTorConnect()
    
    1996
    -    }
    
    1997
    -
    
    1998
    -    private fun handleBetaHtmlTorConnect() {
    
    1999
    -        val currentTab = getCurrentTab() ?: return
    
    2000
    -        if (currentTab.content.url == "about:torconnect") {
    
    2001
    -            if (!requireActivity().settings().useHtmlConnectionUi) {
    
    2002
    -                requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id)
    
    2003
    -                (requireActivity() as HomeActivity).navigateToHome(
    
    2004
    -                    findNavController(),
    
    2005
    -                )
    
    2006
    -            } else {
    
    2007
    -                // This just makes it not flash (be visible for a split second) before handleTabSelected() hides it again
    
    2008
    -                // FIXME: view is not available anymore.
    
    2009
    -                // browserToolbarView.view.visibility = View.GONE
    
    2010
    -            }
    
    2011
    -        } else if (currentTab.content.url == "about:tor") {
    
    2012
    -            requireContext().components.useCases.tabsUseCases.removeTab(currentTab.id)
    
    2013
    -        }
    
    2014 1990
         }
    
    2015 1991
     
    
    2016 1992
         private fun evaluateMessagesForMicrosurvey(components: Components) =
    

  • mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt
    ... ... @@ -10,7 +10,6 @@ import android.os.Bundle
    10 10
     import android.os.Handler
    
    11 11
     import android.os.Looper
    
    12 12
     import android.os.StrictMode
    
    13
    -import android.util.Log
    
    14 13
     import android.view.LayoutInflater
    
    15 14
     import android.view.View
    
    16 15
     import android.widget.Toast
    
    ... ... @@ -31,7 +30,6 @@ import androidx.preference.SwitchPreference
    31 30
     import androidx.recyclerview.widget.RecyclerView
    
    32 31
     import com.google.android.material.dialog.MaterialAlertDialogBuilder
    
    33 32
     import kotlinx.coroutines.CoroutineScope
    
    34
    -import kotlinx.coroutines.Dispatchers
    
    35 33
     import kotlinx.coroutines.delay
    
    36 34
     import kotlinx.coroutines.launch
    
    37 35
     import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine
    
    ... ... @@ -732,20 +730,6 @@ class SettingsFragment : PreferenceFragmentCompat(), UserInteractionHandler {
    732 730
     
    
    733 731
         @VisibleForTesting
    
    734 732
         internal fun setupHomepagePreference(settings: Settings) {
    
    735
    -        /*with(requirePreference<Preference>(R.string.pref_key_home)) {
    
    736
    -            summary = when {
    
    737
    -                settings.alwaysOpenTheHomepageWhenOpeningTheApp ->
    
    738
    -                    getString(R.string.opening_screen_homepage_summary)
    
    739
    -
    
    740
    -                settings.openHomepageAfterFourHoursOfInactivity ->
    
    741
    -                    getString(R.string.opening_screen_after_four_hours_of_inactivity_summary)
    
    742
    -
    
    743
    -                settings.alwaysOpenTheLastTabWhenOpeningTheApp ->
    
    744
    -                    getString(R.string.opening_screen_last_tab_summary)
    
    745
    -
    
    746
    -                else -> null
    
    747
    -            }
    
    748
    -        }*/
    
    749 733
         }
    
    750 734
     
    
    751 735
         @VisibleForTesting
    
    ... ... @@ -804,11 +788,6 @@ class SettingsFragment : PreferenceFragmentCompat(), UserInteractionHandler {
    804 788
                 }
    
    805 789
             }
    
    806 790
     
    
    807
    -        requirePreference<Preference>(R.string.pref_key_use_html_connection_ui).apply {
    
    808
    -            onPreferenceChangeListener = object : SharedPreferenceUpdater() {}
    
    809
    -            isVisible = Config.channel != ReleaseChannel.Release
    
    810
    -        }
    
    811
    -
    
    812 791
             requirePreference<Preference>(R.string.pref_key_tor_logs).apply {
    
    813 792
                 setOnPreferenceClickListener {
    
    814 793
                     val directions =
    

  • mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
    ... ... @@ -2899,11 +2899,6 @@ class Settings(
    2899 2899
             return sharedPreferences.getBoolean(cleanupPreferenceKey, false)
    
    2900 2900
         }
    
    2901 2901
     
    
    2902
    -    var useHtmlConnectionUi by booleanPreference(
    
    2903
    -        key = appContext.getPreferenceKey(R.string.pref_key_use_html_connection_ui),
    
    2904
    -        default = false,
    
    2905
    -    )
    
    2906
    -
    
    2907 2902
         var quickStart by booleanPreference(
    
    2908 2903
             appContext.getPreferenceKey(R.string.pref_key_quick_start),
    
    2909 2904
             default = false,
    

  • mobile/android/fenix/app/src/main/res/values/preference_keys.xml
    ... ... @@ -538,7 +538,6 @@
    538 538
         <string name="pref_key_tor_network_settings_explanation" translatable="false">pref_key_tor_network_settings_explanation</string>
    
    539 539
         <string name="pref_key_tor_network_settings_bridge_config" translatable="false">pref_key_tor_network_settings_bridge_config</string>
    
    540 540
         <string name="pref_key_tor_logs" translatable="false">pref_key_tor_logs</string>
    
    541
    -    <string name="pref_key_use_html_connection_ui" translatable="false">pref_key_use_html_connection_ui</string> <!-- Changing the pref_key should reset it to off for users that had it enabled   -->
    
    542 541
         <string name="pref_key_about_config_shortcut" translatable="false">pref_key_about_config_shortcut</string>
    
    543 542
         <string name="pref_key_tor_network_settings_bridge_config_explanation" translatable="false">pref_key_tor_network_settings_bridge_config_explanation</string>
    
    544 543
         <string name="pref_key_tor_network_settings_bridge_config_toggle" translatable="false">pref_key_tor_network_settings_bridge_config_toggle</string>
    

  • mobile/android/fenix/app/src/main/res/xml/preferences.xml
    ... ... @@ -181,13 +181,6 @@
    181 181
                 android:title="@string/tor_connect_automatically_label"
    
    182 182
                 app:iconSpaceReserved="false" />
    
    183 183
     
    
    184
    -        <SwitchPreference
    
    185
    -            android:defaultValue="false"
    
    186
    -            android:key="@string/pref_key_use_html_connection_ui"
    
    187
    -            android:summary="Recommended only for debugging"
    
    188
    -            android:title="Enable HTML connection UI"
    
    189
    -            app:iconSpaceReserved="false" />
    
    190
    -
    
    191 184
             <Preference
    
    192 185
                 android:key="@string/pref_key_tor_logs"
    
    193 186
                 app:iconSpaceReserved="false"
    

  • toolkit/components/torconnect/content/aboutTorConnect.css
    ... ... @@ -4,11 +4,6 @@
    4 4
     @import url("chrome://global/skin/tor-colors.css");
    
    5 5
     @import url("chrome://global/skin/onion-pattern.css");
    
    6 6
     
    
    7
    -html {
    
    8
    -  width: 100%;
    
    9
    -  height: 100%;
    
    10
    -}
    
    11
    -
    
    12 7
     body:not(.loaded) {
    
    13 8
       /* Keep blank whilst loading. */
    
    14 9
       display: none;
    
    ... ... @@ -275,147 +270,3 @@ body.aboutTorConnect .title.location {
    275 270
       background-image: url("chrome://global/content/torconnect/connection-location.svg");
    
    276 271
       stroke: var(--icon-color-warning);
    
    277 272
     }
    278
    -
    
    279
    -/* Android-specific CSS, to be removed when we use only the native UI. */
    
    280
    -:root {
    
    281
    -  --android-dark-accents-buttons: #9059ff;
    
    282
    -  --android-dark-background-secondary: #e1e0e7;
    
    283
    -  --android-dark-text-primary: #fbfbfe;
    
    284
    -  --android-light-text-primary: #15141a;
    
    285
    -}
    
    286
    -
    
    287
    -[hidden="true"] {
    
    288
    -  display: none !important;
    
    289
    -}
    
    290
    -
    
    291
    -body.android {
    
    292
    -  width: 100%;
    
    293
    -  height: 100%;
    
    294
    -  box-sizing: border-box;
    
    295
    -  margin: 0;
    
    296
    -  padding: 0 24px !important;
    
    297
    -  color: var(--android-dark-text-primary);
    
    298
    -  background: linear-gradient(194deg, #692e9d -0.93%, #393270 48.91%);
    
    299
    -  font: menu;
    
    300
    -  font-size: var(--font-size-small);
    
    301
    -  display: flex;
    
    302
    -}
    
    303
    -
    
    304
    -.android #connectPageContainer {
    
    305
    -  max-width: none;
    
    306
    -  display: flex;
    
    307
    -  flex-direction: column;
    
    308
    -  flex: 1;
    
    309
    -}
    
    310
    -
    
    311
    -.android #breadcrumbs {
    
    312
    -  display: none;
    
    313
    -}
    
    314
    -
    
    315
    -.android #text-container {
    
    316
    -  display: flex;
    
    317
    -  flex-direction: column;
    
    318
    -  flex: 1;
    
    319
    -}
    
    320
    -
    
    321
    -.android .title {
    
    322
    -  background-position: left 0;
    
    323
    -  background-repeat: no-repeat;
    
    324
    -  background-size: 40px;
    
    325
    -  padding-top: 64px;
    
    326
    -  font-size: var(--font-size-xlarge);
    
    327
    -  line-height: 28px;
    
    328
    -}
    
    329
    -
    
    330
    -.android h1 {
    
    331
    -  font-weight: var(--font-weight);
    
    332
    -  font-size: inherit;
    
    333
    -  margin: 0 0 16px 0;
    
    334
    -}
    
    335
    -
    
    336
    -.android p {
    
    337
    -  margin: 0;
    
    338
    -  padding-bottom: 8px;
    
    339
    -  line-height: 20px;
    
    340
    -}
    
    341
    -
    
    342
    -.android #quickstartContainer {
    
    343
    -  margin-top: 24px;
    
    344
    -}
    
    345
    -
    
    346
    -.android .button-container {
    
    347
    -  display: flex;
    
    348
    -  flex: 1;
    
    349
    -  flex-direction: column;
    
    350
    -}
    
    351
    -
    
    352
    -.android #locationDropdown {
    
    353
    -  width: 100%;
    
    354
    -  max-width: none;
    
    355
    -  margin: 0;
    
    356
    -}
    
    357
    -
    
    358
    -.android select {
    
    359
    -  background: transparent;
    
    360
    -  border: none;
    
    361
    -  /* stylelint-disable-next-line stylelint-plugin-mozilla/use-border-color-tokens */
    
    362
    -  border-bottom: 1px solid var(--android-dark-text-primary);
    
    363
    -  color: var(--android-dark-text-primary);
    
    364
    -  display: block;
    
    365
    -  width: 100%;
    
    366
    -  margin-top: 10px;
    
    367
    -  padding: 8px;
    
    368
    -}
    
    369
    -
    
    370
    -.android #buttonPadding {
    
    371
    -  flex: 1;
    
    372
    -}
    
    373
    -
    
    374
    -body:not(.android) #connectButtonContainer {
    
    375
    -  /* Use the .button-container context */
    
    376
    -  display: contents;
    
    377
    -}
    
    378
    -
    
    379
    -.android #connectButtonContainer {
    
    380
    -  width: 100%;
    
    381
    -  padding-bottom: 18px;
    
    382
    -  display: grid;
    
    383
    -}
    
    384
    -
    
    385
    -/* Be sure not to match the togglee */
    
    386
    -.android #connectButtonContainer button {
    
    387
    -  display: block;
    
    388
    -  width: 100%;
    
    389
    -  margin: 4px 0;
    
    390
    -  padding: 11px 30px;
    
    391
    -  font-size: var(--font-size-small);
    
    392
    -  font-weight: var(--font-weight);
    
    393
    -  border: none;
    
    394
    -  border-radius: var(--border-radius-small);
    
    395
    -}
    
    396
    -
    
    397
    -.android #connectButton,
    
    398
    -.android #tryBridgeButton,
    
    399
    -.android #configureButton.primary {
    
    400
    -  color: var(--android-dark-text-primary);
    
    401
    -  background-color: var(--android-dark-accents-buttons);
    
    402
    -}
    
    403
    -
    
    404
    -.android #configureButton {
    
    405
    -  order: 1;
    
    406
    -}
    
    407
    -
    
    408
    -.android #restartButton {
    
    409
    -  order: 2;
    
    410
    -}
    
    411
    -
    
    412
    -.android #restartButton,
    
    413
    -.android #cancelButton,
    
    414
    -.android #configureButton {
    
    415
    -  color: var(--android-light-text-primary);
    
    416
    -  background-color: var(--android-dark-background-secondary);
    
    417
    -}
    
    418
    -
    
    419
    -.android .onion-pattern-container {
    
    420
    -  display: none;
    
    421
    -}

  • toolkit/components/torconnect/content/aboutTorConnect.html
    ... ... @@ -6,7 +6,6 @@
    6 6
           http-equiv="Content-Security-Policy"
    
    7 7
           content="default-src chrome:; object-src 'none'"
    
    8 8
         />
    
    9
    -    <meta name="viewport" content="width=device-width" />
    
    10 9
         <link
    
    11 10
           rel="stylesheet"
    
    12 11
           href="">"chrome://global/content/torconnect/aboutTorConnect.css"
    
    ... ... @@ -65,7 +64,11 @@
    65 64
               <moz-toggle id="quickstartToggle"></moz-toggle>
    
    66 65
             </div>
    
    67 66
     
    
    68
    -        <div class="button-container">
    
    67
    +        <div id="connectButtonContainer" class="button-container">
    
    68
    +          <button id="restartButton" hidden="true"></button>
    
    69
    +          <button id="configureButton" hidden="true"></button>
    
    70
    +          <button id="cancelButton" hidden="true"></button>
    
    71
    +          <button id="connectButton" hidden="true" class="tor-button"></button>
    
    69 72
               <label id="locationDropdownLabel" for="">"countries"></label>
    
    70 73
               <form id="locationDropdown" hidden="true">
    
    71 74
                 <select id="regions-select">
    
    ... ... @@ -74,22 +77,11 @@
    74 77
                   <optgroup id="full-regions-option-group"></optgroup>
    
    75 78
                 </select>
    
    76 79
               </form>
    
    77
    -          <span id="buttonPadding"></span>
    
    78
    -          <span id="connectButtonContainer">
    
    79
    -            <button id="restartButton" hidden="true"></button>
    
    80
    -            <button id="configureButton" hidden="true"></button>
    
    81
    -            <button id="cancelButton" hidden="true"></button>
    
    82
    -            <button
    
    83
    -              id="connectButton"
    
    84
    -              hidden="true"
    
    85
    -              class="tor-button"
    
    86
    -            ></button>
    
    87
    -            <button
    
    88
    -              id="tryBridgeButton"
    
    89
    -              hidden="true"
    
    90
    -              class="tor-button"
    
    91
    -            ></button>
    
    92
    -          </span>
    
    80
    +          <button
    
    81
    +            id="tryBridgeButton"
    
    82
    +            hidden="true"
    
    83
    +            class="tor-button"
    
    84
    +          ></button>
    
    93 85
             </div>
    
    94 86
           </div>
    
    95 87
         </div>
    

  • toolkit/components/torconnect/content/aboutTorConnect.js
    ... ... @@ -66,7 +66,7 @@ class AboutTorConnect {
    66 66
           connect: "button#connectButton",
    
    67 67
           tryBridge: "button#tryBridgeButton",
    
    68 68
           locationDropdownLabel: "#locationDropdownLabel",
    
    69
    -      locationDropdown: "#locationDropdown",
    
    69
    +      locationDropdown: "form#locationDropdown",
    
    70 70
           locationDropdownSelect: "#regions-select",
    
    71 71
         },
    
    72 72
       });
    
    ... ... @@ -757,9 +757,6 @@ class AboutTorConnect {
    757 757
       }
    
    758 758
     
    
    759 759
       initElements(direction) {
    
    760
    -    const isAndroid = navigator.userAgent.includes("Android");
    
    761
    -    document.body.classList.toggle("android", isAndroid);
    
    762
    -
    
    763 760
         document.documentElement.setAttribute("dir", direction);
    
    764 761
     
    
    765 762
         this.elements.connectToTorLink.addEventListener("click", () => {
    

  • _______________________________________________
    tor-commits mailing list -- tor-commits@xxxxxxxxxxxxxxxxxxxx
    To unsubscribe send an email to tor-commits-leave@xxxxxxxxxxxxxxxxxxxx