From 0c54ed58ab55bfbe118bcefe9866b87235e54c3b Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Wed, 13 Jan 2021 15:16:03 -0800 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/17447: add intentional delay to cold start up in debug and nightly. I validated: - that the log statement appeared in Nightly but not in Beta. - that the local runtimes of our perftest increased (the median diff is 124ms) --- app/src/main/java/org/mozilla/fenix/FeatureFlags.kt | 7 +++++++ app/src/main/java/org/mozilla/fenix/FenixApplication.kt | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index bd73a69db6..d1980af030 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -39,6 +39,13 @@ object FeatureFlags { // users are still experiencing crashes. const val nimbusExperiments = false + /** + * Enables an intentional regression to validate perftest alerting. See + * https://github.com/mozilla-mobile/fenix/issues/17447 for details. This + * is expected to be removed within several days. + */ + val intentionalRegressionToValidatePerfTestAlerting = Config.channel.isNightlyOrDebug + /** * Enables the new MediaSession API. */ diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index ee7109f1f4..5450f25c7d 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -119,6 +119,13 @@ open class FenixApplication : LocaleAwareApplication(), Provider { @CallSuper open fun setupInMainProcessOnly() { + // See feature flags kdoc for details. + if (FeatureFlags.intentionalRegressionToValidatePerfTestAlerting) { + logger.info("Intentional thread sleep. See #17447") + @Suppress("MagicNumber") // it's fine for a quick patch. + Thread.sleep(100) + } + run { // Attention: Do not invoke any code from a-s in this scope. val megazordSetup = setupMegazord()