mirror of
https://github.com/fork-maintainers/iceraven-browser
synced 2024-11-19 09:25:34 +00:00
[fenix] Closes https://github.com/mozilla-mobile/fenix/issues/7762: Initialize Glean later in Fennec builds.
This commit is contained in:
parent
ff6ccd2a8d
commit
8dcea31840
@ -57,6 +57,9 @@ enum class ReleaseChannel {
|
||||
|
||||
val isFennec: Boolean
|
||||
get() = this in fennecChannels
|
||||
|
||||
val isFenix: Boolean
|
||||
get() = !isFennec
|
||||
}
|
||||
|
||||
object Config {
|
||||
|
@ -59,21 +59,22 @@ open class FenixApplication : LocaleAwareApplication() {
|
||||
return
|
||||
}
|
||||
|
||||
if (Config.channel.isFenix) {
|
||||
// We need to always initialize Glean and do it early here.
|
||||
// It is important that this initialization happens *here* before calling into
|
||||
// setupInMainProcessOnly() which behaves differently for fenix and fennec builds.
|
||||
val enableGlean = if (Config.channel.isFennec) {
|
||||
// We are disabling Glean here because for Fennec builds we may not know yet whether
|
||||
// we can enable telemetry yet. We first need to migrate the setting from Fennec to
|
||||
// know the user's choice. The blocking migration in `MigratingFenixApplication` will
|
||||
// notify glean once the value has been migrated.
|
||||
false
|
||||
} else {
|
||||
// We initialize Glean with telemetry enabled (or disabled) early here so that we do not
|
||||
// end up loosing data for components that collect telemetry very early.
|
||||
settings().isTelemetryEnabled
|
||||
// Note that we are only initializing Glean here for "fenix" builds. "fennec" builds
|
||||
// will initialize in MigratingFenixApplication because we first need to migrate the
|
||||
// user's choice from Fennec.
|
||||
initializeGlean()
|
||||
}
|
||||
logger.debug("Initializing Glean (uploadEnabled=$enableGlean, isFennec=${Config.channel.isFennec})")
|
||||
|
||||
setupInMainProcessOnly()
|
||||
}
|
||||
|
||||
protected fun initializeGlean() {
|
||||
val telemetryEnabled = settings().isTelemetryEnabled
|
||||
|
||||
logger.debug("Initializing Glean (uploadEnabled=$telemetryEnabled, isFennec=${Config.channel.isFennec})")
|
||||
|
||||
Glean.initialize(
|
||||
applicationContext = this,
|
||||
configuration = Configuration(
|
||||
@ -81,10 +82,8 @@ open class FenixApplication : LocaleAwareApplication() {
|
||||
httpClient = ConceptFetchHttpUploader(
|
||||
lazy(LazyThreadSafetyMode.NONE) { components.core.client }
|
||||
)),
|
||||
uploadEnabled = enableGlean
|
||||
uploadEnabled = telemetryEnabled
|
||||
)
|
||||
|
||||
setupInMainProcessOnly()
|
||||
}
|
||||
|
||||
@CallSuper
|
||||
|
@ -38,6 +38,10 @@ class MigratingFenixApplication : FenixApplication() {
|
||||
// These migrations need to run before regular initialization happens.
|
||||
migrateBlocking()
|
||||
|
||||
// Now that we have migrated from Fennec whether the user wants to enable telemetry we can
|
||||
// initialize Glean
|
||||
initializeGlean()
|
||||
|
||||
// Fenix application initialization can happen now.
|
||||
super.setupInMainProcessOnly()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user