From 9b6fd9047d3d6198b2f5c47f4f88f76aa3061c0e Mon Sep 17 00:00:00 2001 From: Arturo Mejia Date: Tue, 28 Jun 2022 15:26:54 -0400 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/25213: Add tabs prioritization experiment --- .experimenter.yaml | 8 ++++++++ .../main/java/org/mozilla/fenix/components/Core.kt | 12 +++++++++--- nimbus.fml.yaml | 8 ++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/.experimenter.yaml b/.experimenter.yaml index 0873bd28a4..ad838f3477 100644 --- a/.experimenter.yaml +++ b/.experimenter.yaml @@ -7,6 +7,14 @@ default-browser-message: message-location: type: string description: Where is the message to be put. +engine-settings: + description: Contains a set of settings for controlling the web engine configurations. + hasExposure: true + exposureDescription: "" + variables: + tabs-prioritization-enabled: + type: boolean + description: "If true, enables tabs prioritization feature." homescreen: description: The homescreen that the user goes to when they press home or new tab. hasExposure: true diff --git a/app/src/main/java/org/mozilla/fenix/components/Core.kt b/app/src/main/java/org/mozilla/fenix/components/Core.kt index cc21ee48a6..c71eebb78b 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Core.kt @@ -88,6 +88,7 @@ import org.mozilla.fenix.historymetadata.DefaultHistoryMetadataService import org.mozilla.fenix.historymetadata.HistoryMetadataMiddleware import org.mozilla.fenix.historymetadata.HistoryMetadataService import org.mozilla.fenix.media.MediaSessionService +import org.mozilla.fenix.nimbus.FxNimbus import org.mozilla.fenix.perf.StrictModeManager import org.mozilla.fenix.perf.lazyMonitored import org.mozilla.fenix.settings.SupportUtils @@ -224,6 +225,8 @@ class Core( * The [BrowserStore] holds the global [BrowserState]. */ val store by lazyMonitored { + val tabsPrioritizationEnable = + FxNimbus.features.engineSettings.value().tabsPrioritizationEnabled val middlewareList = mutableListOf( LastAccessMiddleware(), @@ -244,9 +247,12 @@ class Core( AdsTelemetryMiddleware(adsTelemetry), LastMediaAccessMiddleware(), HistoryMetadataMiddleware(historyMetadataService), - SearchTermTabGroupMiddleware(), - SessionPrioritizationMiddleware() - ) + SearchTermTabGroupMiddleware() + ) + if (tabsPrioritizationEnable) { + listOf(SessionPrioritizationMiddleware()) + } else { + emptyList() + } BrowserStore( initialState = BrowserState( diff --git a/nimbus.fml.yaml b/nimbus.fml.yaml index a6c0aece53..c77994e213 100644 --- a/nimbus.fml.yaml +++ b/nimbus.fml.yaml @@ -203,6 +203,14 @@ features: value: enabled: true + engine-settings: + description: Contains a set of settings for controlling the web engine configurations. + variables: + tabs-prioritization-enabled: + description: If true, enables tabs prioritization feature. + type: Boolean + default: true + types: objects: MessageData: