diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml
index 8161de6d7c4e..625795d40c42 100644
--- a/app/src/debug/AndroidManifest.xml
+++ b/app/src/debug/AndroidManifest.xml
@@ -13,9 +13,22 @@
-
+
-
\ No newline at end of file
+ android:name="org.mozilla.fenix.DebugFenixApplication">
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/fenixNightly/AndroidManifest.xml b/app/src/fenixNightly/AndroidManifest.xml
new file mode 100644
index 000000000000..5fdb32de41dc
--- /dev/null
+++ b/app/src/fenixNightly/AndroidManifest.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 c45714241f1e..298181e6d9f6 100644
--- a/app/src/main/java/org/mozilla/fenix/components/Components.kt
+++ b/app/src/main/java/org/mozilla/fenix/components/Components.kt
@@ -31,7 +31,14 @@ class Components(private val context: Context) {
)
}
val intentProcessors by lazy {
- IntentProcessors(context, core.sessionManager, useCases.sessionUseCases, useCases.searchUseCases)
+ IntentProcessors(
+ context,
+ core.sessionManager,
+ useCases.sessionUseCases,
+ useCases.searchUseCases,
+ core.client,
+ core.customTabsStore
+ )
}
val analytics by lazy { Analytics(context) }
val publicSuffixList by lazy { PublicSuffixList(context) }
diff --git a/app/src/main/java/org/mozilla/fenix/components/IntentProcessors.kt b/app/src/main/java/org/mozilla/fenix/components/IntentProcessors.kt
index 59e7c14c9bab..230b126113ca 100644
--- a/app/src/main/java/org/mozilla/fenix/components/IntentProcessors.kt
+++ b/app/src/main/java/org/mozilla/fenix/components/IntentProcessors.kt
@@ -6,12 +6,16 @@ package org.mozilla.fenix.components
import android.content.Context
import mozilla.components.browser.session.SessionManager
+import mozilla.components.concept.fetch.Client
import mozilla.components.feature.customtabs.CustomTabIntentProcessor
+import mozilla.components.feature.customtabs.store.CustomTabsServiceStore
import mozilla.components.feature.intent.processing.TabIntentProcessor
import mozilla.components.feature.pwa.ManifestStorage
import mozilla.components.feature.pwa.intent.WebAppIntentProcessor
+import mozilla.components.feature.pwa.intent.TrustedWebActivityIntentProcessor
import mozilla.components.feature.search.SearchUseCases
import mozilla.components.feature.session.SessionUseCases
+import org.mozilla.fenix.BuildConfig
import org.mozilla.fenix.test.Mockable
/**
@@ -22,7 +26,9 @@ class IntentProcessors(
private val context: Context,
private val sessionManager: SessionManager,
private val sessionUseCases: SessionUseCases,
- private val searchUseCases: SearchUseCases
+ private val searchUseCases: SearchUseCases,
+ private val httpClient: Client,
+ private val customTabsStore: CustomTabsServiceStore
) {
/**
* Provides intent processing functionality for ACTION_VIEW and ACTION_SEND intents.
@@ -40,6 +46,14 @@ class IntentProcessors(
val externalAppIntentProcessors by lazy {
listOf(
+ TrustedWebActivityIntentProcessor(
+ sessionManager = sessionManager,
+ loadUrlUseCase = sessionUseCases.loadUrl,
+ httpClient = httpClient,
+ packageManager = context.packageManager,
+ apiKey = BuildConfig.DIGITAL_ASSET_LINKS_TOKEN,
+ store = customTabsStore
+ ),
WebAppIntentProcessor(sessionManager, sessionUseCases.loadUrl, ManifestStorage(context)),
CustomTabIntentProcessor(sessionManager, sessionUseCases.loadUrl, context.resources)
)
diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsService.kt b/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsService.kt
index 8ed621ca6c51..3254d72fac15 100644
--- a/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsService.kt
+++ b/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsService.kt
@@ -6,9 +6,12 @@ package org.mozilla.fenix.customtabs
import mozilla.components.concept.engine.Engine
import mozilla.components.feature.customtabs.AbstractCustomTabsService
+import org.mozilla.fenix.BuildConfig.DIGITAL_ASSET_LINKS_TOKEN
import org.mozilla.fenix.ext.components
class CustomTabsService : AbstractCustomTabsService() {
override val engine: Engine by lazy { applicationContext.components.core.engine }
override val customTabsServiceStore by lazy { applicationContext.components.core.customTabsStore }
+ override val httpClient by lazy { applicationContext.components.core.client }
+ override val apiKey: String? = DIGITAL_ASSET_LINKS_TOKEN
}