From 520537e00b0ca5985c975c1a2b2e34ba810a49a9 Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Tue, 3 Jan 2023 10:52:26 +0100 Subject: [PATCH 1/2] fix(replay): Improve handling of `maskAllText` option --- packages/replay/src/integration.ts | 6 ++++-- .../replay/test/unit/index-integrationSettings.test.ts | 8 +++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/replay/src/integration.ts b/packages/replay/src/integration.ts index dc70f966c4fa..b68ddd7f11fa 100644 --- a/packages/replay/src/integration.ts +++ b/packages/replay/src/integration.ts @@ -47,7 +47,8 @@ export class Replay implements Integration { useCompression = true, sessionSampleRate, errorSampleRate, - maskAllText = true, + maskAllText, + maskTextSelector, maskAllInputs = true, blockAllMedia = true, _experiments = {}, @@ -62,6 +63,7 @@ export class Replay implements Integration { blockClass, ignoreClass, maskTextClass, + maskTextSelector, blockSelector, ...recordingOptions, }; @@ -74,7 +76,7 @@ export class Replay implements Integration { sessionSampleRate: DEFAULT_SESSION_SAMPLE_RATE, errorSampleRate: DEFAULT_ERROR_SAMPLE_RATE, useCompression, - maskAllText, + maskAllText: typeof maskAllText === 'boolean' ? maskAllText : !maskTextSelector, blockAllMedia, _experiments, }; diff --git a/packages/replay/test/unit/index-integrationSettings.test.ts b/packages/replay/test/unit/index-integrationSettings.test.ts index 049fb87ae117..c78214b8c2ea 100644 --- a/packages/replay/test/unit/index-integrationSettings.test.ts +++ b/packages/replay/test/unit/index-integrationSettings.test.ts @@ -184,7 +184,13 @@ describe('integration settings', () => { expect(replay['_recordingOptions'].maskTextSelector).toBe(undefined); }); - it('overwrites custom maskTextSelector option', async () => { + it('maskTextSelector takes precedence over maskAllText when not specifiying maskAllText:true', async () => { + const { replay } = await mockSdk({ replayOptions: { maskTextSelector: '[custom]' } }); + + expect(replay['_recordingOptions'].maskTextSelector).toBe('[custom]'); + }); + + it('maskAllText takes precedence over maskTextSelector when specifiying maskAllText:true', async () => { const { replay } = await mockSdk({ replayOptions: { maskAllText: true, maskTextSelector: '[custom]' } }); expect(replay['_recordingOptions'].maskTextSelector).toBe(MASK_ALL_TEXT_SELECTOR); From 4ed1a87075df148cf79bc77d8fe3794cfca8d721 Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Tue, 3 Jan 2023 10:52:37 +0100 Subject: [PATCH 2/2] fix(replay): Improve `maskAllText` selector --- packages/replay/src/constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/replay/src/constants.ts b/packages/replay/src/constants.ts index 436d748d4b84..fbdb6ab6a735 100644 --- a/packages/replay/src/constants.ts +++ b/packages/replay/src/constants.ts @@ -27,4 +27,4 @@ export const DEFAULT_SESSION_SAMPLE_RATE = 0.1; export const DEFAULT_ERROR_SAMPLE_RATE = 1.0; /** The select to use for the `maskAllText` option */ -export const MASK_ALL_TEXT_SELECTOR = 'body *:not(style,script)'; +export const MASK_ALL_TEXT_SELECTOR = 'body *:not(style), body *:not(script)';