install extensions early

This commit is contained in:
Fabian Freund
2025-12-17 07:41:24 +01:00
parent 577712b316
commit f8293d2926
@@ -23,6 +23,7 @@ import mozilla.components.concept.fetch.Client
import mozilla.components.feature.webcompat.WebCompatFeature import mozilla.components.feature.webcompat.WebCompatFeature
import mozilla.components.support.base.log.Log import mozilla.components.support.base.log.Log
import mozilla.components.support.base.log.logger.Logger import mozilla.components.support.base.log.logger.Logger
import mozilla.components.support.webextensions.BuiltInWebExtensionController
import org.mozilla.geckoview.ContentBlocking import org.mozilla.geckoview.ContentBlocking
import org.mozilla.geckoview.GeckoRuntime import org.mozilla.geckoview.GeckoRuntime
import org.mozilla.geckoview.GeckoRuntimeSettings import org.mozilla.geckoview.GeckoRuntimeSettings
@@ -41,24 +42,30 @@ object EngineProvider {
val builder = GeckoRuntimeSettings.Builder() val builder = GeckoRuntimeSettings.Builder()
val contentBlocking = ContentBlocking.Settings.Builder(); val contentBlocking = ContentBlocking.Settings.Builder();
contentBlocking.bounceTrackingProtectionMode(when(components.contentBlocking.bounceTrackingProtectionMode) { contentBlocking.bounceTrackingProtectionMode(
BounceTrackingProtectionMode.ENABLED -> EngineSession.BounceTrackingProtectionMode.ENABLED.mode when (components.contentBlocking.bounceTrackingProtectionMode) {
BounceTrackingProtectionMode.DISABLED -> EngineSession.BounceTrackingProtectionMode.DISABLED.mode BounceTrackingProtectionMode.ENABLED -> EngineSession.BounceTrackingProtectionMode.ENABLED.mode
BounceTrackingProtectionMode.ENABLED_STANDBY -> EngineSession.BounceTrackingProtectionMode.ENABLED_STANDBY.mode BounceTrackingProtectionMode.DISABLED -> EngineSession.BounceTrackingProtectionMode.DISABLED.mode
BounceTrackingProtectionMode.ENABLED_DRY_RUN -> EngineSession.BounceTrackingProtectionMode.ENABLED_DRY_RUN.mode BounceTrackingProtectionMode.ENABLED_STANDBY -> EngineSession.BounceTrackingProtectionMode.ENABLED_STANDBY.mode
}) BounceTrackingProtectionMode.ENABLED_DRY_RUN -> EngineSession.BounceTrackingProtectionMode.ENABLED_DRY_RUN.mode
}
)
contentBlocking.queryParameterStrippingEnabled(when(components.contentBlocking.queryParameterStripping) { contentBlocking.queryParameterStrippingEnabled(
QueryParameterStripping.ENABLED -> true when (components.contentBlocking.queryParameterStripping) {
QueryParameterStripping.DISABLED -> false QueryParameterStripping.ENABLED -> true
QueryParameterStripping.PRIVATE_ONLY -> false QueryParameterStripping.DISABLED -> false
}) QueryParameterStripping.PRIVATE_ONLY -> false
}
)
contentBlocking.queryParameterStrippingPrivateBrowsingEnabled(when(components.contentBlocking.queryParameterStripping) { contentBlocking.queryParameterStrippingPrivateBrowsingEnabled(
QueryParameterStripping.ENABLED -> true when (components.contentBlocking.queryParameterStripping) {
QueryParameterStripping.DISABLED -> false QueryParameterStripping.ENABLED -> true
QueryParameterStripping.PRIVATE_ONLY -> true QueryParameterStripping.DISABLED -> false
}) QueryParameterStripping.PRIVATE_ONLY -> true
}
)
contentBlocking.queryParameterStrippingAllowList(components.contentBlocking.queryParameterStrippingAllowList) contentBlocking.queryParameterStrippingAllowList(components.contentBlocking.queryParameterStrippingAllowList)
contentBlocking.queryParameterStrippingStripList(components.contentBlocking.queryParameterStrippingStripList) contentBlocking.queryParameterStrippingStripList(components.contentBlocking.queryParameterStrippingStripList)
@@ -82,7 +89,12 @@ object EngineProvider {
return runtime!! return runtime!!
} }
fun createEngine(context: Context, defaultSettings: DefaultSettings, extensionEvents: BrowserExtensionEvents, stateEvents: GeckoStateEvents): Engine { fun createEngine(
context: Context,
defaultSettings: DefaultSettings,
extensionEvents: BrowserExtensionEvents,
stateEvents: GeckoStateEvents
): Engine {
Logger.debug("Creating Engine") Logger.debug("Creating Engine")
val runtime = getOrCreateRuntime(context) val runtime = getOrCreateRuntime(context)
@@ -93,6 +105,19 @@ object EngineProvider {
ContainerProxyFeature.install(it, stateEvents) ContainerProxyFeature.install(it, stateEvents)
BrowserExtensionFeature.install(it, extensionEvents) BrowserExtensionFeature.install(it, extensionEvents)
MLEngineFeature.install(it) MLEngineFeature.install(it)
//Install extensions early
BuiltInWebExtensionController(
"readability-extract@weblibre.eu",
"resource://android/assets/extensions/readability_extract/",
"mozacReaderExtract",
).install(it)
BuiltInWebExtensionController(
"readerview@mozac.org",
"resource://android/assets/extensions/readerview/",
"mozacReaderview",
).install(it)
} }
} }