From 001a8e6b23103bcb1f8175762239854f0889d04e Mon Sep 17 00:00:00 2001 From: Domagoj Gavranic Date: Tue, 7 Jan 2025 00:48:28 +0100 Subject: [PATCH] feat(replay): Expose rrweb recordCrossOriginIframes under _experiments (#14809) Expose the `recordCrossOriginIframes` option under `_experiments`. This option records cross-origin iframes for session replay. --- packages/replay-internal/src/integration.ts | 5 +++++ packages/replay-internal/src/types/replay.ts | 1 + packages/replay-internal/src/types/rrweb.ts | 1 + 3 files changed, 7 insertions(+) diff --git a/packages/replay-internal/src/integration.ts b/packages/replay-internal/src/integration.ts index 49383d9da3b7..940bd612151e 100644 --- a/packages/replay-internal/src/integration.ts +++ b/packages/replay-internal/src/integration.ts @@ -152,6 +152,11 @@ export class Replay implements Integration { }, }; + // experimental support for recording iframes from different origins + if (_experiments.recordCrossOriginIframes) { + this._recordingOptions.recordCrossOriginIframes = true; + } + this._initialOptions = { flushMinDelay, flushMaxDelay, diff --git a/packages/replay-internal/src/types/replay.ts b/packages/replay-internal/src/types/replay.ts index 7cd4c78a21c5..d9308cecabe9 100644 --- a/packages/replay-internal/src/types/replay.ts +++ b/packages/replay-internal/src/types/replay.ts @@ -239,6 +239,7 @@ export interface ReplayPluginOptions extends ReplayNetworkOptions { captureExceptions: boolean; traceInternals: boolean; continuousCheckout: number; + recordCrossOriginIframes: boolean; }>; } diff --git a/packages/replay-internal/src/types/rrweb.ts b/packages/replay-internal/src/types/rrweb.ts index 60e562cadf55..33f5e1b3bf7f 100644 --- a/packages/replay-internal/src/types/rrweb.ts +++ b/packages/replay-internal/src/types/rrweb.ts @@ -43,6 +43,7 @@ export type RrwebRecordOptions = { maskTextSelector?: string; blockSelector?: string; maskInputOptions?: Record; + recordCrossOriginIframes?: boolean; } & Record; export interface CanvasManagerInterface {