diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index b4f37a0af..6dfd7a069 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -112,11 +112,8 @@ import org.mozilla.fenix.session.VisibilityLifecycleCallback import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.utils.Settings.Companion.TOP_SITES_PROVIDER_MAX_THRESHOLD import org.mozilla.fenix.wallpapers.Wallpaper -import java.io.File -import java.io.FileInputStream import java.util.UUID import java.util.concurrent.TimeUnit -import java.util.zip.ZipInputStream import kotlin.math.roundToLong private const val RAM_THRESHOLD_MEGABYTES = 1024 @@ -525,76 +522,13 @@ open class FenixApplication : LocaleAwareApplication(), Provider { * thread, early in the app startup sequence. */ private fun beginSetupMegazord() { - try { - // Note: Megazord.init() must be called as soon as possible ... - Megazord.init() - - initializeRustErrors(components.analytics.crashReporter) - // ... but RustHttpConfig.setClient() and RustLog.enable() can be called later. + // Note: Megazord.init() must be called as soon as possible ... + Megazord.init() - RustLog.enable() - } catch (e: UnsatisfiedLinkError) { - @Suppress("TooGenericExceptionCaught") - try { - reportUnsatisfiedLinkErrorBreadcrumbs() - } catch (e: Throwable) { - // This shouldn't happen, but if it does it's better to ignore the exception from - // the breadcrumb code and rethrow the initial exception. - } - throw e - } - } + initializeRustErrors(components.analytics.crashReporter) + // ... but RustHttpConfig.setClient() and RustLog.enable() can be called later. - private fun reportUnsatisfiedLinkErrorBreadcrumbs() { - val breadcrumbStrings = mutableListOf() - val apkPath = applicationContext.getApplicationInfo().sourceDir - breadcrumbStrings.add("APK: $apkPath") - val apkDir = File(apkPath).getParentFile() - val installSourcePackage = if (SDK_INT >= Build.VERSION_CODES.R) { - packageManager.getInstallSourceInfo(packageName).installingPackageName - } else { - @Suppress("DEPRECATION") - packageManager.getInstallerPackageName(packageName) - } - breadcrumbStrings.add("Installer package name: $installSourcePackage") - - val installDirFileSet = if (apkDir != null) { - apkDir.walk() - .filter { it != apkDir && !it.isDirectory() } - .map { it.relativeTo(apkDir).toString() } - .filter { it.startsWith("lib/") } - .toHashSet() - } else { - HashSet() - } - val apkFileSet = ZipInputStream(FileInputStream(apkPath)).use { - generateSequence { it.nextEntry } - .map { it.name } - .filter { it.startsWith("lib/") } - .toHashSet() - } - fun formatFileSet(filenames: Set) = if (filenames.size > 0) { - filenames.joinToString(", ") - } else { - "" - } - val installDirOnly = formatFileSet(installDirFileSet - apkFileSet) - val apkFileOnly = formatFileSet(apkFileSet - installDirFileSet) - val both = formatFileSet(installDirFileSet union apkFileSet) - - breadcrumbStrings.add("Files only inside lib/ dir: $installDirOnly") - breadcrumbStrings.add("Files only inside APK lib/ dir: $apkFileOnly") - breadcrumbStrings.add("Files inside both lib/ dirs: $both") - - for (breadcrumbString in breadcrumbStrings) { - components.analytics.crashReporter.recordCrashBreadcrumb( - Breadcrumb( - category = "Startup", - message = breadcrumbString, - level = Breadcrumb.Level.INFO, - ), - ) - } + RustLog.enable() } @OptIn(DelicateCoroutinesApi::class) // GlobalScope usage