Skip to content

Commit 6447960

Browse files
authored
Merge branch 'fork-maintainers:iceraven' into iceraven
2 parents 311f44b + 6528033 commit 6447960

File tree

12 files changed

+36
-78
lines changed

12 files changed

+36
-78
lines changed

.buildconfig.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ variants:
9999
fileName: app-fenix-arm64-v8a-debug.apk
100100
- abi: armeabi-v7a
101101
fileName: app-fenix-armeabi-v7a-debug.apk
102+
- abi: universal
103+
fileName: app-fenix-universal-debug.apk
102104
- abi: x86
103105
fileName: app-fenix-x86-debug.apk
104106
- abi: x86_64
@@ -110,6 +112,8 @@ variants:
110112
fileName: app-fenix-arm64-v8a-release-unsigned.apk
111113
- abi: armeabi-v7a
112114
fileName: app-fenix-armeabi-v7a-release-unsigned.apk
115+
- abi: universal
116+
fileName: app-fenix-universal-release-unsigned.apk
113117
- abi: x86
114118
fileName: app-fenix-x86-release-unsigned.apk
115119
- abi: x86_64
@@ -121,6 +125,8 @@ variants:
121125
fileName: app-fenix-arm64-v8a-nightly-unsigned.apk
122126
- abi: armeabi-v7a
123127
fileName: app-fenix-armeabi-v7a-nightly-unsigned.apk
128+
- abi: universal
129+
fileName: app-fenix-universal-nightly-unsigned.apk
124130
- abi: x86
125131
fileName: app-fenix-x86-nightly-unsigned.apk
126132
- abi: x86_64
@@ -132,6 +138,8 @@ variants:
132138
fileName: app-fenix-arm64-v8a-beta-unsigned.apk
133139
- abi: armeabi-v7a
134140
fileName: app-fenix-armeabi-v7a-beta-unsigned.apk
141+
- abi: universal
142+
fileName: app-fenix-universal-beta-unsigned.apk
135143
- abi: x86
136144
fileName: app-fenix-x86-beta-unsigned.apk
137145
- abi: x86_64
@@ -143,6 +151,8 @@ variants:
143151
fileName: app-fenix-arm64-v8a-benchmark.apk
144152
- abi: armeabi-v7a
145153
fileName: app-fenix-armeabi-v7a-benchmark.apk
154+
- abi: universal
155+
fileName: app-fenix-universal-benchmark.apk
146156
- abi: x86
147157
fileName: app-fenix-x86-benchmark.apk
148158
- abi: x86_64

app/build.gradle

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ import static org.gradle.api.tasks.testing.TestResult.ResultType
4242

4343
apply from: 'benchmark.gradle'
4444

45+
ext.getAbi = { output ->
46+
// Assume that if the ABI isn't set, it's an app bundle or universal APK
47+
output.getFilter(FilterConfiguration.FilterType.ABI.name()) ?: "universal"
48+
}
49+
4550
def isAppBundle = gradle.startParameter.taskNames.any { it.toLowerCase().contains("bundle") }
4651

