Skip to content

Commit b1c3bbf

Browse files
authored
Remove FXIOS-11952 ⁃ Remove jump back in feature flag (#26225)
* FXIOS-11952 #25998 ⁃ Remove jump back in feature flag * Removing some tests
1 parent dd0f3ae commit b1c3bbf

File tree

9 files changed

+21
-79
lines changed

9 files changed

+21
-79
lines changed

BrowserKit/Sources/Shared/Prefs.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ public struct PrefsKeys {
8080
public static let DebugSuffixKey = "DebugKey"
8181
public static let FirefoxSuggest = "FirefoxSuggest"
8282
public static let InactiveTabs = "InactiveTabsUserPrefsKey"
83-
public static let JumpBackInSection = "JumpBackInSectionUserPrefsKey"
8483
public static let SearchBarPosition = "SearchBarPositionUsersPrefsKey"
8584
public static let SentFromFirefox = "SentFromFirefoxUserPrefsKey"
8685
}
@@ -109,6 +108,7 @@ public struct PrefsKeys {
109108
public struct UserFeatureFlagPrefs {
110109
public static let ASPocketStories = "ASPocketStoriesUserPrefsKey"
111110
public static let BookmarksSection = "BookmarksSectionUserPrefsKey"
111+
public static let JumpBackInSection = "JumpBackInSectionUserPrefsKey"
112112
public static let SponsoredShortcuts = "SponsoredShortcutsUserPrefsKey"
113113
public static let StartAtHome = "StartAtHomeUserPrefsKey"
114114
public static let TopSiteSection = "TopSitesUserPrefsKey"

firefox-ios/Client/FeatureFlags/NimbusFlaggableFeature.swift

-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ enum NimbusFeatureFlagID: String, CaseIterable {
2424
case firefoxSuggestFeature
2525
case homepageRebuild
2626
case inactiveTabs
27-
case jumpBackIn
2827
case loginAutofill
2928
case menuRefactor
3029
case menuRefactorHint
@@ -109,8 +108,6 @@ struct NimbusFlaggableFeature: HasNimbusSearchBar {
109108
return FlagKeys.FirefoxSuggest
110109
case .inactiveTabs:
111110
return FlagKeys.InactiveTabs
112-
case .jumpBackIn:
113-
return FlagKeys.JumpBackInSection
114111
case .sentFromFirefox:
115112
return FlagKeys.SentFromFirefox
116113
// Cases where users do not have the option to manipulate a setting.

firefox-ios/Client/Frontend/Home/Homepage Rebuild/JumpBackIn/JumpBackInSectionState.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ struct JumpBackInSectionState: StateType, Equatable, Hashable {
2727
windowUUID: WindowUUID
2828
) {
2929
// TODO: FXIOS-11412 / 11226 - Move profile dependency and show section also based on feature flags
30-
let shouldShowSection = profile.prefs.boolForKey(PrefsKeys.FeatureFlags.JumpBackInSection) ?? true
30+
let shouldShowSection = profile.prefs.boolForKey(PrefsKeys.UserFeatureFlagPrefs.JumpBackInSection) ?? true
3131
self.init(
3232
windowUUID: windowUUID,
3333
jumpBackInTabs: [],

firefox-ios/Client/Frontend/Home/JumpBackIn/JumpBackInViewModel.swift

+2-3
Original file line numberDiff line numberDiff line change
@@ -307,9 +307,8 @@ extension JumpBackInViewModel: HomepageViewModelProtocol {
307307
}
308308

309309
var isEnabled: Bool {
310-
guard featureFlags.isFeatureEnabled(.jumpBackIn, checking: .buildAndUser) else { return false }
311-
312-
return !isPrivate
310+
let isEnabled = profile.prefs.boolForKey(PrefsKeys.UserFeatureFlagPrefs.JumpBackInSection) ?? true
311+
return !isPrivate && isEnabled
313312
}
314313

315314
func numberOfItemsInSection() -> Int {

firefox-ios/Client/Frontend/Settings/HomepageSettings/HomePageSettingViewController.swift

+16-20
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@ class HomePageSettingViewController: SettingsTableViewController, FeatureFlaggab
1515
var hasHomePage = false
1616
var wallpaperManager: WallpaperManagerInterface
1717

18-
var isJumpBackInSectionEnabled: Bool {
19-
return featureFlags.isFeatureEnabled(.jumpBackIn, checking: .buildOnly)
20-
}
21-
2218
var isWallpaperSectionEnabled: Bool {
2319
return wallpaperManager.canSettingsBeShown
2420
}
@@ -128,27 +124,27 @@ class HomePageSettingViewController: SettingsTableViewController, FeatureFlaggab
128124
format: .Settings.Homepage.CustomizeFirefoxHome.ThoughtProvokingStoriesSubtitle,
129125
PocketAppName.shortName.rawValue)
130126

131-
let jumpBackInSetting = BoolSetting(
132-
with: .jumpBackIn,
133-
titleText: NSAttributedString(string: .Settings.Homepage.CustomizeFirefoxHome.JumpBackIn)
134-
) { value in
135-
store.dispatch(
136-
JumpBackInAction(
137-
isEnabled: value,
138-
windowUUID: self.windowUUID,
139-
actionType: JumpBackInActionType.toggleShowSectionSetting
140-
)
141-
)
142-
}
143-
144127
// Section ordering
145128
sectionItems.append(TopSitesSettings(settings: self))
146129

147-
if isJumpBackInSectionEnabled {
130+
if let profile {
131+
let jumpBackInSetting = BoolSetting(
132+
prefs: profile.prefs,
133+
theme: themeManager.getCurrentTheme(for: windowUUID),
134+
prefKey: PrefsKeys.UserFeatureFlagPrefs.JumpBackInSection,
135+
defaultValue: true,
136+
titleText: .Settings.Homepage.CustomizeFirefoxHome.JumpBackIn
137+
) { value in
138+
store.dispatch(
139+
JumpBackInAction(
140+
isEnabled: value,
141+
windowUUID: self.windowUUID,
142+
actionType: JumpBackInActionType.toggleShowSectionSetting
143+
)
144+
)
145+
}
148146
sectionItems.append(jumpBackInSetting)
149-
}
150147

151-
if let profile {
152148
let bookmarksSetting = BoolSetting(
153149
prefs: profile.prefs,
154150
theme: themeManager.getCurrentTheme(for: windowUUID),

firefox-ios/Client/Nimbus/NimbusFeatureFlagLayer.swift

-19
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@ final class NimbusFeatureFlagLayer {
4040
case .creditCardAutofillStatus:
4141
return checkNimbusForCreditCardAutofill(for: featureID, from: nimbus)
4242

43-
case .jumpBackIn:
44-
return checkHomescreenSectionsFeature(for: featureID, from: nimbus)
45-
4643
case .firefoxSuggestFeature:
4744
return checkFirefoxSuggestFeature(from: nimbus)
4845

@@ -183,22 +180,6 @@ final class NimbusFeatureFlagLayer {
183180
}
184181
}
185182

186-
private func checkHomescreenSectionsFeature(for featureID: NimbusFeatureFlagID,
187-
from nimbus: FxNimbus
188-
) -> Bool {
189-
let config = nimbus.features.homescreenFeature.value()
190-
var nimbusID: HomeScreenSection
191-
192-
switch featureID {
193-
case .jumpBackIn: nimbusID = HomeScreenSection.jumpBackIn
194-
default: return false
195-
}
196-
197-
guard let status = config.sectionsEnabled[nimbusID] else { return false }
198-
199-
return status
200-
}
201-
202183
private func checkHomepageFeature(from nimbus: FxNimbus) -> Bool {
203184
let config = nimbus.features.homepageRebuildFeature.value()
204185
return config.enabled

firefox-ios/Client/Telemetry/TelemetryWrapper.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ class TelemetryWrapper: TelemetryWrapperProtocol, FeatureFlaggable {
303303
}
304304

305305
// Homepage section preferences
306-
let isJumpBackInEnabled = featureFlags.isFeatureEnabled(.jumpBackIn, checking: .buildAndUser)
306+
let isJumpBackInEnabled = profile.prefs.boolForKey(PrefsKeys.UserFeatureFlagPrefs.JumpBackInSection) ?? true
307307
GleanMetrics.Preferences.jumpBackIn.set(isJumpBackInEnabled)
308308

309309
let isBookmarksEnabled = prefs.boolForKey(PrefsKeys.UserFeatureFlagPrefs.BookmarksSection) ?? true

firefox-ios/firefox-ios-tests/Tests/ClientTests/FeatureFlagManagerTests.swift

-26
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ class FeatureFlagManagerTests: XCTestCase, FeatureFlaggable {
3636
XCTAssertTrue(featureFlags.isFeatureEnabled(.bottomSearchBar, checking: .userOnly))
3737
XCTAssertTrue(featureFlags.isFeatureEnabled(.inactiveTabs, checking: .buildOnly))
3838
XCTAssertTrue(featureFlags.isFeatureEnabled(.inactiveTabs, checking: .userOnly))
39-
XCTAssertTrue(featureFlags.isFeatureEnabled(.jumpBackIn, checking: .buildOnly))
40-
XCTAssertTrue(featureFlags.isFeatureEnabled(.jumpBackIn, checking: .userOnly))
4139
XCTAssertTrue(featureFlags.isFeatureEnabled(.reportSiteIssue, checking: .buildOnly))
4240
XCTAssertTrue(featureFlags.isFeatureEnabled(.reportSiteIssue, checking: .userOnly))
4341
}
@@ -46,22 +44,6 @@ class FeatureFlagManagerTests: XCTestCase, FeatureFlaggable {
4644
XCTAssertEqual(featureFlags.getCustomState(for: .searchBarPosition), SearchBarPosition.top)
4745
}
4846

49-
// Changing the prefs manually, to make sure settings are respected through
50-
// the FFMs interface
51-
func testManagerRespectsProfileChangesForBoolSettings() {
52-
let mockProfile = MockProfile(databasePrefix: "FeatureFlagsManagerTests_")
53-
mockProfile.prefs.clearAll()
54-
LegacyFeatureFlagsManager.shared.initializeDeveloperFeatures(with: mockProfile)
55-
56-
XCTAssertTrue(featureFlags.isFeatureEnabled(.jumpBackIn, checking: .buildOnly))
57-
XCTAssertTrue(featureFlags.isFeatureEnabled(.jumpBackIn, checking: .userOnly))
58-
// Changing the prefs manually, to make sure settings are respected through
59-
// the FFMs interface
60-
mockProfile.prefs.setBool(false, forKey: PrefsKeys.FeatureFlags.JumpBackInSection)
61-
XCTAssertTrue(featureFlags.isFeatureEnabled(.jumpBackIn, checking: .buildOnly))
62-
XCTAssertFalse(featureFlags.isFeatureEnabled(.jumpBackIn, checking: .userOnly))
63-
}
64-
6547
// Changing the prefs manually, to make sure settings are respected through
6648
// the FFMs interface
6749
func testManagerRespectsProfileChangesForCustomSettings() {
@@ -76,14 +58,6 @@ class FeatureFlagManagerTests: XCTestCase, FeatureFlaggable {
7658
XCTAssertEqual(featureFlags.getCustomState(for: .searchBarPosition), SearchBarPosition.bottom)
7759
}
7860

79-
func testManagerInterfaceForUpdatingBoolFlags() {
80-
XCTAssertTrue(featureFlags.isFeatureEnabled(.jumpBackIn, checking: .buildOnly))
81-
XCTAssertTrue(featureFlags.isFeatureEnabled(.jumpBackIn, checking: .userOnly))
82-
featureFlags.set(feature: .jumpBackIn, to: false)
83-
XCTAssertTrue(featureFlags.isFeatureEnabled(.jumpBackIn, checking: .buildOnly))
84-
XCTAssertFalse(featureFlags.isFeatureEnabled(.jumpBackIn, checking: .userOnly))
85-
}
86-
8761
func testManagerInterfaceForUpdatingCustomFlags() {
8862
// Search Bar
8963
XCTAssertEqual(featureFlags.getCustomState(for: .searchBarPosition), SearchBarPosition.top)

firefox-ios/nimbus-features/homescreenFeature.yaml

-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ features:
99
type: Map<HomeScreenSection, Boolean>
1010
default:
1111
{
12-
"jump-back-in": true,
1312
"recent-explorations": false,
1413
}
1514
prefer-switch-to-open-tab:
@@ -22,15 +21,13 @@ features:
2221
- channel: developer
2322
value: {
2423
"sections-enabled": {
25-
"jump-back-in": true,
2624
"recent-explorations": false,
2725
},
2826
"prefer-switch-to-open-tab": true
2927
}
3028
- channel: beta
3129
value: {
3230
"sections-enabled": {
33-
"jump-back-in": true,
3431
"recent-explorations": false,
3532
},
3633
"prefer-switch-to-open-tab": false
@@ -40,7 +37,5 @@ enums:
4037
HomeScreenSection:
4138
description: The identifiers for the sections of the homescreen.
4239
variants:
43-
jump-back-in:
44-
description: The tabs the user was looking immediately before being interrupted.
4540
recent-explorations:
4641
description: The tab groups

0 commit comments

Comments
 (0)