From 21b6036435be2d258b526eba9b06576dd102879a Mon Sep 17 00:00:00 2001 From: Benoit Zugmeyer Date: Mon, 23 Feb 2026 16:02:55 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=A5=20remove=20trackBfcacheViews=20and?= =?UTF-8?q?=20track=20bfcache=20restores=20by=20default?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The option was introduced as opt-in because it adds a new `bf_cache` loading type to view events, which could surprise customers with existing dashboards or queries not accounting for it. It is now being promoted to default behavior. --- .../src/domain/configuration/configuration.spec.ts | 2 -- .../src/domain/configuration/configuration.ts | 11 ----------- packages/rum-core/src/domain/view/trackViews.spec.ts | 2 +- packages/rum-core/src/domain/view/trackViews.ts | 12 +++++------- 4 files changed, 6 insertions(+), 21 deletions(-) diff --git a/packages/rum-core/src/domain/configuration/configuration.spec.ts b/packages/rum-core/src/domain/configuration/configuration.spec.ts index 80e2cd5bb3..d4f05a4316 100644 --- a/packages/rum-core/src/domain/configuration/configuration.spec.ts +++ b/packages/rum-core/src/domain/configuration/configuration.spec.ts @@ -622,7 +622,6 @@ describe('serializeRumConfiguration', () => { trackViewsManually: true, trackResources: true, trackLongTasks: true, - trackBfcacheViews: true, trackEarlyRequests: true, remoteConfigurationId: '123', remoteConfigurationProxy: 'config', @@ -678,7 +677,6 @@ describe('serializeRumConfiguration', () => { enable_privacy_for_action_name: false, track_resources: true, track_long_task: true, - track_bfcache_views: true, track_early_requests: true, use_worker_url: true, compress_intake_requests: true, diff --git a/packages/rum-core/src/domain/configuration/configuration.ts b/packages/rum-core/src/domain/configuration/configuration.ts index 984185f16e..43a2a61140 100644 --- a/packages/rum-core/src/domain/configuration/configuration.ts +++ b/packages/rum-core/src/domain/configuration/configuration.ts @@ -221,14 +221,6 @@ export interface RumInitConfiguration extends InitConfiguration { */ trackViewsManually?: boolean | undefined - /** - * Enable the creation of dedicated views for pages restored from the Back-Forward cache. - * - * @category Data Collection - * @defaultValue false - */ - trackBfcacheViews?: boolean | undefined - /** * Enables collection of resource events. * @@ -312,7 +304,6 @@ export interface RumConfiguration extends Configuration { trackViewsManually: boolean trackResources: boolean trackLongTasks: boolean - trackBfcacheViews: boolean trackEarlyRequests: boolean subdomain?: string traceContextInjection: TraceContextInjection @@ -385,7 +376,6 @@ export function validateAndBuildRumConfiguration( trackViewsManually: !!initConfiguration.trackViewsManually, trackResources: !!(initConfiguration.trackResources ?? true), trackLongTasks: !!(initConfiguration.trackLongTasks ?? true), - trackBfcacheViews: !!initConfiguration.trackBfcacheViews, trackEarlyRequests: !!initConfiguration.trackEarlyRequests, subdomain: initConfiguration.subdomain, defaultPrivacyLevel: objectHasValue(DefaultPrivacyLevel, initConfiguration.defaultPrivacyLevel) @@ -538,7 +528,6 @@ export function serializeRumConfiguration(configuration: RumInitConfiguration) { track_user_interactions: configuration.trackUserInteractions, track_resources: configuration.trackResources, track_long_task: configuration.trackLongTasks, - track_bfcache_views: configuration.trackBfcacheViews, track_early_requests: configuration.trackEarlyRequests, plugins: configuration.plugins?.map((plugin) => ({ name: plugin.name, diff --git a/packages/rum-core/src/domain/view/trackViews.spec.ts b/packages/rum-core/src/domain/view/trackViews.spec.ts index 50a29d3c35..898e68dc96 100644 --- a/packages/rum-core/src/domain/view/trackViews.spec.ts +++ b/packages/rum-core/src/domain/view/trackViews.spec.ts @@ -1087,7 +1087,7 @@ describe('BFCache views', () => { let viewTest: ViewTest beforeEach(() => { - viewTest = setupViewTest({ lifeCycle, partialConfig: { trackBfcacheViews: true } }) + viewTest = setupViewTest({ lifeCycle }) registerCleanupTask(() => { viewTest.stop() diff --git a/packages/rum-core/src/domain/view/trackViews.ts b/packages/rum-core/src/domain/view/trackViews.ts index 36bb7afaf8..9beab004e9 100644 --- a/packages/rum-core/src/domain/view/trackViews.ts +++ b/packages/rum-core/src/domain/view/trackViews.ts @@ -122,13 +122,11 @@ export function trackViews( let locationChangeSubscription: Subscription if (areViewsTrackedAutomatically) { locationChangeSubscription = renewViewOnLocationChange(locationChangeObservable) - if (configuration.trackBfcacheViews) { - stopOnBFCacheRestore = onBFCacheRestore(configuration, (pageshowEvent) => { - currentView.end() - const startClocks = relativeToClocks(pageshowEvent.timeStamp as RelativeTime) - currentView = startNewView(ViewLoadingType.BF_CACHE, startClocks, undefined) - }) - } + stopOnBFCacheRestore = onBFCacheRestore(configuration, (pageshowEvent) => { + currentView.end() + const startClocks = relativeToClocks(pageshowEvent.timeStamp as RelativeTime) + currentView = startNewView(ViewLoadingType.BF_CACHE, startClocks, undefined) + }) } function startNewView(loadingType: ViewLoadingType, startClocks?: ClocksState, viewOptions?: ViewOptions) {