From 4922e5d09df650a1bf952dbd2a6652fdaa4669c3 Mon Sep 17 00:00:00 2001 From: Jonathan Almeida Date: Wed, 31 Jul 2019 19:20:34 -0400 Subject: [PATCH] No issue: Move PublicSuffixList to root component With the PublicSuffixList class in Utilities, the first instantiation of it (prefetching in onCreate), causes the Utilities to instantiate and thus slowing down startup by needing the SearchEngineManager from instantiating as well. Moving this back to the root component fixes the immediate perf issue. Co-authored-by: Will Hawkins --- app/src/main/java/org/mozilla/fenix/HomeActivity.kt | 2 +- app/src/main/java/org/mozilla/fenix/components/Components.kt | 2 ++ app/src/main/java/org/mozilla/fenix/components/Utilities.kt | 3 --- app/src/main/java/org/mozilla/fenix/ext/String.kt | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index 8a1f88ab77..bc951f1247 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -75,7 +75,7 @@ open class HomeActivity : AppCompatActivity(), ShareFragment.TabsSharedCallback override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - components.utils.publicSuffixList.prefetch() + components.publicSuffixList.prefetch() setupThemeAndBrowsingMode() setContentView(R.layout.activity_home) 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 bf90533f1c..013f522253 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Components.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Components.kt @@ -5,6 +5,7 @@ package org.mozilla.fenix.components import android.content.Context +import mozilla.components.lib.publicsuffixlist.PublicSuffixList import org.mozilla.fenix.test.Mockable /** @@ -21,4 +22,5 @@ class Components(private val context: Context) { val useCases by lazy { UseCases(context, core.sessionManager, core.engine.settings, search.searchEngineManager) } val utils by lazy { Utilities(context, core.sessionManager, useCases.sessionUseCases, useCases.searchUseCases) } val analytics by lazy { Analytics(context) } + val publicSuffixList by lazy { PublicSuffixList(context) } } diff --git a/app/src/main/java/org/mozilla/fenix/components/Utilities.kt b/app/src/main/java/org/mozilla/fenix/components/Utilities.kt index c95f6c6a6a..4f28afbeba 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Utilities.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Utilities.kt @@ -10,7 +10,6 @@ import mozilla.components.feature.customtabs.CustomTabIntentProcessor import mozilla.components.feature.intent.TabIntentProcessor import mozilla.components.feature.search.SearchUseCases import mozilla.components.feature.session.SessionUseCases -import mozilla.components.lib.publicsuffixlist.PublicSuffixList import org.mozilla.fenix.test.Mockable /** @@ -38,6 +37,4 @@ class Utilities( val customTabIntentProcessor by lazy { CustomTabIntentProcessor(sessionManager, sessionUseCases.loadUrl, context.resources) } - - val publicSuffixList by lazy { PublicSuffixList(context) } } diff --git a/app/src/main/java/org/mozilla/fenix/ext/String.kt b/app/src/main/java/org/mozilla/fenix/ext/String.kt index dab11c3ac6..df7108780d 100644 --- a/app/src/main/java/org/mozilla/fenix/ext/String.kt +++ b/app/src/main/java/org/mozilla/fenix/ext/String.kt @@ -37,7 +37,7 @@ fun String.urlToTrimmedHost(context: Context): String { return try { val host = toUri().hostWithoutCommonPrefixes ?: return this runBlocking { - context.components.utils.publicSuffixList.stripPublicSuffix(host).await() + context.components.publicSuffixList.stripPublicSuffix(host).await() } } catch (e: MalformedURLException) { this