From fe07fb90164925d36d1fea2159f989cef70527f9 Mon Sep 17 00:00:00 2001 From: Ryan Albrecht Date: Mon, 17 Jun 2024 16:57:43 -0700 Subject: [PATCH 1/2] feat(replay): Add url to replay hydration error breadcrumb type --- .../src/coreHandlers/handleBeforeSendEvent.ts | 4 ++++ packages/replay-internal/src/types/replayFrame.ts | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/packages/replay-internal/src/coreHandlers/handleBeforeSendEvent.ts b/packages/replay-internal/src/coreHandlers/handleBeforeSendEvent.ts index f7434f595693..fb81b1fd88d0 100644 --- a/packages/replay-internal/src/coreHandlers/handleBeforeSendEvent.ts +++ b/packages/replay-internal/src/coreHandlers/handleBeforeSendEvent.ts @@ -1,4 +1,5 @@ import type { ErrorEvent, Event } from '@sentry/types'; +import { getLocationHref } from '@sentry/utils'; import type { ReplayContainer } from '../types'; import { createBreadcrumb } from '../util/createBreadcrumb'; @@ -41,6 +42,9 @@ function handleHydrationError(replay: ReplayContainer, event: ErrorEvent): void ) { const breadcrumb = createBreadcrumb({ category: 'replay.hydrate-error', + data: { + url: getLocationHref(), + }, }); addBreadcrumbEvent(replay, breadcrumb); } diff --git a/packages/replay-internal/src/types/replayFrame.ts b/packages/replay-internal/src/types/replayFrame.ts index 6a7a1a8e255a..0fa43ff41eb2 100644 --- a/packages/replay-internal/src/types/replayFrame.ts +++ b/packages/replay-internal/src/types/replayFrame.ts @@ -68,6 +68,14 @@ interface ReplayMutationFrame extends ReplayBaseBreadcrumbFrame { data: ReplayMutationFrameData; } +interface ReplayHydrationErrorFrameData { + url: string; +} +interface ReplayHydrationErrorFrame extends ReplayBaseBreadcrumbFrame { + category: 'replay.hydrate-error'; + data: ReplayHydrationErrorFrameData; +} + interface ReplayKeyboardEventFrameData extends ReplayBaseDomFrameData { metaKey: boolean; shiftKey: boolean; @@ -146,6 +154,7 @@ export type ReplayBreadcrumbFrame = | ReplaySlowClickFrame | ReplayMultiClickFrame | ReplayMutationFrame + | ReplayHydrationErrorFrame | ReplayFeedbackFrame | ReplayBaseBreadcrumbFrame; From 5fb7b13cb9161b406399333496ef6fa98967f2e7 Mon Sep 17 00:00:00 2001 From: Ryan Albrecht Date: Tue, 18 Jun 2024 12:58:59 -0700 Subject: [PATCH 2/2] update tests --- .../test/integration/coreHandlers/handleBeforeSendEvent.test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/replay-internal/test/integration/coreHandlers/handleBeforeSendEvent.test.ts b/packages/replay-internal/test/integration/coreHandlers/handleBeforeSendEvent.test.ts index 1e6067f0c0cb..39c53cf91e6f 100644 --- a/packages/replay-internal/test/integration/coreHandlers/handleBeforeSendEvent.test.ts +++ b/packages/replay-internal/test/integration/coreHandlers/handleBeforeSendEvent.test.ts @@ -38,6 +38,7 @@ describe('Integration | coreHandlers | handleBeforeSendEvent', () => { data: { payload: { category: 'replay.hydrate-error', + data: { url: 'http://localhost:3000/' }, timestamp: expect.any(Number), type: 'default', }, @@ -71,6 +72,7 @@ describe('Integration | coreHandlers | handleBeforeSendEvent', () => { data: { payload: { category: 'replay.hydrate-error', + data: { url: 'http://localhost:3000/' }, timestamp: expect.any(Number), type: 'default', },