From 6e06c7fda131d3f7ccb183fa2004eeb2049562b0 Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Tue, 21 Jul 2020 13:41:16 -0700 Subject: [PATCH] No issue: clean up initVisualCompletenessQueue... method. A no-op clean up. --- .../org/mozilla/fenix/FenixApplication.kt | 74 +++++++++++-------- 1 file changed, 43 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index ac8800818..ef0379ce3 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -156,46 +156,58 @@ open class FenixApplication : LocaleAwareApplication() { private fun initVisualCompletenessQueueAndQueueTasks() { val taskQueue = components.performance.visualCompletenessQueue - registerActivityLifecycleCallbacks(PerformanceActivityLifecycleCallbacks(taskQueue)) - // Enable the service-experiments component to be initialized after visual completeness - // for performance wins. - if (settings().isExperimentationEnabled) { - taskQueue.runIfReadyOrQueue { - Experiments.initialize( - applicationContext = applicationContext, - onExperimentsUpdated = { - ExperimentsManager.initSearchWidgetExperiment(this) - }, - configuration = mozilla.components.service.experiments.Configuration( - httpClient = components.core.client, - kintoEndpoint = KINTO_ENDPOINT_PROD + fun initQueue() { + registerActivityLifecycleCallbacks(PerformanceActivityLifecycleCallbacks(taskQueue)) + } + + fun queueInitExperiments() { + if (settings().isExperimentationEnabled) { + taskQueue.runIfReadyOrQueue { + Experiments.initialize( + applicationContext = applicationContext, + onExperimentsUpdated = { + ExperimentsManager.initSearchWidgetExperiment(this) + }, + configuration = mozilla.components.service.experiments.Configuration( + httpClient = components.core.client, + kintoEndpoint = KINTO_ENDPOINT_PROD + ) ) - ) - ExperimentsManager.initSearchWidgetExperiment(this) + ExperimentsManager.initSearchWidgetExperiment(this) + } + } else { + // We should make a better way to opt out for when we have more experiments + // See https://github.com/mozilla-mobile/fenix/issues/6278 + ExperimentsManager.optOutSearchWidgetExperiment(this) } - } else { - // We should make a better way to opt out for when we have more experiments - // See https://github.com/mozilla-mobile/fenix/issues/6278 - ExperimentsManager.optOutSearchWidgetExperiment(this) } - components.performance.visualCompletenessQueue.runIfReadyOrQueue { - GlobalScope.launch(Dispatchers.IO) { - logger.info("Running post-visual completeness tasks...") - logElapsedTime(logger, "Storage initialization") { - components.core.historyStorage.warmUp() - components.core.bookmarksStorage.warmUp() - components.core.passwordsStorage.warmUp() + fun queueInitStorageAndServices() { + components.performance.visualCompletenessQueue.runIfReadyOrQueue { + GlobalScope.launch(Dispatchers.IO) { + logger.info("Running post-visual completeness tasks...") + logElapsedTime(logger, "Storage initialization") { + components.core.historyStorage.warmUp() + components.core.bookmarksStorage.warmUp() + components.core.passwordsStorage.warmUp() + } } - } - // Account manager initialization needs to happen on the main thread. - GlobalScope.launch(Dispatchers.Main) { - logElapsedTime(logger, "Kicking-off account manager") { - components.backgroundServices.accountManager + // Account manager initialization needs to happen on the main thread. + GlobalScope.launch(Dispatchers.Main) { + logElapsedTime(logger, "Kicking-off account manager") { + components.backgroundServices.accountManager + } } } } + + initQueue() + + // We init these items in the visual completeness queue to avoid them initing in the critical + // startup path, before the UI finishes drawing (i.e. visual completeness). + queueInitExperiments() + queueInitStorageAndServices() } private fun startMetricsIfEnabled() {