From 84091cec12827ee0d5c0c6ef09acb732c723cb2f Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Thu, 29 Aug 2024 11:12:44 +0200 Subject: [PATCH 1/2] fix(replay): Consider more things as DOM mutations for dead clicks --- .../replay-internal/src/coreHandlers/handleClick.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/replay-internal/src/coreHandlers/handleClick.ts b/packages/replay-internal/src/coreHandlers/handleClick.ts index da07474deebb..029588764610 100644 --- a/packages/replay-internal/src/coreHandlers/handleClick.ts +++ b/packages/replay-internal/src/coreHandlers/handleClick.ts @@ -40,6 +40,17 @@ type IncrementalMouseInteractionRecordingEvent = IncrementalRecordingEvent & { data: { type: MouseInteractions; id: number }; }; +/** Any IncrementalSource for rrweb that we interpret as a kind of mutation. */ +const IncrementalMutationSources = new Set([ + IncrementalSource.Mutation, + IncrementalSource.StyleSheetRule, + IncrementalSource.StyleDeclaration, + IncrementalSource.AdoptedStyleSheet, + IncrementalSource.CanvasMutation, + IncrementalSource.Selection, + IncrementalSource.MediaInteraction, +]); + /** Handle a click. */ export function handleClick(clickDetector: ReplayClickDetector, clickBreadcrumb: Breadcrumb, node: HTMLElement): void { clickDetector.handleClick(clickBreadcrumb, node); @@ -324,7 +335,7 @@ export function updateClickDetectorForRecordingEvent(clickDetector: ReplayClickD } const { source } = event.data; - if (source === IncrementalSource.Mutation) { + if (IncrementalMutationSources.has(source)) { clickDetector.registerMutation(event.timestamp); } From b1328c5130a0667279e4282d6b6bd375f25c1f0c Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Thu, 29 Aug 2024 15:06:50 +0200 Subject: [PATCH 2/2] fix size limit --- .size-limit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.size-limit.js b/.size-limit.js index e75eeb422735..d2211d91d5b0 100644 --- a/.size-limit.js +++ b/.size-limit.js @@ -22,7 +22,7 @@ module.exports = [ path: 'packages/browser/build/npm/esm/index.js', import: createImport('init', 'browserTracingIntegration', 'replayIntegration'), gzip: true, - limit: '73 KB', + limit: '75 KB', }, { name: '@sentry/browser (incl. Tracing, Replay) - with treeshaking flags',