diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index c181a8a34..80253554c 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -37,6 +37,7 @@ import org.mozilla.fenix.components.Components import org.mozilla.fenix.ext.settings import org.mozilla.fenix.session.NotificationSessionObserver import org.mozilla.fenix.session.VisibilityLifecycleCallback +import org.mozilla.fenix.utils.BrowsersCache @SuppressLint("Registered") @Suppress("TooManyFunctions") @@ -104,6 +105,7 @@ open class FenixApplication : LocaleAwareApplication() { setDayNightTheme() enableStrictMode() + warmBrowsersCache() // Enable the service-experiments component if (settings().isExperimentationEnabled && Config.channel.isReleaseOrBeta) { @@ -260,6 +262,14 @@ open class FenixApplication : LocaleAwareApplication() { } } + private fun warmBrowsersCache() { + // We avoid blocking the main thread for BrowsersCache on startup by loading it on + // background thread. + GlobalScope.launch(Dispatchers.Default) { + BrowsersCache.all(this@FenixApplication) + } + } + private fun enableStrictMode() { if (Config.channel.isDebug) { StrictMode.setThreadPolicy(