Matthew Finkel pushed to branch android-components-60.0.3-10.0-1 at The Tor Project / Applications / android-components
Commits:
-
9eb30f13
by Alex Catarineu at 2020-10-21T22:15:39+02:00
-
6b75c81e
by Matthew Finkel at 2020-10-21T22:09:37+00:00
2 changed files:
- components/support/migration/src/main/java/mozilla/components/support/migration/FennecMigrator.kt
- components/support/migration/src/main/java/mozilla/components/support/migration/GeckoMigration.kt
Changes:
| ... | ... | @@ -975,7 +975,7 @@ class FennecMigrator private constructor( |
| 975 | 975 |
|
| 976 | 976 |
return try {
|
| 977 | 977 |
logger.debug("Migrating gecko files...")
|
| 978 |
- val result = GeckoMigration.migrate(profile.path, migrationVersion)
|
|
| 978 |
+ val result = GeckoMigration.migrate(profile.path, migrationVersion, context)
|
|
| 979 | 979 |
logger.debug("Migrated gecko files.")
|
| 980 | 980 |
|
| 981 | 981 |
if (result is Result.Failure<GeckoMigrationResult>) {
|
| ... | ... | @@ -4,6 +4,7 @@ |
| 4 | 4 |
|
| 5 | 5 |
package mozilla.components.support.migration
|
| 6 | 6 |
|
| 7 |
+import android.content.Context
|
|
| 7 | 8 |
import android.util.AtomicFile
|
| 8 | 9 |
import androidx.annotation.VisibleForTesting
|
| 9 | 10 |
import mozilla.components.support.ktx.util.writeString
|
| ... | ... | @@ -95,7 +96,8 @@ internal object GeckoMigration { |
| 95 | 96 |
*/
|
| 96 | 97 |
fun migrate(
|
| 97 | 98 |
profilePath: String,
|
| 98 |
- migrationVersion: Int
|
|
| 99 |
+ migrationVersion: Int,
|
|
| 100 |
+ context: Context
|
|
| 99 | 101 |
): Result<GeckoMigrationResult> {
|
| 100 | 102 |
// GeckoView will happily pick up the profile from Fennec and reuse all data in it. So this
|
| 101 | 103 |
// migration is mostly focused on removing all prefs that we do not want to reuse.
|
| ... | ... | @@ -118,6 +120,23 @@ internal object GeckoMigration { |
| 118 | 120 |
}.toList()
|
| 119 | 121 |
}
|
| 120 | 122 |
|
| 123 |
+ val secLevel = prefsjs.useLines {
|
|
| 124 |
+ // The prefs are auto-generated, so we can expect the offset to be always the same
|
|
| 125 |
+ it.find { line -> line.startsWith("$USER_PREF(\"extensions.torbutton.security_slider\"") }
|
|
| 126 |
+ ?.substring(50, 51)?.toIntOrNull()
|
|
| 127 |
+ }
|
|
| 128 |
+ if (secLevel != null && secLevel > 0 && secLevel < 4) {
|
|
| 129 |
+ val prefVal = when (secLevel) {
|
|
| 130 |
+ 1 -> "pref_key_tor_security_level_safest_option"
|
|
| 131 |
+ else -> "pref_key_tor_security_level_safer_option"
|
|
| 132 |
+ }
|
|
| 133 |
+ val fenixAppPrefs = context.getSharedPreferences(FennecSettingsMigration.FENIX_SHARED_PREFS_NAME, Context.MODE_PRIVATE)
|
|
| 134 |
+ fenixAppPrefs.edit()
|
|
| 135 |
+ .putBoolean("pref_key_tor_security_level_standard_option", false)
|
|
| 136 |
+ .putBoolean(prefVal, true)
|
|
| 137 |
+ .apply()
|
|
| 138 |
+ }
|
|
| 139 |
+ |
|
| 121 | 140 |
return if (transformed.isEmpty()) {
|
| 122 | 141 |
removePrefsFile(prefsjs)
|
| 123 | 142 |
} else {
|