From cb755e7ba4874655003cb9dca9fb34b3c63e6b82 Mon Sep 17 00:00:00 2001 From: Sebastian Kaspari Date: Mon, 30 Nov 2020 11:38:42 +0100 Subject: [PATCH] [fenix] Issue https://github.com/mozilla-mobile/fenix/issues/12731: Log and record breadcrumb when onTrimMemory() gets invoked. --- .../java/org/mozilla/fenix/FenixApplication.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index 67299d145..34296a696 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -22,6 +22,7 @@ import kotlinx.coroutines.launch import mozilla.appservices.Megazord import mozilla.components.browser.session.Session import mozilla.components.browser.state.action.SystemAction +import mozilla.components.concept.base.crash.Breadcrumb import mozilla.components.concept.push.PushProcessor import mozilla.components.feature.addons.update.GlobalAddonDependencyProvider import mozilla.components.lib.crash.CrashReporter @@ -296,6 +297,21 @@ open class FenixApplication : LocaleAwareApplication(), Provider { override fun onTrimMemory(level: Int) { super.onTrimMemory(level) + // Additional logging and breadcrumb to debug memory issues: + // https://github.com/mozilla-mobile/fenix/issues/12731 + + logger.info("onTrimMemory(), level=$level, main=${isMainProcess()}") + + components.analytics.crashReporter.recordCrashBreadcrumb(Breadcrumb( + category = "Memory", + message = "onTrimMemory()", + data = mapOf( + "level" to level.toString(), + "main" to isMainProcess().toString() + ), + level = Breadcrumb.Level.INFO + )) + runOnlyInMainProcess { components.core.icons.onTrimMemory(level) components.core.store.dispatch(SystemAction.LowMemoryAction(level))