diff --git a/app/src/main/java/org/mozilla/fenix/components/Analytics.kt b/app/src/main/java/org/mozilla/fenix/components/Analytics.kt index 3cd954a5b..da0fe53ea 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Analytics.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Analytics.kt @@ -18,7 +18,9 @@ import mozilla.components.service.nimbus.NimbusApi import mozilla.components.service.nimbus.messaging.FxNimbusMessaging import mozilla.components.service.nimbus.messaging.NimbusMessagingStorage import mozilla.components.service.nimbus.messaging.OnDiskMessageMetadataStorage +import mozilla.components.support.ktx.android.content.isMainProcess import mozilla.components.support.utils.BrowsersCache +import mozilla.components.support.utils.RunWhenReadyQueue import org.mozilla.fenix.BuildConfig import org.mozilla.fenix.Config import org.mozilla.fenix.HomeActivity @@ -46,6 +48,7 @@ import org.mozilla.geckoview.BuildConfig.MOZ_UPDATE_CHANNEL */ class Analytics( private val context: Context, + private val runWhenReadyQueue: RunWhenReadyQueue, ) { val crashReporter: CrashReporter by lazyMonitored { val services = mutableListOf() @@ -75,6 +78,13 @@ class Analytics( sentryProjectUrl = getSentryProjectUrl(), ) + // We only want to initialize Sentry on startup on the main process. + if (context.isMainProcess()) { + runWhenReadyQueue.runIfReadyOrQueue { + sentryService.initIfNeeded() + } + } + services.add(sentryService) } diff --git a/app/src/main/java/org/mozilla/fenix/components/Components.kt b/app/src/main/java/org/mozilla/fenix/components/Components.kt index d077ca297..23db1ec60 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Components.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Components.kt @@ -158,7 +158,7 @@ class Components(private val context: Context) { AddonManager(core.store, core.engine, addonsProvider, addonUpdater) } - val analytics by lazyMonitored { Analytics(context) } + val analytics by lazyMonitored { Analytics(context, performance.visualCompletenessQueue.queue) } val publicSuffixList by lazyMonitored { PublicSuffixList(context) } val clipboardHandler by lazyMonitored { ClipboardHandler(context) } val performance by lazyMonitored { PerformanceComponent() }