clairehurst pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser

Commits:

5 changed files:

Changes:

  • mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FenixApplication.kt
    ... ... @@ -137,8 +137,6 @@ open class FenixApplication : LocaleAwareApplication(), Provider {
    137 137
             isDeviceRamAboveThreshold()
    
    138 138
         }
    
    139 139
     
    
    140
    -    var terminating = false
    
    141
    -
    
    142 140
         open val components by lazy { Components(this) }
    
    143 141
     
    
    144 142
         var visibilityLifecycleCallback: VisibilityLifecycleCallback? = null
    
    ... ... @@ -188,20 +186,6 @@ open class FenixApplication : LocaleAwareApplication(), Provider {
    188 186
             }
    
    189 187
         }
    
    190 188
     
    
    191
    -    fun isTerminating() = terminating
    
    192
    -
    
    193
    -    fun terminate() {
    
    194
    -        onTerminate()
    
    195
    -    }
    
    196
    -
    
    197
    -    override fun onTerminate() {
    
    198
    -        terminating = true
    
    199
    -
    
    200
    -        super.onTerminate()
    
    201
    -        components.torController.stop()
    
    202
    -        components.torController.stopTor()
    
    203
    -    }
    
    204
    -
    
    205 189
         @OptIn(DelicateCoroutinesApi::class) // GlobalScope usage
    
    206 190
         @VisibleForTesting
    
    207 191
         protected open fun initializeGlean() {
    

  • mobile/android/fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
    ... ... @@ -158,6 +158,7 @@ import org.mozilla.fenix.home.HomeFragment
    158 158
     import org.mozilla.fenix.tor.UrlQuickLoadViewModel
    
    159 159
     import org.mozilla.geckoview.TorAndroidIntegration
    
    160 160
     import org.mozilla.geckoview.TorConnectStage
    
    161
    +import kotlin.system.exitProcess
    
    161 162
     
    
    162 163
     /**
    
    163 164
      * The main activity of the application. The application is primarily a single Activity (this one)
    
    ... ... @@ -653,22 +654,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn
    653 654
             if (this !is ExternalAppBrowserActivity && !activityStartedWithLink) {
    
    654 655
                 stopMediaSession()
    
    655 656
             }
    
    656
    -
    
    657
    -        if (isFinishing && !(application as FenixApplication).isTerminating()) {
    
    658
    -            // We assume the Activity is being destroyed because the user
    
    659
    -            // swiped away the app on the Recent screen. When this happens,
    
    660
    -            // we assume the user expects the entire Application is destroyed
    
    661
    -            // and not only the top Activity/Task. Therefore we kill the
    
    662
    -            // underlying Application, as well.
    
    663
    -            (application as FenixApplication).terminate()
    
    664
    -            if (settings().useHtmlConnectionUi) {
    
    665
    -                val engine = components.core.engine
    
    666
    -                if (engine is GeckoEngine) {
    
    667
    -                    val torIntegration = engine.getTorIntegrationController()
    
    668
    -                    torIntegration.unregisterBootstrapStateChangeListener(this)
    
    669
    -                }
    
    670
    -            }
    
    671
    -        }
    
    672 657
         }
    
    673 658
     
    
    674 659
         final override fun onConfigurationChanged(newConfig: Configuration) {
    
    ... ... @@ -1453,6 +1438,11 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorAn
    1453 1438
             private const val PWA_RECENTLY_USED_THRESHOLD = DateUtils.DAY_IN_MILLIS * 30L
    
    1454 1439
         }
    
    1455 1440
     
    
    1441
    +    fun shutDown() : Nothing {
    
    1442
    +        finishAndRemoveTask()
    
    1443
    +        exitProcess(0)
    
    1444
    +    }
    
    1445
    +
    
    1456 1446
         override fun onBootstrapStateChange(state: String) = Unit
    
    1457 1447
         override fun onBootstrapStageChange(stage: TorConnectStage) = Unit
    
    1458 1448
         override fun onBootstrapProgress(progress: Double, hasWarnings: Boolean) = Unit
    

  • mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
    ... ... @@ -1394,7 +1394,6 @@ class HomeFragment : Fragment(), UserInteractionHandler {
    1394 1394
         }
    
    1395 1395
     
    
    1396 1396
         override fun onBackPressed(): Boolean {
    
    1397
    -        requireActivity().finish()
    
    1398
    -        return true
    
    1397
    +        (requireActivity() as HomeActivity).shutDown()
    
    1399 1398
         }
    
    1400 1399
     }

  • mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt
    ... ... @@ -149,7 +149,7 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
    149 149
         private fun setBackButton(screen: ConnectAssistUiState) {
    
    150 150
             binding.backButton.visibility = if (screen.backButtonVisible) View.VISIBLE else View.INVISIBLE
    
    151 151
             binding.backButton.setOnClickListener {
    
    152
    -            torConnectionAssistViewModel.handleBackButtonPressed()
    
    152
    +            onBackPressed()
    
    153 153
             }
    
    154 154
         }
    
    155 155
     
    
    ... ... @@ -314,7 +314,8 @@ class TorConnectionAssistFragment : Fragment(), UserInteractionHandler {
    314 314
         }
    
    315 315
     
    
    316 316
         override fun onBackPressed(): Boolean {
    
    317
    -        return torConnectionAssistViewModel.handleBackButtonPressed()
    
    317
    +        torConnectionAssistViewModel.handleBackButtonPressed(requireActivity() as HomeActivity)
    
    318
    +        return true
    
    318 319
         }
    
    319 320
     
    
    320 321
     }

  • mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt
    ... ... @@ -10,6 +10,7 @@ import androidx.lifecycle.AndroidViewModel
    10 10
     import androidx.lifecycle.MutableLiveData
    
    11 11
     import kotlinx.coroutines.flow.MutableStateFlow
    
    12 12
     import kotlinx.coroutines.flow.StateFlow
    
    13
    +import org.mozilla.fenix.HomeActivity
    
    13 14
     import org.mozilla.fenix.ext.components
    
    14 15
     
    
    15 16
     class TorConnectionAssistViewModel(
    
    ... ... @@ -150,10 +151,10 @@ class TorConnectionAssistViewModel(
    150 151
             return true
    
    151 152
         }
    
    152 153
     
    
    153
    -    fun handleBackButtonPressed(): Boolean {
    
    154
    +    fun handleBackButtonPressed(homeActivity: HomeActivity) {
    
    154 155
             when (torConnectScreen.value) {
    
    155
    -            ConnectAssistUiState.Splash -> return false
    
    156
    -            ConnectAssistUiState.Configuring -> return false
    
    156
    +            ConnectAssistUiState.Splash -> homeActivity.shutDown()
    
    157
    +            ConnectAssistUiState.Configuring -> homeActivity.shutDown()
    
    157 158
                 ConnectAssistUiState.Connecting -> cancelTorBootstrap()
    
    158 159
                 ConnectAssistUiState.InternetError -> {
    
    159 160
                     _torController.lastKnownError = null
    
    ... ... @@ -191,6 +192,5 @@ class TorConnectionAssistViewModel(
    191 192
                     _torConnectScreen.value = ConnectAssistUiState.LocationCheck
    
    192 193
                 }
    
    193 194
             }
    
    194
    -        return true
    
    195 195
         }
    
    196 196
     }