parent
633bc4f2f2
commit
6e06c7fda1
|
@ -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() {
|
||||
|
|
Loading…
Reference in New Issue