4752
// Mimic Python: open(os.path.join(buildconfig.topobjdir, 'buildid.h')).readline().split()[2]
@@ -281,6 +286,9 @@ android {
281286
include "arm64-v8a"
282287
} else {
283288
include "x86", "armeabi-v7a", "arm64-v8a", "x86_64"
289+
if (gradle.mozconfig.substs.MOZILLA_OFFICIAL) {
290+
universalApk true
291+
}
284292
}
285293
}
286294
}
@@ -359,13 +367,10 @@ android.applicationVariants.configureEach { variant ->
359367
project.logger.debug("versionName override: $versionName")
360368

361369
variant.outputs.each { output ->
362-
def abi = output.getFilter(FilterConfiguration.FilterType.ABI.name())
363-
if (isAppBundle) {
364-
abi = "AAB"
365-
}
366370
// We use the same version code generator, that we inherited from Fennec, across all channels - even on
367371
// channels that never shipped a Fennec build.
368-
def versionCodeOverride = Config.generateFennecVersionCode(abi, isAppBundle )
372+
def abi = getAbi(output)
373+
def versionCodeOverride = Config.generateFennecVersionCode(abi)
369374

370375
project.logger.debug("versionCode for $abi = $versionCodeOverride")
371376

@@ -857,7 +862,7 @@ tasks.register('printVariants') {
857862
def variants = project.provider {
858863
android.applicationVariants.collect { variant -> [
859864
apks: variant.outputs.collect { output -> [
860-
abi: output.getFilter(FilterConfiguration.FilterType.ABI.name()),
865+
abi: getAbi(output),
861866
fileName: output.outputFile.name
862867
]},
863868
build_type: variant.buildType.name,

app/src/androidTest/java/org/mozilla/fenix/ui/TabbedBrowsingTest.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -496,7 +496,7 @@ class TabbedBrowsingTest : TestSetup() {
496496

497497
@Ignore("Temporarily disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1972361")
498498
@Test
499-
fun privateModeDoNotPersistAfterRestartTest() {
499+
fun privateModeStaysAsDefaultAfterRestartTest() {
500500
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
501501

502502
navigationToolbar {
@@ -508,6 +508,7 @@ class TabbedBrowsingTest : TestSetup() {
508508
restartApp(composeTestRule.activityRule)
509509

510510
homeScreen {
511+
verifyPrivateBrowsingHomeScreenItems()
511512
}.openTabDrawer(composeTestRule) {
512513
}.toggleToNormalTabs {
513514
verifyExistingOpenTabs(defaultWebPage.title)
@@ -533,6 +534,7 @@ class TabbedBrowsingTest : TestSetup() {
533534
closeApp(composeTestRule.activityRule)
534535
restartApp(composeTestRule.activityRule)
535536
homeScreen {
537+
verifyPrivateBrowsingHomeScreenItems()
536538
}.openTabDrawer(composeTestRule) {
537539
verifyNoOpenTabsInPrivateBrowsing()
538540
}

app/src/main/java/org/mozilla/fenix/HomeActivity.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1273,7 +1273,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
12731273
private fun createBrowsingModeManager(intent: Intent?): BrowsingModeManager {
12741274
return DefaultBrowsingModeManager(
12751275
intent = intent,
1276-
store = components.core.store,
12771276
settings = components.settings,
12781277
onModeChange = { newMode ->
12791278
updateSecureWindowFlags(newMode)

app/src/main/java/org/mozilla/fenix/browser/browsingmode/BrowsingModeManager.kt

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
package org.mozilla.fenix.browser.browsingmode
66

77
import android.content.Intent
8-
import mozilla.components.browser.state.selector.getNormalOrPrivateTabs
9-
import mozilla.components.browser.state.store.BrowserStore
108
import mozilla.components.support.utils.toSafeIntent
119
import org.mozilla.fenix.HomeActivity.Companion.PRIVATE_BROWSING_MODE
1210
import org.mozilla.fenix.components.AppStore
@@ -49,13 +47,11 @@ interface BrowsingModeManager {
4947
* persists it to [Settings], and synchronizes it with [AppStore].
5048
*
5149
* @param intent The [Intent] that started the activity.
52-
* @param store The [BrowserStore] to observe the private tabs state from.
5350
* @param settings [Settings] used to persist the current browsing mode in storage.
5451
* @param onModeChange Callback invoked when the browsing mode changes.
5552
*/
5653
class DefaultBrowsingModeManager(
5754
intent: Intent?,
58-
private val store: BrowserStore,
5955
private val settings: Settings,
6056
private val onModeChange: (BrowsingMode) -> Unit,
6157
) : BrowsingModeManager {
@@ -78,9 +74,7 @@ class DefaultBrowsingModeManager(
7874
}
7975

8076
/**
81-
* Returns the [BrowsingMode] set by the [intent] or the last known browsing mode based on
82-
* whether or not the user was in private mode and has any private tabs, otherwise fallback to
83-
* [BrowsingMode.Normal].
77+
* Returns the [BrowsingMode] set by the [intent] or the last known [BrowsingMode].
8478
*/
8579
private fun getModeFromIntentOrLastKnown(intent: Intent?): BrowsingMode {
8680
intent?.toSafeIntent()?.let {
@@ -90,10 +84,6 @@ class DefaultBrowsingModeManager(
9084
}
9185
}
9286

93-
if (settings.lastKnownMode.isPrivate && store.state.getNormalOrPrivateTabs(private = true).isNotEmpty()) {
94-
return BrowsingMode.Private
95-
}
96-
97-
return BrowsingMode.Normal
87+
return settings.lastKnownMode
9888
}
9989
}

app/src/main/res/raw/initial_experiments.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
"channel": "beta",
8989
"userFacingName": "Setup checklist (all users)",
9090
"userFacingDescription": "Android Setup Checklist",
91-
"isEnrollmentPaused": false,
91+
"isEnrollmentPaused": true,
9292
"isRollout": false,
9393
"bucketConfig": {
9494
"randomizationUnit": "nimbus_id",
@@ -168,7 +168,7 @@
168168
],
169169
"targeting": "((android_sdk_version|versionCompare('26') >= 0)) && (app_version|versionCompare('139.!') >= 0)",
170170
"startDate": "2025-07-24",
171-
"enrollmentEndDate": null,
171+
"enrollmentEndDate": "2025-08-18",
172172
"endDate": null,
173173
"proposedDuration": 28,
174174
"proposedEnrollment": 7,

app/src/test/java/org/mozilla/fenix/browser/browsingmode/DefaultBrowsingModeManagerTest.kt

Lines changed: 5 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ import io.mockk.every
1111
import io.mockk.impl.annotations.MockK
1212
import io.mockk.just
1313
import io.mockk.verify
14-
import mozilla.components.browser.state.state.BrowserState
15-
import mozilla.components.browser.state.state.createTab
16-
import mozilla.components.browser.state.store.BrowserStore
1714
import org.junit.Assert.assertEquals
1815
import org.junit.Before
1916
import org.junit.Rule
@@ -85,17 +82,10 @@ class DefaultBrowsingModeManagerTest {
8582
}
8683

8784
@Test
88-
fun `GIVEN browsing mode is not set by intent and private mode with a tab persisted WHEN browsing mode manager is initialized THEN set browsing mode to private`() {
85+
fun `GIVEN last known mode is private mode WHEN browsing mode manager is initialized THEN set browsing mode to private`() {
8986
every { settings.lastKnownMode } returns BrowsingMode.Private
9087

91-
val browserStore = BrowserStore(
92-
BrowserState(
93-
tabs = listOf(
94-
createTab(url = "https://mozilla.org", private = true),
95-
),
96-
),
97-
)
98-
val manager = buildBrowsingModeManager(store = browserStore)
88+
val manager = buildBrowsingModeManager()
9989

10090
assertEquals(BrowsingMode.Private, manager.mode)
10191

@@ -105,20 +95,6 @@ class DefaultBrowsingModeManagerTest {
10595
}
10696
}
10797

108-
@Test
109-
fun `GIVEN last known mode is private mode and no tabs persisted WHEN browsing mode manager is initialized THEN set browsing mode to normal`() {
110-
every { settings.lastKnownMode } returns BrowsingMode.Private
111-
112-
val manager = buildBrowsingModeManager()
113-
114-
assertEquals(BrowsingMode.Normal, manager.mode)
115-
116-
verify {
117-
onModeChange.invoke(BrowsingMode.Normal)
118-
settings.lastKnownMode = BrowsingMode.Normal
119-
}
120-
}
121-
12298
@Test
12399
fun `GIVEN last known mode is normal mode WHEN browsing mode manager is initialized THEN set browsing mode to normal`() {
124100
every { settings.lastKnownMode } returns BrowsingMode.Normal
@@ -163,36 +139,16 @@ class DefaultBrowsingModeManagerTest {
163139
}
164140

165141
@Test
166-
fun `GIVEN browsing mode is not set by intent and private mode with a tab persisted WHEN update mode is called THEN set browsing mode to private`() {
167-
val browserStore = BrowserStore(
168-
BrowserState(
169-
tabs = listOf(
170-
createTab(url = "https://mozilla.org", private = true),
171-
),
172-
),
173-
)
174-
val manager = buildBrowsingModeManager(store = browserStore)
175-
176-
assertEquals(BrowsingMode.Normal, manager.mode)
177-
178-
every { settings.lastKnownMode } returns BrowsingMode.Private
179-
180-
manager.updateMode()
181-
182-
assertEquals(BrowsingMode.Private, manager.mode)
183-
}
184-
185-
@Test
186-
fun `GIVEN browsing mode is not set by intent and private mode and no tabs persisted WHEN update mode is called THEN set browsing mode to normal`() {
142+
fun `GIVEN browsing mode is not set by intent and last known mode is private mode WHEN update mode is called THEN set browsing mode to private`() {
187143
every { settings.lastKnownMode } returns BrowsingMode.Private
188144

189145
val manager = buildBrowsingModeManager()
190146

191-
assertEquals(BrowsingMode.Normal, manager.mode)
147+
assertEquals(BrowsingMode.Private, manager.mode)
192148

193149
manager.updateMode()
194150

195-
assertEquals(BrowsingMode.Normal, manager.mode)
151+
assertEquals(BrowsingMode.Private, manager.mode)
196152
}
197153

198154
@Test
@@ -210,11 +166,9 @@ class DefaultBrowsingModeManagerTest {
210166

211167
private fun buildBrowsingModeManager(
212168
intent: Intent? = null,
213-
store: BrowserStore = BrowserStore(),
214169
): BrowsingModeManager {
215170
return DefaultBrowsingModeManager(
216171
intent = intent,
217-
store = store,
218172
settings = settings,
219173
onModeChange = onModeChange,
220174
)

app/src/test/java/org/mozilla/fenix/home/toolbar/TabCounterViewTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ class TabCounterViewTest {
6161

6262
browsingModeManager = DefaultBrowsingModeManager(
6363
intent = null,
64-
store = BrowserStore(),
6564
settings = settings,
6665
onModeChange = onModeChange,
6766
)

app/src/test/java/org/mozilla/fenix/tabstray/DefaultTabsTrayControllerTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1082,7 +1082,6 @@ class DefaultTabsTrayControllerTest {
10821082
var appStateModeUpdate: BrowsingMode? = null
10831083
browsingModeManager = DefaultBrowsingModeManager(
10841084
intent = null,
1085-
store = browserStore,
10861085
settings = settings,
10871086
onModeChange = { updatedMode ->
10881087
appStateModeUpdate = updatedMode

0 commit comments

Comments
 (0)