From 6890d08280968c56123ee29ca8c8e2c0d424833c Mon Sep 17 00:00:00 2001 From: zcy Date: Tue, 26 Aug 2025 14:05:09 +0200 Subject: [PATCH 1/2] Add telemetry to debug text diff with tree walker --- .../domain/action/getActionNameFromElement.ts | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/rum-core/src/domain/action/getActionNameFromElement.ts b/packages/rum-core/src/domain/action/getActionNameFromElement.ts index f6d6cd9e4e..71ff10850d 100644 --- a/packages/rum-core/src/domain/action/getActionNameFromElement.ts +++ b/packages/rum-core/src/domain/action/getActionNameFromElement.ts @@ -1,4 +1,9 @@ -import { ExperimentalFeature, isExperimentalFeatureEnabled, safeTruncate } from '@datadog/browser-core' +import { + addTelemetryDebug, + ExperimentalFeature, + isExperimentalFeatureEnabled, + safeTruncate, +} from '@datadog/browser-core' import { getNodeSelfPrivacyLevel, getPrivacySelector, NodePrivacyLevel, shouldMaskNode } from '../privacy' import type { RumConfiguration } from '../configuration' import { isElementNode } from '../../browser/htmlDomUtils' @@ -214,10 +219,6 @@ function getTextualContent( return } - if (isExperimentalFeatureEnabled(ExperimentalFeature.USE_TREE_WALKER_FOR_ACTION_NAME)) { - return getTextualContentWithTreeWalker(element, userProgrammaticAttribute, privacyEnabledActionName) - } - if ('innerText' in element) { let text = (element as HTMLElement).innerText @@ -248,6 +249,18 @@ function getTextualContent( ) } + if (isExperimentalFeatureEnabled(ExperimentalFeature.USE_TREE_WALKER_FOR_ACTION_NAME)) { + const treeWalkerText = getTextualContentWithTreeWalker( + element, + userProgrammaticAttribute, + privacyEnabledActionName + ) + if (treeWalkerText !== text.replace(/\s+/g, ' ').trim()) { + addTelemetryDebug('tree-walker-text-diff', { text, treeWalkerText }) + } + return treeWalkerText + } + return text } From 55397d596375a84ae5feb7f60a32f0a4e6fb71b1 Mon Sep 17 00:00:00 2001 From: zcy Date: Tue, 26 Aug 2025 14:55:14 +0200 Subject: [PATCH 2/2] Convert to lower case when comparing --- .../rum-core/src/domain/action/getActionNameFromElement.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/rum-core/src/domain/action/getActionNameFromElement.ts b/packages/rum-core/src/domain/action/getActionNameFromElement.ts index 71ff10850d..385bf26a32 100644 --- a/packages/rum-core/src/domain/action/getActionNameFromElement.ts +++ b/packages/rum-core/src/domain/action/getActionNameFromElement.ts @@ -255,8 +255,8 @@ function getTextualContent( userProgrammaticAttribute, privacyEnabledActionName ) - if (treeWalkerText !== text.replace(/\s+/g, ' ').trim()) { - addTelemetryDebug('tree-walker-text-diff', { text, treeWalkerText }) + if (treeWalkerText.toLowerCase() !== text.replace(/\s+/g, ' ').trim().toLowerCase()) { + addTelemetryDebug('tree-walker-text-diff', { text, treeWalkerText, selector: element.outerHTML }) } return treeWalkerText }