From fe92332ff180294d16ac91fe74772f544a7f67ce Mon Sep 17 00:00:00 2001 From: Grisha Kruglov Date: Tue, 14 Jan 2020 01:53:52 -0800 Subject: [PATCH] Migrate 'settings' before app init --- .../org/mozilla/fenix/MigratingFenixApplication.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/migration/java/org/mozilla/fenix/MigratingFenixApplication.kt b/app/src/migration/java/org/mozilla/fenix/MigratingFenixApplication.kt index a3df57d77..a2a089a4b 100644 --- a/app/src/migration/java/org/mozilla/fenix/MigratingFenixApplication.kt +++ b/app/src/migration/java/org/mozilla/fenix/MigratingFenixApplication.kt @@ -15,7 +15,6 @@ import mozilla.components.support.migration.state.MigrationStore class MigratingFenixApplication : FenixApplication() { val migrator by lazy { FennecMigrator.Builder(this, this.components.analytics.crashReporter) - .migrateSettings() .migrateOpenTabs(this.components.core.sessionManager) .migrateHistory(this.components.core.historyStorage) .migrateBookmarks(this.components.core.bookmarksStorage) @@ -30,16 +29,22 @@ class MigratingFenixApplication : FenixApplication() { val migrationStore by lazy { MigrationStore() } override fun setupInMainProcessOnly() { - migrateGeckoBlocking() + // These migrations need to run before regular initialization happens. + migrateBlocking() + // Fenix application initialization can happen now. super.setupInMainProcessOnly() + // The rest of the migrations can happen now. migrator.startMigrationIfNeeded(migrationStore, MigrationService::class.java) } - private fun migrateGeckoBlocking() { + private fun migrateBlocking() { val migrator = FennecMigrator.Builder(this, this.components.analytics.crashReporter) .migrateGecko() + // Telemetry may have been disabled in Fennec, so we need to migrate Settings first + // to correctly initialize telemetry. + .migrateSettings() .build() runBlocking {