diff --git a/apps/browser/src/platform/popup/view-cache/popup-router-cache.service.ts b/apps/browser/src/platform/popup/view-cache/popup-router-cache.service.ts index 2dfbf05e3c3..3215893c634 100644 --- a/apps/browser/src/platform/popup/view-cache/popup-router-cache.service.ts +++ b/apps/browser/src/platform/popup/view-cache/popup-router-cache.service.ts @@ -9,10 +9,8 @@ import { Router, UrlSerializer, } from "@angular/router"; -import { filter, first, firstValueFrom, map, Observable, of, switchMap, tap } from "rxjs"; +import { filter, first, firstValueFrom, map, Observable, switchMap, tap } from "rxjs"; -import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum"; -import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; import { GlobalStateProvider } from "@bitwarden/common/platform/state"; import { POPUP_ROUTE_HISTORY_KEY } from "../../../platform/services/popup-view-cache-background.service"; @@ -113,29 +111,18 @@ export class PopupRouterCacheService { /** * Redirect to the last visited route. Should be applied to root route. - * - * If `FeatureFlag.PersistPopupView` is disabled, do nothing. **/ export const popupRouterCacheGuard = (() => { - const configService = inject(ConfigService); const popupHistoryService = inject(PopupRouterCacheService); const urlSerializer = inject(UrlSerializer); - return configService.getFeatureFlag$(FeatureFlag.PersistPopupView).pipe( - switchMap((featureEnabled) => { - if (!featureEnabled) { - return of(true); + return popupHistoryService.last$().pipe( + map((url: string) => { + if (!url) { + return true; } - return popupHistoryService.last$().pipe( - map((url: string) => { - if (!url) { - return true; - } - - return urlSerializer.parse(url); - }), - ); + return urlSerializer.parse(url); }), ); }) satisfies CanActivateFn; diff --git a/apps/browser/src/platform/popup/view-cache/popup-view-cache.service.ts b/apps/browser/src/platform/popup/view-cache/popup-view-cache.service.ts index 69a0fa7d9d1..2c29f1e5763 100644 --- a/apps/browser/src/platform/popup/view-cache/popup-view-cache.service.ts +++ b/apps/browser/src/platform/popup/view-cache/popup-view-cache.service.ts @@ -20,8 +20,6 @@ import { SignalCacheOptions, ViewCacheService, } from "@bitwarden/angular/platform/abstractions/view-cache.service"; -import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum"; -import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service"; import { MessageSender } from "@bitwarden/common/platform/messaging"; import { GlobalStateProvider } from "@bitwarden/common/platform/state"; @@ -40,13 +38,10 @@ import { providedIn: "root", }) export class PopupViewCacheService implements ViewCacheService { - private configService = inject(ConfigService); private globalStateProvider = inject(GlobalStateProvider); private messageSender = inject(MessageSender); private router = inject(Router); - private featureEnabled: boolean; - private _cache: Record; private get cache(): Record { if (!this._cache) { @@ -59,10 +54,9 @@ export class PopupViewCacheService implements ViewCacheService { * Initialize the service. This should only be called once. */ async init() { - this.featureEnabled = await this.configService.getFeatureFlag(FeatureFlag.PersistPopupView); - const initialState = this.featureEnabled - ? await firstValueFrom(this.globalStateProvider.get(POPUP_VIEW_CACHE_KEY).state$) - : {}; + const initialState = await firstValueFrom( + this.globalStateProvider.get(POPUP_VIEW_CACHE_KEY).state$, + ); this._cache = Object.freeze(initialState ?? {}); this.router.events @@ -122,10 +116,6 @@ export class PopupViewCacheService implements ViewCacheService { } private updateState(key: string, value: string) { - if (!this.featureEnabled) { - return; - } - this.messageSender.send(SAVE_VIEW_CACHE_COMMAND, { key, value, diff --git a/apps/browser/src/platform/popup/view-cache/popup-view-cache.spec.ts b/apps/browser/src/platform/popup/view-cache/popup-view-cache.spec.ts index 72cfd39cd62..b6009c4cc2e 100644 --- a/apps/browser/src/platform/popup/view-cache/popup-view-cache.spec.ts +++ b/apps/browser/src/platform/popup/view-cache/popup-view-cache.spec.ts @@ -206,21 +206,4 @@ describe("popup view cache", () => { expect(messageSenderMock.send).toHaveBeenCalledWith(ClEAR_VIEW_CACHE_COMMAND, {}); expect(service["_cache"]).toEqual({}); }); - - it("should ignore cached values when feature flag is off", async () => { - jest.spyOn(configServiceMock, "getFeatureFlag").mockResolvedValue(false); - - await initServiceWithState({ "foo-123": JSON.stringify("bar") }); - - const injector = TestBed.inject(Injector); - - const signal = service.signal({ - key: "foo-123", - initialValue: "foo", - injector, - }); - - // The cached state is ignored - expect(signal()).toBe("foo"); - }); }); diff --git a/libs/common/src/enums/feature-flag.enum.ts b/libs/common/src/enums/feature-flag.enum.ts index c5cd5dac636..ca6a26bc531 100644 --- a/libs/common/src/enums/feature-flag.enum.ts +++ b/libs/common/src/enums/feature-flag.enum.ts @@ -30,7 +30,6 @@ export enum FeatureFlag { AC1795_UpdatedSubscriptionStatusSection = "AC-1795_updated-subscription-status-section", ExtensionRefresh = "extension-refresh", - PersistPopupView = "persist-popup-view", PM4154_BulkEncryptionService = "PM-4154-bulk-encryption-service", VaultBulkManagementAction = "vault-bulk-management-action", UnauthenticatedExtensionUIRefresh = "unauth-ui-refresh", @@ -89,7 +88,6 @@ export const DefaultFeatureFlagValue = { [FeatureFlag.AC1795_UpdatedSubscriptionStatusSection]: FALSE, [FeatureFlag.ExtensionRefresh]: FALSE, - [FeatureFlag.PersistPopupView]: FALSE, [FeatureFlag.PM4154_BulkEncryptionService]: FALSE, [FeatureFlag.VaultBulkManagementAction]: FALSE, [FeatureFlag.UnauthenticatedExtensionUIRefresh]: FALSE,